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

; 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::allocator" = type { i8 }
%"class.Assimp::StreamWriter" = type { %"class.std::shared_ptr", i8, %"class.std::vector.23", i64 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Assimp::FBX::Node" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.28", %"class.std::vector", i8, i64, i64, i64 }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.70" = type { %"struct.std::_Vector_base.71" }
%"struct.std::_Vector_base.71" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.75" = type { %"struct.std::_Vector_base.76" }
%"struct.std::_Vector_base.76" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.85" = type { %"class.std::_Rb_tree.86" }
%"class.std::_Rb_tree.86" = type { %"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, unsigned long>, std::_Select1st<std::pair<const aiVector3t<float>, unsigned long>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, unsigned long>, std::_Select1st<std::pair<const aiVector3t<float>, unsigned long>>, std::less<aiVector3t<float>>>::_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.aiVector3t = type { float, float, float }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.93" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::map.94" = type { %"class.std::_Rb_tree.95" }
%"class.std::_Rb_tree.95" = type { %"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, int>, std::_Select1st<std::pair<const aiVector3t<float>, int>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, int>, std::_Select1st<std::pair<const aiVector3t<float>, int>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.99" = type { ptr }
%"class.std::initializer_list.102" = type { ptr, i64 }
%"class.std::allocator.82" = type { i8 }
%struct.aiColor3D = type { float, float, float }
%struct.aiString = type { i32, [1024 x i8] }
%"class.std::map.11" = type { %"class.std::_Rb_tree.12" }
%"class.std::_Rb_tree.12" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, long>>, 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>, long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, long>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.103" = type { ptr }
%"class.std::map.106" = type { %"class.std::_Rb_tree.107" }
%"class.std::_Rb_tree.107" = type { %"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<const std::pair<unsigned long, unsigned long>, long>, std::_Select1st<std::pair<const std::pair<unsigned long, unsigned long>, long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<const std::pair<unsigned long, unsigned long>, long>, std::_Select1st<std::pair<const std::pair<unsigned long, unsigned long>, long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.112" = type { %"class.std::_Rb_tree.113" }
%"class.std::_Rb_tree.113" = type { %"struct.std::_Rb_tree<aiTextureType, std::pair<const aiTextureType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const aiTextureType, std::__cxx11::basic_string<char>>>, std::less<aiTextureType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiTextureType, std::pair<const aiTextureType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const aiTextureType, std::__cxx11::basic_string<char>>>, std::less<aiTextureType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::initializer_list.118" = type { ptr, i64 }
%"struct.std::pair.119" = type { i32, %"class.std::__cxx11::basic_string" }
%"struct.std::less" = type { i8 }
%"class.std::allocator.122" = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%struct.aiUVTransform = type { %class.aiVector2t, %class.aiVector2t, float }
%class.aiVector2t = type { float, float }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.127" = type { i8 }
%"class.std::unordered_set.130" = type { %"class.std::_Hashtable.131" }
%"class.std::_Hashtable.131" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.17" = type { %"struct.std::_Vector_base.18" }
%"struct.std::_Vector_base.18" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.aiMatrix4x4t = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
%"class.std::map.150" = type { %"class.std::_Rb_tree.151" }
%"class.std::_Rb_tree.151" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, aiNode *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiNode *>>, 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>, aiNode *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiNode *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator.155" = type { ptr }
%"struct.std::pair.158" = type <{ %"struct.std::__detail::_Node_iterator.160", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.160" = type { %"struct.std::__detail::_Node_iterator_base.161" }
%"struct.std::__detail::_Node_iterator_base.161" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.43" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.163" = type { ptr }
%"struct.std::_Rb_tree_iterator.164" = type { ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.165" }
%"class.std::_Rb_tree.165" = type { %"struct.std::_Rb_tree<const aiBone *, const aiBone *, std::_Identity<const aiBone *>, std::less<const aiBone *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const aiBone *, const aiBone *, std::_Identity<const aiBone *>, std::less<const aiBone *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.170" = type { %"class.std::_Rb_tree.171" }
%"class.std::_Rb_tree.171" = type { %"struct.std::_Rb_tree<const aiNode *, const aiNode *, std::_Identity<const aiNode *>, std::less<const aiNode *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const aiNode *, const aiNode *, std::_Identity<const aiNode *>, std::less<const aiNode *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator.175" = type { ptr }
%"struct.std::pair.176" = type <{ %"struct.std::_Rb_tree_const_iterator.178", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator.178" = type { ptr }
%"class.std::set.180" = type { %"class.std::_Rb_tree.181" }
%"class.std::_Rb_tree.181" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_const_iterator.186" = type { ptr }
%"struct.std::pair.187" = type <{ %"struct.std::_Rb_tree_const_iterator.186", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator.190" = type { ptr }
%"class.Assimp::FBX::FBXExportProperty" = type { i8, %"class.std::vector.23" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%"class.std::vector.191" = type { %"struct.std::_Vector_base.192" }
%"struct.std::_Vector_base.192" = type { %"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = type { %"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array" = type { [3 x i64] }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.aiMatrix3x3t = type { float, float, float, float, float, float, float, float, float }
%"class.Assimp::FBXExporter" = type { i8, ptr, ptr, %"class.std::shared_ptr", %"class.std::vector", %"class.std::vector.3", %"class.std::vector.3", %"class.std::map", %"class.std::map.11", i64 }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<const aiNode *, std::pair<const aiNode *const, long>, std::_Select1st<std::pair<const aiNode *const, long>>, std::less<const aiNode *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const aiNode *, std::pair<const aiNode *const, long>, std::_Select1st<std::pair<const aiNode *const, long>>, std::less<const aiNode *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%struct.aiScene = type { i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, i32, ptr, ptr, %struct.aiString, i32, ptr, ptr }
%struct.aiMesh = type { i32, i32, i32, ptr, ptr, ptr, ptr, [8 x ptr], [8 x ptr], [8 x i32], ptr, i32, ptr, i32, %struct.aiString, i32, ptr, i32, %struct.aiAABB, ptr }
%struct.aiAABB = type { %class.aiVector3t, %class.aiVector3t }
%"struct.std::pair.91" = type { %class.aiVector3t, i64 }
%struct.aiFace = type { i32, ptr }
%class.aiColor4t = type { float, float, float, float }
%"struct.std::pair.100" = type { %class.aiVector3t, i32 }
%"struct.std::pair.104" = type { %"class.std::__cxx11::basic_string", i64 }
%struct.aiTexture = type <{ i32, i32, [9 x i8], [7 x i8], ptr, %struct.aiString, [4 x i8] }>
%struct.aiAnimMesh = type { %struct.aiString, ptr, ptr, ptr, ptr, [8 x ptr], [8 x ptr], i32, float }
%struct.aiBone = type { %struct.aiString, i32, ptr, ptr, ptr, %class.aiMatrix4x4t }
%"struct.std::pair.156" = type { %"class.std::__cxx11::basic_string", ptr }
%struct.aiNode = type { %struct.aiString, %class.aiMatrix4x4t, ptr, i32, ptr, i32, ptr, ptr }
%struct.aiVertexWeight = type { i32, float }
%struct.aiLight = type { %struct.aiString, i32, %class.aiVector3t, %class.aiVector3t, %class.aiVector3t, float, float, float, %struct.aiColor3D, %struct.aiColor3D, %struct.aiColor3D, float, float, %class.aiVector2t }
%struct.aiAnimation = type { %struct.aiString, double, double, i32, ptr, i32, ptr, i32, ptr }
%struct.aiNodeAnim = type { %struct.aiString, i32, ptr, i32, ptr, i32, ptr, i32, i32 }
%struct.aiVectorKey = type { double, %class.aiVector3t, i32 }
%struct.aiQuatKey = type <{ double, %class.aiQuaterniont, i32, [4 x i8] }>
%class.aiQuaterniont = type { float, float, float, float }

@_ZN6Assimp3FBXL9SEPARATORB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN6Assimp3FBXL14MAGIC_NODE_TAGB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZTI17DeadlyExportError = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp12StreamWriterILb0ELb0EEC2ESt10shared_ptrINS_8IOStreamEEb(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp11FBXExporter12WriteObjectsEv(ptr noundef nonnull align 8 dereferenceable(216) %0) #6 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.Assimp::StreamWriter", align 8
  %8 = alloca %"class.std::shared_ptr", align 8
  %9 = alloca %"class.Assimp::FBX::Node", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca %"class.std::vector.70", align 8
  %15 = alloca i8, align 1
  %16 = alloca i64, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca %"class.Assimp::FBX::Node", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i64, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::vector.75", align 8
  %25 = alloca %"class.std::vector.80", align 8
  %26 = alloca %"class.std::map.85", align 8
  %27 = alloca i32, align 4
  %28 = alloca i64, align 8
  %29 = alloca %class.aiVector3t, align 4
  %30 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %31 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.93", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.93", align 8
  %38 = alloca i32, align 4
  %39 = alloca %class.aiVector3t, align 4
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::vector.80", align 8
  %46 = alloca i64, align 8
  %47 = alloca ptr, align 8
  %48 = alloca i64, align 8
  %49 = alloca i32, align 4
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca %"class.Assimp::FBX::Node", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca i32, align 4
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::vector.75", align 8
  %67 = alloca i64, align 8
  %68 = alloca ptr, align 8
  %69 = alloca i64, align 8
  %70 = alloca ptr, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca i64, align 8
  %77 = alloca %"class.Assimp::FBX::Node", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca i32, align 4
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca [8 x i8], align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca %"class.std::vector.75", align 8
  %91 = alloca i64, align 8
  %92 = alloca ptr, align 8
  %93 = alloca i64, align 8
  %94 = alloca ptr, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca i64, align 8
  %102 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.Assimp::FBX::Node", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca i32, align 4
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::allocator", align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"class.std::vector.75", align 8
  %117 = alloca %"class.std::vector.80", align 8
  %118 = alloca %"class.std::map.94", align 8
  %119 = alloca i32, align 4
  %120 = alloca i64, align 8
  %121 = alloca ptr, align 8
  %122 = alloca i64, align 8
  %123 = alloca ptr, align 8
  %124 = alloca %"struct.std::_Rb_tree_iterator.99", align 8
  %125 = alloca %"struct.std::_Rb_tree_iterator.99", align 8
  %126 = alloca i32, align 4
  %127 = alloca double, align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca %"class.Assimp::FBX::Node", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator", align 1
  %135 = alloca i32, align 4
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator", align 1
  %138 = alloca i32, align 4
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::allocator", align 1
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.std::allocator", align 1
  %145 = alloca %"class.std::vector.80", align 8
  %146 = alloca %"class.std::initializer_list.102", align 8
  %147 = alloca [1 x i32], align 4
  %148 = alloca %"class.std::allocator.82", align 1
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::allocator", align 1
  %151 = alloca %"class.Assimp::FBX::Node", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator", align 1
  %154 = alloca i32, align 4
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca i32, align 4
  %158 = alloca %"class.Assimp::FBX::Node", align 8
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::allocator", align 1
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator", align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::allocator", align 1
  %165 = alloca i32, align 4
  %166 = alloca i64, align 8
  %167 = alloca %"class.Assimp::FBX::Node", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::allocator", align 1
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::allocator", align 1
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator", align 1
  %174 = alloca i32, align 4
  %175 = alloca %"class.Assimp::FBX::Node", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::allocator", align 1
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator", align 1
  %182 = alloca i32, align 4
  %183 = alloca %"class.Assimp::FBX::Node", align 8
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator", align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator", align 1
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca %"class.Assimp::FBX::Node", align 8
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.std::allocator", align 1
  %195 = alloca i32, align 4
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca i32, align 4
  %199 = alloca %"class.Assimp::FBX::Node", align 8
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::allocator", align 1
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::allocator", align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator", align 1
  %206 = alloca i32, align 4
  %207 = alloca i64, align 8
  %208 = alloca ptr, align 8
  %209 = alloca float, align 4
  %210 = alloca %struct.aiColor3D, align 4
  %211 = alloca %"class.Assimp::FBX::Node", align 8
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator", align 1
  %214 = alloca i64, align 8
  %215 = alloca %struct.aiString, align 4
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::allocator", align 1
  %220 = alloca i32, align 4
  %221 = alloca i8, align 1
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator", align 1
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator", align 1
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::allocator", align 1
  %228 = alloca i32, align 4
  %229 = alloca %"class.Assimp::FBX::Node", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::allocator", align 1
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::allocator", align 1
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::allocator", align 1
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca %"class.std::allocator", align 1
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::allocator", align 1
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::allocator", align 1
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::allocator", align 1
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::allocator", align 1
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::allocator", align 1
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::allocator", align 1
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca %"class.std::allocator", align 1
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::allocator", align 1
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.std::allocator", align 1
  %260 = alloca %"class.std::__cxx11::basic_string", align 8
  %261 = alloca %"class.std::allocator", align 1
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.std::allocator", align 1
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.std::allocator", align 1
  %266 = alloca %"class.std::__cxx11::basic_string", align 8
  %267 = alloca %"class.std::allocator", align 1
  %268 = alloca %"class.std::map.11", align 8
  %269 = alloca i64, align 8
  %270 = alloca %struct.aiString, align 4
  %271 = alloca ptr, align 8
  %272 = alloca i64, align 8
  %273 = alloca i32, align 4
  %274 = alloca i64, align 8
  %275 = alloca i64, align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator", align 1
  %278 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %279 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %280 = alloca ptr, align 8
  %281 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %282 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %283 = alloca ptr, align 8
  %284 = alloca %"class.Assimp::FBX::Node", align 8
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.std::allocator", align 1
  %287 = alloca ptr, align 8
  %288 = alloca %"class.std::__cxx11::basic_string", align 8
  %289 = alloca %"class.std::allocator", align 1
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::allocator", align 1
  %294 = alloca %"class.Assimp::FBX::Node", align 8
  %295 = alloca %"class.std::__cxx11::basic_string", align 8
  %296 = alloca %"class.std::allocator", align 1
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca ptr, align 8
  %299 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %300 = alloca i32, align 4
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca i64, align 8
  %304 = alloca i32, align 4
  %305 = alloca %"class.std::vector.23", align 8
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::allocator", align 1
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::allocator", align 1
  %311 = alloca %"class.std::__cxx11::basic_string", align 8
  %312 = alloca %"class.std::allocator", align 1
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::allocator", align 1
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::allocator", align 1
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::allocator", align 1
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator", align 1
  %321 = alloca i32, align 4
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::allocator", align 1
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::allocator", align 1
  %326 = alloca %"class.std::map.106", align 8
  %327 = alloca %"class.std::map.112", align 8
  %328 = alloca %"class.std::initializer_list.118", align 8
  %329 = alloca [10 x %"struct.std::pair.119"], align 8
  %330 = alloca ptr, align 8
  %331 = alloca i32, align 4
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca i32, align 4
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca i32, align 4
  %338 = alloca i32, align 4
  %339 = alloca i32, align 4
  %340 = alloca i32, align 4
  %341 = alloca i1, align 1
  %342 = alloca %"struct.std::less", align 1
  %343 = alloca %"class.std::allocator.122", align 1
  %344 = alloca i64, align 8
  %345 = alloca ptr, align 8
  %346 = alloca i64, align 8
  %347 = alloca i64, align 8
  %348 = alloca i32, align 4
  %349 = alloca i64, align 8
  %350 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %struct.aiString, align 4
  %353 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca i1, align 1
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::allocator", align 1
  %358 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %359 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %360 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca i1, align 1
  %363 = alloca i64, align 8
  %364 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %365 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %366 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca ptr, align 8
  %369 = alloca i64, align 8
  %370 = alloca %struct.aiUVTransform, align 4
  %371 = alloca i32, align 4
  %372 = alloca %"class.Assimp::FBX::Node", align 8
  %373 = alloca %"class.std::__cxx11::basic_string", align 8
  %374 = alloca %"class.std::allocator", align 1
  %375 = alloca %"class.std::__cxx11::basic_string", align 8
  %376 = alloca %"class.std::__cxx11::basic_string", align 8
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.std::allocator", align 1
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::allocator", align 1
  %381 = alloca i32, align 4
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::allocator", align 1
  %384 = alloca %"class.Assimp::FBX::Node", align 8
  %385 = alloca %"class.std::__cxx11::basic_string", align 8
  %386 = alloca %"class.std::allocator", align 1
  %387 = alloca %"class.std::__cxx11::basic_string", align 8
  %388 = alloca %"class.std::allocator", align 1
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::allocator", align 1
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator", align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator", align 1
  %395 = alloca %"class.std::__cxx11::basic_string", align 8
  %396 = alloca %"class.std::allocator", align 1
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca %"class.std::allocator", align 1
  %399 = alloca %"class.std::__cxx11::basic_string", align 8
  %400 = alloca %"class.std::allocator", align 1
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::allocator", align 1
  %403 = alloca double, align 8
  %404 = alloca double, align 8
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::allocator", align 1
  %407 = alloca double, align 8
  %408 = alloca double, align 8
  %409 = alloca %"class.std::__cxx11::basic_string", align 8
  %410 = alloca %"class.std::allocator", align 1
  %411 = alloca %"class.std::__cxx11::basic_string", align 8
  %412 = alloca %"class.std::allocator", align 1
  %413 = alloca i32, align 4
  %414 = alloca i32, align 4
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca i64, align 8
  %418 = alloca ptr, align 8
  %419 = alloca i64, align 8
  %420 = alloca %"class.Assimp::FBX::Node", align 8
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca %"class.std::allocator", align 1
  %423 = alloca %"class.std::__cxx11::basic_string", align 8
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca %"class.std::__cxx11::basic_string", align 8
  %426 = alloca %"class.std::allocator", align 1
  %427 = alloca i32, align 4
  %428 = alloca %"class.std::vector.80", align 8
  %429 = alloca i32, align 4
  %430 = alloca ptr, align 8
  %431 = alloca %"class.std::__cxx11::basic_string", align 8
  %432 = alloca %"class.std::allocator", align 1
  %433 = alloca %"class.Assimp::FBX::Node", align 8
  %434 = alloca %"class.std::__cxx11::basic_string", align 8
  %435 = alloca %"class.std::allocator", align 1
  %436 = alloca i64, align 8
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca i32, align 4
  %442 = alloca %"class.std::vector.80", align 8
  %443 = alloca %"class.std::vector.75", align 8
  %444 = alloca %"class.std::vector.75", align 8
  %445 = alloca i32, align 4
  %446 = alloca %class.aiVector3t, align 4
  %447 = alloca { <2 x float>, float }, align 8
  %448 = alloca double, align 8
  %449 = alloca double, align 8
  %450 = alloca double, align 8
  %451 = alloca %class.aiVector3t, align 4
  %452 = alloca { <2 x float>, float }, align 8
  %453 = alloca double, align 8
  %454 = alloca double, align 8
  %455 = alloca double, align 8
  %456 = alloca %"class.std::__cxx11::basic_string", align 8
  %457 = alloca %"class.std::allocator", align 1
  %458 = alloca %"class.std::__cxx11::basic_string", align 8
  %459 = alloca %"class.std::allocator", align 1
  %460 = alloca %"class.std::__cxx11::basic_string", align 8
  %461 = alloca %"class.std::allocator", align 1
  %462 = alloca %"class.Assimp::FBX::Node", align 8
  %463 = alloca %"class.std::__cxx11::basic_string", align 8
  %464 = alloca %"class.std::allocator", align 1
  %465 = alloca i64, align 8
  %466 = alloca %"class.std::__cxx11::basic_string", align 8
  %467 = alloca %"class.std::__cxx11::basic_string", align 8
  %468 = alloca %"class.std::__cxx11::basic_string", align 8
  %469 = alloca %"class.std::allocator", align 1
  %470 = alloca i32, align 4
  %471 = alloca %"class.std::__cxx11::basic_string", align 8
  %472 = alloca %"class.std::allocator", align 1
  %473 = alloca float, align 4
  %474 = alloca %"class.Assimp::FBX::Node", align 8
  %475 = alloca %"class.std::__cxx11::basic_string", align 8
  %476 = alloca %"class.std::allocator", align 1
  %477 = alloca %"class.std::__cxx11::basic_string", align 8
  %478 = alloca %"class.std::allocator", align 1
  %479 = alloca %"class.std::vector.75", align 8
  %480 = alloca double, align 8
  %481 = alloca %"class.std::__cxx11::basic_string", align 8
  %482 = alloca %"class.std::allocator", align 1
  %483 = alloca %"class.std::vector.125", align 8
  %484 = alloca %"class.std::allocator.127", align 1
  %485 = alloca %"class.std::unordered_set.130", align 8
  %486 = alloca %"class.std::vector.17", align 8
  %487 = alloca i32, align 4
  %488 = alloca ptr, align 8
  %489 = alloca i32, align 4
  %490 = alloca %"class.std::__cxx11::basic_string", align 8
  %491 = alloca %"class.std::allocator", align 1
  %492 = alloca %class.aiMatrix4x4t, align 4
  %493 = alloca %"class.std::map.150", align 8
  %494 = alloca i64, align 8
  %495 = alloca ptr, align 8
  %496 = alloca %"class.std::vector.38", align 8
  %497 = alloca i64, align 8
  %498 = alloca ptr, align 8
  %499 = alloca %"class.std::__cxx11::basic_string", align 8
  %500 = alloca %"class.std::allocator", align 1
  %501 = alloca %"struct.std::_Rb_tree_iterator.155", align 8
  %502 = alloca ptr, align 8
  %503 = alloca %"struct.std::_Rb_tree_iterator.155", align 8
  %504 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %505 = alloca %"class.std::__cxx11::basic_string", align 8
  %506 = alloca i1, align 1
  %507 = alloca %"struct.std::pair.158", align 8
  %508 = alloca ptr, align 8
  %509 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %510 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %511 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %512 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %513 = alloca %"class.std::__cxx11::basic_string", align 8
  %514 = alloca %"class.std::allocator", align 1
  %515 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %516 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %517 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %518 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %519 = alloca i8, align 1
  %520 = alloca i64, align 8
  %521 = alloca i64, align 8
  %522 = alloca ptr, align 8
  %523 = alloca i64, align 8
  %524 = alloca i64, align 8
  %525 = alloca ptr, align 8
  %526 = alloca ptr, align 8
  %527 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %528 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %529 = alloca ptr, align 8
  %530 = alloca %"struct.std::_Rb_tree_iterator.164", align 8
  %531 = alloca %"struct.std::_Rb_tree_iterator.164", align 8
  %532 = alloca i64, align 8
  %533 = alloca ptr, align 8
  %534 = alloca i64, align 8
  %535 = alloca %"class.Assimp::FBX::Node", align 8
  %536 = alloca %"class.std::__cxx11::basic_string", align 8
  %537 = alloca %"class.std::allocator", align 1
  %538 = alloca %"class.std::__cxx11::basic_string", align 8
  %539 = alloca %"class.std::__cxx11::basic_string", align 8
  %540 = alloca %"class.std::allocator", align 1
  %541 = alloca i32, align 4
  %542 = alloca %"class.std::__cxx11::basic_string", align 8
  %543 = alloca %"class.std::allocator", align 1
  %544 = alloca double, align 8
  %545 = alloca %"class.std::__cxx11::basic_string", align 8
  %546 = alloca %"class.std::allocator", align 1
  %547 = alloca ptr, align 8
  %548 = alloca %"class.std::set", align 8
  %549 = alloca %"class.std::set.170", align 8
  %550 = alloca ptr, align 8
  %551 = alloca %class.aiMatrix4x4t, align 4
  %552 = alloca ptr, align 8
  %553 = alloca ptr, align 8
  %554 = alloca %"class.__gnu_cxx::__normal_iterator.175", align 8
  %555 = alloca %"class.__gnu_cxx::__normal_iterator.175", align 8
  %556 = alloca ptr, align 8
  %557 = alloca ptr, align 8
  %558 = alloca i64, align 8
  %559 = alloca %"class.std::__cxx11::basic_string", align 8
  %560 = alloca %"class.std::allocator", align 1
  %561 = alloca %"struct.std::pair.176", align 8
  %562 = alloca i64, align 8
  %563 = alloca %"class.Assimp::FBX::Node", align 8
  %564 = alloca %"class.std::__cxx11::basic_string", align 8
  %565 = alloca %"class.std::allocator", align 1
  %566 = alloca %"class.std::__cxx11::basic_string", align 8
  %567 = alloca %"class.std::__cxx11::basic_string", align 8
  %568 = alloca %"class.std::allocator", align 1
  %569 = alloca i32, align 4
  %570 = alloca %"class.std::__cxx11::basic_string", align 8
  %571 = alloca %"class.std::allocator", align 1
  %572 = alloca %"class.std::set.180", align 8
  %573 = alloca %"class.std::vector.80", align 8
  %574 = alloca %"class.std::vector.75", align 8
  %575 = alloca i32, align 4
  %576 = alloca i64, align 8
  %577 = alloca i32, align 4
  %578 = alloca i8, align 1
  %579 = alloca %"struct.std::_Rb_tree_const_iterator.186", align 8
  %580 = alloca %"struct.std::_Rb_tree_const_iterator.186", align 8
  %581 = alloca %"struct.std::pair.187", align 8
  %582 = alloca double, align 8
  %583 = alloca %"class.std::__cxx11::basic_string", align 8
  %584 = alloca %"class.std::allocator", align 1
  %585 = alloca %"class.std::__cxx11::basic_string", align 8
  %586 = alloca %"class.std::allocator", align 1
  %587 = alloca %class.aiMatrix4x4t, align 4
  %588 = alloca %class.aiMatrix4x4t, align 4
  %589 = alloca %class.aiMatrix4x4t, align 4
  %590 = alloca %"class.std::__cxx11::basic_string", align 8
  %591 = alloca %"class.std::allocator", align 1
  %592 = alloca %"class.std::__cxx11::basic_string", align 8
  %593 = alloca %"class.std::allocator", align 1
  %594 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %595 = alloca %"struct.std::_Rb_tree_const_iterator.190", align 8
  %596 = alloca %"struct.std::_Rb_tree_const_iterator.178", align 8
  %597 = alloca %"class.std::__cxx11::basic_string", align 8
  %598 = alloca i1, align 1
  %599 = alloca i64, align 8
  %600 = alloca ptr, align 8
  %601 = alloca i64, align 8
  %602 = alloca %"class.std::__cxx11::basic_string", align 8
  %603 = alloca %"class.std::__cxx11::basic_string", align 8
  %604 = alloca %"class.Assimp::FBX::Node", align 8
  %605 = alloca %"class.std::__cxx11::basic_string", align 8
  %606 = alloca %"class.std::allocator", align 1
  %607 = alloca %"class.Assimp::FBX::Node", align 8
  %608 = alloca %"class.std::__cxx11::basic_string", align 8
  %609 = alloca %"class.std::allocator", align 1
  %610 = alloca %"class.std::__cxx11::basic_string", align 8
  %611 = alloca %"class.std::allocator", align 1
  %612 = alloca %"class.std::__cxx11::basic_string", align 8
  %613 = alloca %"class.std::allocator", align 1
  %614 = alloca %"class.std::__cxx11::basic_string", align 8
  %615 = alloca %"class.std::allocator", align 1
  %616 = alloca %"class.std::__cxx11::basic_string", align 8
  %617 = alloca %"class.std::allocator", align 1
  %618 = alloca %"class.std::__cxx11::basic_string", align 8
  %619 = alloca %"class.std::allocator", align 1
  %620 = alloca %"class.std::__cxx11::basic_string", align 8
  %621 = alloca %"class.std::allocator", align 1
  %622 = alloca %"class.std::__cxx11::basic_string", align 8
  %623 = alloca %"class.std::allocator", align 1
  %624 = alloca %"class.std::__cxx11::basic_string", align 8
  %625 = alloca %"class.std::allocator", align 1
  %626 = alloca %"class.std::__cxx11::basic_string", align 8
  %627 = alloca %"class.std::allocator", align 1
  %628 = alloca %"class.Assimp::FBX::FBXExportProperty", align 8
  %629 = alloca %"class.std::__cxx11::basic_string", align 8
  %630 = alloca %"class.std::allocator", align 1
  %631 = alloca %"class.Assimp::FBX::FBXExportProperty", align 8
  %632 = alloca %"class.std::__cxx11::basic_string", align 8
  %633 = alloca %"class.std::allocator", align 1
  %634 = alloca %"class.std::vector.3", align 8
  %635 = alloca %"class.std::allocator.5", align 1
  %636 = alloca i64, align 8
  %637 = alloca i64, align 8
  %638 = alloca ptr, align 8
  %639 = alloca %"class.Assimp::FBX::Node", align 8
  %640 = alloca %"class.std::__cxx11::basic_string", align 8
  %641 = alloca %"class.std::allocator", align 1
  %642 = alloca %"class.std::__cxx11::basic_string", align 8
  %643 = alloca %"class.std::__cxx11::basic_string", align 8
  %644 = alloca %"class.Assimp::FBX::Node", align 8
  %645 = alloca %"class.std::__cxx11::basic_string", align 8
  %646 = alloca %"class.std::allocator", align 1
  %647 = alloca %"class.std::__cxx11::basic_string", align 8
  %648 = alloca %"class.std::allocator", align 1
  %649 = alloca %"class.std::__cxx11::basic_string", align 8
  %650 = alloca %"class.std::allocator", align 1
  %651 = alloca %"class.std::__cxx11::basic_string", align 8
  %652 = alloca %"class.std::allocator", align 1
  %653 = alloca %"class.std::__cxx11::basic_string", align 8
  %654 = alloca %"class.std::allocator", align 1
  %655 = alloca %"class.std::vector.3", align 8
  %656 = alloca %"class.std::allocator.5", align 1
  %657 = alloca i64, align 8
  %658 = alloca i64, align 8
  %659 = alloca %"class.Assimp::FBX::Node", align 8
  %660 = alloca %"class.std::__cxx11::basic_string", align 8
  %661 = alloca %"class.std::allocator", align 1
  %662 = alloca %"class.std::__cxx11::basic_string", align 8
  %663 = alloca %"class.std::vector.191", align 8
  %664 = alloca i64, align 8
  %665 = alloca ptr, align 8
  %666 = alloca i64, align 8
  %667 = alloca %"class.std::vector.196", align 8
  %668 = alloca i64, align 8
  %669 = alloca ptr, align 8
  %670 = alloca ptr, align 8
  %671 = alloca %class.aiMatrix4x4t, align 4
  %672 = alloca %class.aiVector3t, align 4
  %673 = alloca %class.aiVector3t, align 4
  %674 = alloca %class.aiVector3t, align 4
  %675 = alloca %"struct.std::array", align 8
  %676 = alloca %"class.std::__cxx11::basic_string", align 8
  %677 = alloca %"class.std::allocator", align 1
  %678 = alloca %class.aiVector3t, align 4
  %679 = alloca %"class.std::__cxx11::basic_string", align 8
  %680 = alloca %"class.std::allocator", align 1
  %681 = alloca { <2 x float>, float }, align 4
  %682 = alloca %"class.std::__cxx11::basic_string", align 8
  %683 = alloca %"class.std::allocator", align 1
  %684 = alloca %class.aiVector3t, align 4
  %685 = alloca %"class.std::__cxx11::basic_string", align 8
  %686 = alloca %"class.std::allocator", align 1
  %687 = alloca { <2 x float>, float }, align 4
  %688 = alloca %"class.std::__cxx11::basic_string", align 8
  %689 = alloca %"class.std::allocator", align 1
  %690 = alloca %class.aiVector3t, align 4
  %691 = alloca %"class.std::__cxx11::basic_string", align 8
  %692 = alloca %"class.std::allocator", align 1
  %693 = alloca { <2 x float>, float }, align 4
  %694 = alloca i64, align 8
  %695 = alloca ptr, align 8
  %696 = alloca i64, align 8
  %697 = alloca ptr, align 8
  %698 = alloca ptr, align 8
  %699 = alloca %class.aiMatrix4x4t, align 4
  %700 = alloca %class.aiVector3t, align 4
  %701 = alloca %class.aiVector3t, align 4
  %702 = alloca %class.aiVector3t, align 4
  %703 = alloca ptr, align 8
  %704 = alloca %"class.std::vector.3", align 8
  %705 = alloca %"class.std::vector.201", align 8
  %706 = alloca %"class.std::vector.201", align 8
  %707 = alloca %"class.std::vector.201", align 8
  %708 = alloca i64, align 8
  %709 = alloca ptr, align 8
  %710 = alloca i64, align 8
  %711 = alloca %"class.std::__cxx11::basic_string", align 8
  %712 = alloca %"class.std::allocator", align 1
  %713 = alloca %"class.std::__cxx11::basic_string", align 8
  %714 = alloca %"class.std::allocator", align 1
  %715 = alloca %"class.std::__cxx11::basic_string", align 8
  %716 = alloca %"class.std::allocator", align 1
  %717 = alloca i64, align 8
  %718 = alloca ptr, align 8
  %719 = alloca i64, align 8
  %720 = alloca %class.aiMatrix4x4t, align 4
  %721 = alloca %class.aiMatrix3x3t, align 4
  %722 = alloca %class.aiVector3t, align 4
  %723 = alloca %class.aiVector3t, align 4
  %724 = alloca %class.aiVector3t, align 4
  %725 = alloca %class.aiVector3t, align 4
  %726 = alloca { <2 x float>, float }, align 8
  %727 = alloca %"class.std::__cxx11::basic_string", align 8
  %728 = alloca %"class.std::allocator", align 1
  %729 = alloca %"class.std::__cxx11::basic_string", align 8
  %730 = alloca %"class.std::allocator", align 1
  %731 = alloca %"class.std::__cxx11::basic_string", align 8
  %732 = alloca %"class.std::allocator", align 1
  %733 = alloca i64, align 8
  %734 = alloca ptr, align 8
  %735 = alloca i64, align 8
  %736 = alloca %"class.std::__cxx11::basic_string", align 8
  %737 = alloca %"class.std::allocator", align 1
  %738 = alloca %"class.std::__cxx11::basic_string", align 8
  %739 = alloca %"class.std::allocator", align 1
  %740 = alloca %"class.std::__cxx11::basic_string", align 8
  %741 = alloca %"class.std::allocator", align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %742 = load ptr, ptr %2, align 8
  %743 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %744 = load i8, ptr %743, align 8, !tbaa !9, !range !37, !noundef !38
  %745 = trunc i8 %744 to i1
  br i1 %745, label %758, label %746

746:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef @.str.263, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %747 unwind label %749

747:                                              ; preds = %746
  invoke void @_ZN6Assimp11FBXExporter23WriteAsciiSectionHeaderERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %748 unwind label %753

748:                                              ; preds = %747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #10
  br label %758

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

753:                                              ; preds = %747
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %5, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  br label %757

757:                                              ; preds = %753, %749
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #10
  br label %6492

758:                                              ; preds = %748, %1
  call void @llvm.lifetime.start.p0(i64 56, ptr %7) #10
  %759 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 3
  call void @_ZNSt10shared_ptrIN6Assimp8IOStreamEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %759) #10
  invoke void @_ZN6Assimp12StreamWriterILb0ELb0EEC2ESt10shared_ptrINS_8IOStreamEEb(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef %8, i1 noundef zeroext false)
          to label %760 unwind label %798

760:                                              ; preds = %758
  call void @_ZNSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.264, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %761 unwind label %802

761:                                              ; preds = %760
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %9, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %762 unwind label %806

762:                                              ; preds = %761
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !39
  %763 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %764 = load i8, ptr %763, align 8, !tbaa !9, !range !37, !noundef !38
  %765 = trunc i8 %764 to i1
  %766 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %9, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %765, i32 noundef %766)
          to label %767 unwind label %811

767:                                              ; preds = %762
  %768 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %769 = load i8, ptr %768, align 8, !tbaa !9, !range !37, !noundef !38
  %770 = trunc i8 %769 to i1
  %771 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %9, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %770, i32 noundef %771)
          to label %772 unwind label %811

772:                                              ; preds = %767
  %773 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %774 = load i8, ptr %773, align 8, !tbaa !9, !range !37, !noundef !38
  %775 = trunc i8 %774 to i1
  %776 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %9, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %775, i32 noundef %776)
          to label %777 unwind label %811

777:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #10
  %778 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 2
  %779 = load ptr, ptr %778, align 8, !tbaa !41
  %780 = invoke noundef zeroext i1 @_ZNK6Assimp16ExportProperties15GetPropertyBoolEPKcb(ptr noundef nonnull align 8 dereferenceable(240) %779, ptr noundef @.str.265, i1 noundef zeroext true)
          to label %781 unwind label %815

781:                                              ; preds = %777
  %782 = zext i1 %780 to i8
  store i8 %782, ptr %13, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #10
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #10
  %783 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 2
  %784 = load ptr, ptr %783, align 8, !tbaa !41
  %785 = invoke noundef zeroext i1 @_ZNK6Assimp16ExportProperties15GetPropertyBoolEPKcb(ptr noundef nonnull align 8 dereferenceable(240) %784, ptr noundef @.str.266, i1 noundef zeroext false)
          to label %786 unwind label %819

786:                                              ; preds = %781
  %787 = zext i1 %785 to i8
  store i8 %787, ptr %15, align 1, !tbaa !42
  %788 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 5
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %788) #10
  store i32 1, ptr %12, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  store i64 0, ptr %16, align 8, !tbaa !43
  br label %789

789:                                              ; preds = %2271, %786
  %790 = load i64, ptr %16, align 8, !tbaa !43
  %791 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %792 = load ptr, ptr %791, align 8, !tbaa !44
  %793 = getelementptr inbounds %struct.aiScene, ptr %792, i32 0, i32 2
  %794 = load i32, ptr %793, align 8, !tbaa !45
  %795 = zext i32 %794 to i64
  %796 = icmp ult i64 %790, %795
  br i1 %796, label %823, label %797

797:                                              ; preds = %789
  store i32 2, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %2286

798:                                              ; preds = %758
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %5, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %6, align 4
  call void @_ZNSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #10
  br label %6491

802:                                              ; preds = %760
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %5, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %6, align 4
  br label %810

806:                                              ; preds = %761
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %5, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #10
  br label %810

810:                                              ; preds = %806, %802
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #10
  br label %6490

811:                                              ; preds = %772, %767, %762
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %5, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %6, align 4
  br label %6489

815:                                              ; preds = %777
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %5, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %6, align 4
  br label %6488

819:                                              ; preds = %781
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %5, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %6, align 4
  br label %6487

823:                                              ; preds = %789
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %824 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %825 = load ptr, ptr %824, align 8, !tbaa !44
  %826 = getelementptr inbounds %struct.aiScene, ptr %825, i32 0, i32 3
  %827 = load ptr, ptr %826, align 8, !tbaa !48
  %828 = load i64, ptr %16, align 8, !tbaa !43
  %829 = getelementptr inbounds ptr, ptr %827, i64 %828
  %830 = load ptr, ptr %829, align 8, !tbaa !5
  store ptr %830, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 112, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.185, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %831 unwind label %872

831:                                              ; preds = %823
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %832 unwind label %876

832:                                              ; preds = %831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %833 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %834 unwind label %881

834:                                              ; preds = %832
  store i64 %833, ptr %22, align 8, !tbaa !43
  %835 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 5
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %835, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %836 unwind label %881

836:                                              ; preds = %834
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %837 unwind label %881

837:                                              ; preds = %836
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef @.str.185)
          to label %838 unwind label %885

838:                                              ; preds = %837
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %839 unwind label %889

839:                                              ; preds = %838
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA5_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 1 dereferenceable(5) @.str.267)
          to label %840 unwind label %881

840:                                              ; preds = %839
  %841 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %842 = load i8, ptr %841, align 8, !tbaa !9, !range !37, !noundef !38
  %843 = trunc i8 %842 to i1
  %844 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %843, i32 noundef %844)
          to label %845 unwind label %881

845:                                              ; preds = %840
  %846 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %847 = load i8, ptr %846, align 8, !tbaa !9, !range !37, !noundef !38
  %848 = trunc i8 %847 to i1
  %849 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %848, i32 noundef %849)
          to label %850 unwind label %881

850:                                              ; preds = %845
  %851 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %852 = load i8, ptr %851, align 8, !tbaa !9, !range !37, !noundef !38
  %853 = trunc i8 %852 to i1
  %854 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %853, i32 noundef %854)
          to label %855 unwind label %881

855:                                              ; preds = %850
  %856 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %857 = load i8, ptr %856, align 8, !tbaa !9, !range !37, !noundef !38
  %858 = trunc i8 %857 to i1
  %859 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %858, i32 noundef %859)
          to label %860 unwind label %881

860:                                              ; preds = %855
  store i32 2, ptr %12, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %26) #10
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #10
  %861 = load i8, ptr %13, align 1, !tbaa !42, !range !37, !noundef !38
  %862 = trunc i8 %861 to i1
  br i1 %862, label %863, label %961

863:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store i32 0, ptr %27, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  store i64 0, ptr %28, align 8, !tbaa !43
  br label %864

864:                                              ; preds = %956, %863
  %865 = load i64, ptr %28, align 8, !tbaa !43
  %866 = load ptr, ptr %18, align 8, !tbaa !5
  %867 = getelementptr inbounds %struct.aiMesh, ptr %866, i32 0, i32 1
  %868 = load i32, ptr %867, align 4, !tbaa !49
  %869 = zext i32 %868 to i64
  %870 = icmp ult i64 %865, %869
  br i1 %870, label %894, label %871

871:                                              ; preds = %864
  store i32 5, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  br label %960

872:                                              ; preds = %823
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %5, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %6, align 4
  br label %880

876:                                              ; preds = %831
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %5, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %880

880:                                              ; preds = %876, %872
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #10
  br label %2285

881:                                              ; preds = %855, %850, %845, %840, %839, %836, %834, %832
  %882 = landingpad { ptr, i32 }
          cleanup
  %883 = extractvalue { ptr, i32 } %882, 0
  store ptr %883, ptr %5, align 8
  %884 = extractvalue { ptr, i32 } %882, 1
  store i32 %884, ptr %6, align 4
  br label %2284

885:                                              ; preds = %837
  %886 = landingpad { ptr, i32 }
          cleanup
  %887 = extractvalue { ptr, i32 } %886, 0
  store ptr %887, ptr %5, align 8
  %888 = extractvalue { ptr, i32 } %886, 1
  store i32 %888, ptr %6, align 4
  br label %893

889:                                              ; preds = %838
  %890 = landingpad { ptr, i32 }
          cleanup
  %891 = extractvalue { ptr, i32 } %890, 0
  store ptr %891, ptr %5, align 8
  %892 = extractvalue { ptr, i32 } %890, 1
  store i32 %892, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  br label %893

893:                                              ; preds = %889, %885
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #10
  br label %2284

894:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 12, ptr %29) #10
  %895 = load ptr, ptr %18, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.aiMesh, ptr %895, i32 0, i32 3
  %897 = load ptr, ptr %896, align 8, !tbaa !55
  %898 = load i64, ptr %28, align 8, !tbaa !43
  %899 = getelementptr inbounds %class.aiVector3t, ptr %897, i64 %898
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %29, ptr align 4 %899, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %900 = invoke ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(12) %29)
          to label %901 unwind label %929

901:                                              ; preds = %894
  %902 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %30, i32 0, i32 0
  store ptr %900, ptr %902, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %903 = call ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %26) #10
  %904 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %31, i32 0, i32 0
  store ptr %903, ptr %904, align 8
  %905 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEmEES7_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br i1 %905, label %906, label %945

906:                                              ; preds = %901
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %907 unwind label %929

907:                                              ; preds = %906
  %908 = load i32, ptr %27, align 4, !tbaa !39
  %909 = sext i32 %908 to i64
  %910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %26, ptr noundef nonnull align 4 dereferenceable(12) %29)
          to label %911 unwind label %929

911:                                              ; preds = %907
  store i64 %909, ptr %910, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  %912 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %29, i32 noundef 0)
          to label %913 unwind label %933

913:                                              ; preds = %911
  %914 = load float, ptr %912, align 4, !tbaa !57
  %915 = fpext float %914 to double
  store double %915, ptr %32, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %916 unwind label %933

916:                                              ; preds = %913
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %917 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %29, i32 noundef 1)
          to label %918 unwind label %937

918:                                              ; preds = %916
  %919 = load float, ptr %917, align 4, !tbaa !57
  %920 = fpext float %919 to double
  store double %920, ptr %33, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %921 unwind label %937

921:                                              ; preds = %918
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %922 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %29, i32 noundef 2)
          to label %923 unwind label %941

923:                                              ; preds = %921
  %924 = load float, ptr %922, align 4, !tbaa !57
  %925 = fpext float %924 to double
  store double %925, ptr %34, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %926 unwind label %941

926:                                              ; preds = %923
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  %927 = load i32, ptr %27, align 4, !tbaa !39
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %27, align 4, !tbaa !39
  br label %955

929:                                              ; preds = %907, %906, %894
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %5, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %6, align 4
  br label %959

933:                                              ; preds = %913, %911
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %5, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %959

937:                                              ; preds = %918, %916
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %5, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  br label %959

941:                                              ; preds = %923, %921
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %5, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %959

945:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %946 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  %947 = getelementptr inbounds %"struct.std::pair.91", ptr %946, i32 0, i32 1
  %948 = load i64, ptr %947, align 8, !tbaa !60
  %949 = trunc i64 %948 to i32
  store i32 %949, ptr %35, align 4, !tbaa !39
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %950 unwind label %951

950:                                              ; preds = %945
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %955

951:                                              ; preds = %945
  %952 = landingpad { ptr, i32 }
          cleanup
  %953 = extractvalue { ptr, i32 } %952, 0
  store ptr %953, ptr %5, align 8
  %954 = extractvalue { ptr, i32 } %952, 1
  store i32 %954, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %959

955:                                              ; preds = %950, %926
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %29) #10
  br label %956

956:                                              ; preds = %955
  %957 = load i64, ptr %28, align 8, !tbaa !43
  %958 = add i64 %957, 1
  store i64 %958, ptr %28, align 8, !tbaa !43
  br label %864, !llvm.loop !62

959:                                              ; preds = %951, %941, %937, %933, %929
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %2283

960:                                              ; preds = %871
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1023

961:                                              ; preds = %860
  %962 = load ptr, ptr %18, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.aiMesh, ptr %962, i32 0, i32 1
  %964 = load i32, ptr %963, align 4, !tbaa !49
  %965 = zext i32 %964 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %965)
          to label %966 unwind label %983

966:                                              ; preds = %961
  %967 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %968 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.93", ptr %36, i32 0, i32 0
  store ptr %967, ptr %968, align 8
  %969 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %970 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.93", ptr %37, i32 0, i32 0
  store ptr %969, ptr %970, align 8
  %971 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.93", ptr %36, i32 0, i32 0
  %972 = load ptr, ptr %971, align 8
  %973 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.93", ptr %37, i32 0, i32 0
  %974 = load ptr, ptr %973, align 8
  invoke void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %972, ptr %974, i32 noundef 0)
          to label %975 unwind label %983

975:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !39
  br label %976

976:                                              ; preds = %1006, %975
  %977 = load i32, ptr %38, align 4, !tbaa !39
  %978 = load ptr, ptr %18, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.aiMesh, ptr %978, i32 0, i32 1
  %980 = load i32, ptr %979, align 4, !tbaa !49
  %981 = icmp ult i32 %977, %980
  br i1 %981, label %987, label %982

982:                                              ; preds = %976
  store i32 8, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1022

983:                                              ; preds = %1023, %966, %961
  %984 = landingpad { ptr, i32 }
          cleanup
  %985 = extractvalue { ptr, i32 } %984, 0
  store ptr %985, ptr %5, align 8
  %986 = extractvalue { ptr, i32 } %984, 1
  store i32 %986, ptr %6, align 4
  br label %2283

987:                                              ; preds = %976
  call void @llvm.lifetime.start.p0(i64 12, ptr %39) #10
  %988 = load ptr, ptr %18, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.aiMesh, ptr %988, i32 0, i32 3
  %990 = load ptr, ptr %989, align 8, !tbaa !55
  %991 = load i32, ptr %38, align 4, !tbaa !39
  %992 = zext i32 %991 to i64
  %993 = getelementptr inbounds %class.aiVector3t, ptr %990, i64 %992
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %39, ptr align 4 %993, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  %994 = getelementptr inbounds %class.aiVector3t, ptr %39, i32 0, i32 0
  %995 = load float, ptr %994, align 4, !tbaa !64
  %996 = fpext float %995 to double
  store double %996, ptr %40, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %997 unwind label %1009

997:                                              ; preds = %987
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %998 = getelementptr inbounds %class.aiVector3t, ptr %39, i32 0, i32 1
  %999 = load float, ptr %998, align 4, !tbaa !65
  %1000 = fpext float %999 to double
  store double %1000, ptr %41, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %1001 unwind label %1013

1001:                                             ; preds = %997
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %1002 = getelementptr inbounds %class.aiVector3t, ptr %39, i32 0, i32 2
  %1003 = load float, ptr %1002, align 4, !tbaa !66
  %1004 = fpext float %1003 to double
  store double %1004, ptr %42, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %1005 unwind label %1017

1005:                                             ; preds = %1001
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %39) #10
  br label %1006

1006:                                             ; preds = %1005
  %1007 = load i32, ptr %38, align 4, !tbaa !39
  %1008 = add i32 %1007, 1
  store i32 %1008, ptr %38, align 4, !tbaa !39
  br label %976, !llvm.loop !67

1009:                                             ; preds = %987
  %1010 = landingpad { ptr, i32 }
          cleanup
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %5, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  br label %1021

1013:                                             ; preds = %997
  %1014 = landingpad { ptr, i32 }
          cleanup
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %5, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %1021

1017:                                             ; preds = %1001
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %5, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  br label %1021

1021:                                             ; preds = %1017, %1013, %1009
  call void @llvm.lifetime.end.p0(i64 12, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %2283

1022:                                             ; preds = %982
  br label %1023

1023:                                             ; preds = %1022, %960
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %1024 unwind label %983

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.268, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %1025 unwind label %1039

1025:                                             ; preds = %1024
  %1026 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1027 = load i8, ptr %1026, align 8, !tbaa !9, !range !37, !noundef !38
  %1028 = trunc i8 %1027 to i1
  %1029 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1028, i32 noundef %1029)
          to label %1030 unwind label %1043

1030:                                             ; preds = %1025
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  store i64 0, ptr %46, align 8, !tbaa !43
  br label %1031

1031:                                             ; preds = %1096, %1030
  %1032 = load i64, ptr %46, align 8, !tbaa !43
  %1033 = load ptr, ptr %18, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.aiMesh, ptr %1033, i32 0, i32 2
  %1035 = load i32, ptr %1034, align 8, !tbaa !68
  %1036 = zext i32 %1035 to i64
  %1037 = icmp ult i64 %1032, %1036
  br i1 %1037, label %1048, label %1038

1038:                                             ; preds = %1031
  store i32 11, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %1104

1039:                                             ; preds = %1024
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %5, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %6, align 4
  br label %1047

1043:                                             ; preds = %1025
  %1044 = landingpad { ptr, i32 }
          cleanup
  %1045 = extractvalue { ptr, i32 } %1044, 0
  store ptr %1045, ptr %5, align 8
  %1046 = extractvalue { ptr, i32 } %1044, 1
  store i32 %1046, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %1047

1047:                                             ; preds = %1043, %1039
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #10
  br label %2283

1048:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1049 = load ptr, ptr %18, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.aiMesh, ptr %1049, i32 0, i32 10
  %1051 = load ptr, ptr %1050, align 8, !tbaa !69
  %1052 = load i64, ptr %46, align 8, !tbaa !43
  %1053 = getelementptr inbounds %struct.aiFace, ptr %1051, i64 %1052
  store ptr %1053, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  store i64 0, ptr %48, align 8, !tbaa !43
  br label %1054

1054:                                             ; preds = %1073, %1048
  %1055 = load i64, ptr %48, align 8, !tbaa !43
  %1056 = load ptr, ptr %47, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.aiFace, ptr %1056, i32 0, i32 0
  %1058 = load i32, ptr %1057, align 8, !tbaa !70
  %1059 = sub i32 %1058, 1
  %1060 = zext i32 %1059 to i64
  %1061 = icmp ult i64 %1055, %1060
  br i1 %1061, label %1063, label %1062

1062:                                             ; preds = %1054
  store i32 14, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  br label %1080

1063:                                             ; preds = %1054
  %1064 = load ptr, ptr %47, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.aiFace, ptr %1064, i32 0, i32 1
  %1066 = load ptr, ptr %1065, align 8, !tbaa !72
  %1067 = load i64, ptr %48, align 8, !tbaa !43
  %1068 = getelementptr inbounds i32, ptr %1066, i64 %1067
  %1069 = load i32, ptr %1068, align 4, !tbaa !39
  %1070 = zext i32 %1069 to i64
  %1071 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %1070) #10
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 4 dereferenceable(4) %1071)
          to label %1072 unwind label %1076

1072:                                             ; preds = %1063
  br label %1073

1073:                                             ; preds = %1072
  %1074 = load i64, ptr %48, align 8, !tbaa !43
  %1075 = add i64 %1074, 1
  store i64 %1075, ptr %48, align 8, !tbaa !43
  br label %1054, !llvm.loop !73

1076:                                             ; preds = %1063
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %5, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  br label %1103

1080:                                             ; preds = %1062
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %1081 = load ptr, ptr %47, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.aiFace, ptr %1081, i32 0, i32 1
  %1083 = load ptr, ptr %1082, align 8, !tbaa !72
  %1084 = load ptr, ptr %47, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.aiFace, ptr %1084, i32 0, i32 0
  %1086 = load i32, ptr %1085, align 8, !tbaa !70
  %1087 = sub i32 %1086, 1
  %1088 = zext i32 %1087 to i64
  %1089 = getelementptr inbounds i32, ptr %1083, i64 %1088
  %1090 = load i32, ptr %1089, align 4, !tbaa !39
  %1091 = zext i32 %1090 to i64
  %1092 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %1091) #10
  %1093 = load i32, ptr %1092, align 4, !tbaa !39
  %1094 = sub nsw i32 -1, %1093
  store i32 %1094, ptr %49, align 4, !tbaa !39
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %1095 unwind label %1099

1095:                                             ; preds = %1080
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  br label %1096

1096:                                             ; preds = %1095
  %1097 = load i64, ptr %46, align 8, !tbaa !43
  %1098 = add i64 %1097, 1
  store i64 %1098, ptr %46, align 8, !tbaa !43
  br label %1031, !llvm.loop !74

1099:                                             ; preds = %1080
  %1100 = landingpad { ptr, i32 }
          cleanup
  %1101 = extractvalue { ptr, i32 } %1100, 0
  store ptr %1101, ptr %5, align 8
  %1102 = extractvalue { ptr, i32 } %1100, 1
  store i32 %1102, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1103

1103:                                             ; preds = %1099, %1076
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %2282

1104:                                             ; preds = %1038
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.269, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %1105 unwind label %1178

1105:                                             ; preds = %1104
  %1106 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1107 = load i8, ptr %1106, align 8, !tbaa !9, !range !37, !noundef !38
  %1108 = trunc i8 %1107 to i1
  %1109 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1108, i32 noundef %1109)
          to label %1110 unwind label %1182

1110:                                             ; preds = %1105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.270, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %1111 unwind label %1187

1111:                                             ; preds = %1110
  %1112 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1113 = load i8, ptr %1112, align 8, !tbaa !9, !range !37, !noundef !38
  %1114 = trunc i8 %1113 to i1
  %1115 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 124, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1114, i32 noundef %1115)
          to label %1116 unwind label %1191

1116:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  %1117 = load ptr, ptr %18, align 8, !tbaa !5
  %1118 = invoke noundef zeroext i1 @_ZNK6aiMesh10HasNormalsEv(ptr noundef nonnull align 8 dereferenceable(1320) %1117)
          to label %1119 unwind label %1196

1119:                                             ; preds = %1116
  br i1 %1118, label %1120, label %1338

1120:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 112, ptr %54) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.271, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %1121 unwind label %1200

1121:                                             ; preds = %1120
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  store i32 0, ptr %57, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 4 dereferenceable(4) %57)
          to label %1122 unwind label %1204

1122:                                             ; preds = %1121
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  %1123 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1124 = load i8, ptr %1123, align 8, !tbaa !9, !range !37, !noundef !38
  %1125 = trunc i8 %1124 to i1
  %1126 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1125, i32 noundef %1126)
          to label %1127 unwind label %1209

1127:                                             ; preds = %1122
  %1128 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1129 = load i8, ptr %1128, align 8, !tbaa !9, !range !37, !noundef !38
  %1130 = trunc i8 %1129 to i1
  %1131 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1130, i32 noundef %1131)
          to label %1132 unwind label %1209

1132:                                             ; preds = %1127
  %1133 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1134 = load i8, ptr %1133, align 8, !tbaa !9, !range !37, !noundef !38
  %1135 = trunc i8 %1134 to i1
  %1136 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1135, i32 noundef %1136)
          to label %1137 unwind label %1209

1137:                                             ; preds = %1132
  %1138 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1139 = load i8, ptr %1138, align 8, !tbaa !9, !range !37, !noundef !38
  %1140 = trunc i8 %1139 to i1
  %1141 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1140, i32 noundef %1141)
          to label %1142 unwind label %1209

1142:                                             ; preds = %1137
  store i32 3, ptr %12, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %1143 unwind label %1213

1143:                                             ; preds = %1142
  %1144 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1145 = load i8, ptr %1144, align 8, !tbaa !9, !range !37, !noundef !38
  %1146 = trunc i8 %1145 to i1
  %1147 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1146, i32 noundef %1147)
          to label %1148 unwind label %1217

1148:                                             ; preds = %1143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %1149 unwind label %1222

1149:                                             ; preds = %1148
  %1150 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1151 = load i8, ptr %1150, align 8, !tbaa !9, !range !37, !noundef !38
  %1152 = trunc i8 %1151 to i1
  %1153 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.67, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1152, i32 noundef %1153)
          to label %1154 unwind label %1226

1154:                                             ; preds = %1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1155 unwind label %1231

1155:                                             ; preds = %1154
  %1156 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1157 = load i8, ptr %1156, align 8, !tbaa !9, !range !37, !noundef !38
  %1158 = trunc i8 %1157 to i1
  %1159 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1158, i32 noundef %1159)
          to label %1160 unwind label %1235

1160:                                             ; preds = %1155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1161 unwind label %1240

1161:                                             ; preds = %1160
  %1162 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1163 = load i8, ptr %1162, align 8, !tbaa !9, !range !37, !noundef !38
  %1164 = trunc i8 %1163 to i1
  %1165 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.276, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1164, i32 noundef %1165)
          to label %1166 unwind label %1244

1166:                                             ; preds = %1161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #10
  %1167 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #10
  %1168 = mul i64 3, %1167
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %1168)
          to label %1169 unwind label %1249

1169:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  store i64 0, ptr %67, align 8, !tbaa !43
  br label %1170

1170:                                             ; preds = %1311, %1169
  %1171 = load i64, ptr %67, align 8, !tbaa !43
  %1172 = load ptr, ptr %18, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.aiMesh, ptr %1172, i32 0, i32 2
  %1174 = load i32, ptr %1173, align 8, !tbaa !68
  %1175 = zext i32 %1174 to i64
  %1176 = icmp ult i64 %1171, %1175
  br i1 %1176, label %1253, label %1177

1177:                                             ; preds = %1170
  store i32 17, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  br label %1314

1178:                                             ; preds = %1104
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %5, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %6, align 4
  br label %1186

1182:                                             ; preds = %1105
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %5, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %1186

1186:                                             ; preds = %1182, %1178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  br label %2282

1187:                                             ; preds = %1110
  %1188 = landingpad { ptr, i32 }
          cleanup
  %1189 = extractvalue { ptr, i32 } %1188, 0
  store ptr %1189, ptr %5, align 8
  %1190 = extractvalue { ptr, i32 } %1188, 1
  store i32 %1190, ptr %6, align 4
  br label %1195

1191:                                             ; preds = %1111
  %1192 = landingpad { ptr, i32 }
          cleanup
  %1193 = extractvalue { ptr, i32 } %1192, 0
  store ptr %1193, ptr %5, align 8
  %1194 = extractvalue { ptr, i32 } %1192, 1
  store i32 %1194, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %1195

1195:                                             ; preds = %1191, %1187
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  br label %2282

1196:                                             ; preds = %1116
  %1197 = landingpad { ptr, i32 }
          cleanup
  %1198 = extractvalue { ptr, i32 } %1197, 0
  store ptr %1198, ptr %5, align 8
  %1199 = extractvalue { ptr, i32 } %1197, 1
  store i32 %1199, ptr %6, align 4
  br label %2282

1200:                                             ; preds = %1120
  %1201 = landingpad { ptr, i32 }
          cleanup
  %1202 = extractvalue { ptr, i32 } %1201, 0
  store ptr %1202, ptr %5, align 8
  %1203 = extractvalue { ptr, i32 } %1201, 1
  store i32 %1203, ptr %6, align 4
  br label %1208

1204:                                             ; preds = %1121
  %1205 = landingpad { ptr, i32 }
          cleanup
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %5, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %1208

1208:                                             ; preds = %1204, %1200
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #10
  br label %1337

1209:                                             ; preds = %1137, %1132, %1127, %1122
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %5, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %6, align 4
  br label %1336

1213:                                             ; preds = %1142
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %5, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %6, align 4
  br label %1221

1217:                                             ; preds = %1143
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %5, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %1221

1221:                                             ; preds = %1217, %1213
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  br label %1336

1222:                                             ; preds = %1148
  %1223 = landingpad { ptr, i32 }
          cleanup
  %1224 = extractvalue { ptr, i32 } %1223, 0
  store ptr %1224, ptr %5, align 8
  %1225 = extractvalue { ptr, i32 } %1223, 1
  store i32 %1225, ptr %6, align 4
  br label %1230

1226:                                             ; preds = %1149
  %1227 = landingpad { ptr, i32 }
          cleanup
  %1228 = extractvalue { ptr, i32 } %1227, 0
  store ptr %1228, ptr %5, align 8
  %1229 = extractvalue { ptr, i32 } %1227, 1
  store i32 %1229, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #10
  br label %1230

1230:                                             ; preds = %1226, %1222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #10
  br label %1336

1231:                                             ; preds = %1154
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %5, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %6, align 4
  br label %1239

1235:                                             ; preds = %1155
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %5, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  br label %1239

1239:                                             ; preds = %1235, %1231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #10
  br label %1336

1240:                                             ; preds = %1160
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %5, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %6, align 4
  br label %1248

1244:                                             ; preds = %1161
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %5, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %1248

1248:                                             ; preds = %1244, %1240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #10
  br label %1336

1249:                                             ; preds = %1320, %1166
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %5, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %6, align 4
  br label %1335

1253:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %1254 = load ptr, ptr %18, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.aiMesh, ptr %1254, i32 0, i32 10
  %1256 = load ptr, ptr %1255, align 8, !tbaa !69
  %1257 = load i64, ptr %67, align 8, !tbaa !43
  %1258 = getelementptr inbounds %struct.aiFace, ptr %1256, i64 %1257
  store ptr %1258, ptr %68, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  store i64 0, ptr %69, align 8, !tbaa !43
  br label %1259

1259:                                             ; preds = %1294, %1253
  %1260 = load i64, ptr %69, align 8, !tbaa !43
  %1261 = load ptr, ptr %68, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.aiFace, ptr %1261, i32 0, i32 0
  %1263 = load i32, ptr %1262, align 8, !tbaa !70
  %1264 = zext i32 %1263 to i64
  %1265 = icmp ult i64 %1260, %1264
  br i1 %1265, label %1267, label %1266

1266:                                             ; preds = %1259
  store i32 20, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  br label %1310

1267:                                             ; preds = %1259
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %1268 = load ptr, ptr %18, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.aiMesh, ptr %1268, i32 0, i32 4
  %1270 = load ptr, ptr %1269, align 8, !tbaa !75
  %1271 = load ptr, ptr %68, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.aiFace, ptr %1271, i32 0, i32 1
  %1273 = load ptr, ptr %1272, align 8, !tbaa !72
  %1274 = load i64, ptr %69, align 8, !tbaa !43
  %1275 = getelementptr inbounds i32, ptr %1273, i64 %1274
  %1276 = load i32, ptr %1275, align 4, !tbaa !39
  %1277 = zext i32 %1276 to i64
  %1278 = getelementptr inbounds %class.aiVector3t, ptr %1270, i64 %1277
  store ptr %1278, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %1279 = load ptr, ptr %70, align 8, !tbaa !5
  %1280 = getelementptr inbounds %class.aiVector3t, ptr %1279, i32 0, i32 0
  %1281 = load float, ptr %1280, align 4, !tbaa !64
  %1282 = fpext float %1281 to double
  store double %1282, ptr %71, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1283 unwind label %1297

1283:                                             ; preds = %1267
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %1284 = load ptr, ptr %70, align 8, !tbaa !5
  %1285 = getelementptr inbounds %class.aiVector3t, ptr %1284, i32 0, i32 1
  %1286 = load float, ptr %1285, align 4, !tbaa !65
  %1287 = fpext float %1286 to double
  store double %1287, ptr %72, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1288 unwind label %1301

1288:                                             ; preds = %1283
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  %1289 = load ptr, ptr %70, align 8, !tbaa !5
  %1290 = getelementptr inbounds %class.aiVector3t, ptr %1289, i32 0, i32 2
  %1291 = load float, ptr %1290, align 4, !tbaa !66
  %1292 = fpext float %1291 to double
  store double %1292, ptr %73, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %1293 unwind label %1305

1293:                                             ; preds = %1288
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  br label %1294

1294:                                             ; preds = %1293
  %1295 = load i64, ptr %69, align 8, !tbaa !43
  %1296 = add i64 %1295, 1
  store i64 %1296, ptr %69, align 8, !tbaa !43
  br label %1259, !llvm.loop !76

1297:                                             ; preds = %1267
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %5, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %1309

1301:                                             ; preds = %1283
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %5, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  br label %1309

1305:                                             ; preds = %1288
  %1306 = landingpad { ptr, i32 }
          cleanup
  %1307 = extractvalue { ptr, i32 } %1306, 0
  store ptr %1307, ptr %5, align 8
  %1308 = extractvalue { ptr, i32 } %1306, 1
  store i32 %1308, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  br label %1309

1309:                                             ; preds = %1305, %1301, %1297
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  br label %1335

1310:                                             ; preds = %1266
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load i64, ptr %67, align 8, !tbaa !43
  %1313 = add i64 %1312, 1
  store i64 %1313, ptr %67, align 8, !tbaa !43
  br label %1170, !llvm.loop !77

1314:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.277, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1315 unwind label %1326

1315:                                             ; preds = %1314
  %1316 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1317 = load i8, ptr %1316, align 8, !tbaa !9, !range !37, !noundef !38
  %1318 = trunc i8 %1317 to i1
  %1319 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(24) %66, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1318, i32 noundef %1319)
          to label %1320 unwind label %1330

1320:                                             ; preds = %1315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #10
  store i32 2, ptr %12, align 4, !tbaa !39
  %1321 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1322 = load i8, ptr %1321, align 8, !tbaa !9, !range !37, !noundef !38
  %1323 = trunc i8 %1322 to i1
  %1324 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %54, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1323, i32 noundef %1324, i1 noundef zeroext true)
          to label %1325 unwind label %1249

1325:                                             ; preds = %1320
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %54) #10
  br label %1338

1326:                                             ; preds = %1314
  %1327 = landingpad { ptr, i32 }
          cleanup
  %1328 = extractvalue { ptr, i32 } %1327, 0
  store ptr %1328, ptr %5, align 8
  %1329 = extractvalue { ptr, i32 } %1327, 1
  store i32 %1329, ptr %6, align 4
  br label %1334

1330:                                             ; preds = %1315
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %5, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #10
  br label %1334

1334:                                             ; preds = %1330, %1326
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #10
  br label %1335

1335:                                             ; preds = %1334, %1309, %1249
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %66) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #10
  br label %1336

1336:                                             ; preds = %1335, %1248, %1239, %1230, %1221, %1209
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %54) #10
  br label %1337

1337:                                             ; preds = %1336, %1208
  call void @llvm.lifetime.end.p0(i64 112, ptr %54) #10
  br label %2282

1338:                                             ; preds = %1325, %1119
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  store i64 0, ptr %76, align 8, !tbaa !43
  br label %1339

1339:                                             ; preds = %1553, %1338
  %1340 = load i64, ptr %76, align 8, !tbaa !43
  %1341 = load ptr, ptr %18, align 8, !tbaa !5
  %1342 = invoke noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %1341)
          to label %1343 unwind label %1347

1343:                                             ; preds = %1339
  %1344 = zext i32 %1342 to i64
  %1345 = icmp ult i64 %1340, %1344
  br i1 %1345, label %1351, label %1346

1346:                                             ; preds = %1343
  store i32 23, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %1570

1347:                                             ; preds = %1339
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %5, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %6, align 4
  br label %1569

1351:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 112, ptr %77) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.278, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1352 unwind label %1416

1352:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %1353 = load i64, ptr %76, align 8, !tbaa !43
  %1354 = trunc i64 %1353 to i32
  store i32 %1354, ptr %80, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %1355 unwind label %1420

1355:                                             ; preds = %1352
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  %1356 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1357 = load i8, ptr %1356, align 8, !tbaa !9, !range !37, !noundef !38
  %1358 = trunc i8 %1357 to i1
  %1359 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1358, i32 noundef %1359)
          to label %1360 unwind label %1425

1360:                                             ; preds = %1355
  %1361 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1362 = load i8, ptr %1361, align 8, !tbaa !9, !range !37, !noundef !38
  %1363 = trunc i8 %1362 to i1
  %1364 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1363, i32 noundef %1364)
          to label %1365 unwind label %1425

1365:                                             ; preds = %1360
  %1366 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1367 = load i8, ptr %1366, align 8, !tbaa !9, !range !37, !noundef !38
  %1368 = trunc i8 %1367 to i1
  %1369 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1368, i32 noundef %1369)
          to label %1370 unwind label %1425

1370:                                             ; preds = %1365
  %1371 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1372 = load i8, ptr %1371, align 8, !tbaa !9, !range !37, !noundef !38
  %1373 = trunc i8 %1372 to i1
  %1374 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1373, i32 noundef %1374)
          to label %1375 unwind label %1425

1375:                                             ; preds = %1370
  store i32 3, ptr %12, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %1376 unwind label %1429

1376:                                             ; preds = %1375
  %1377 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1378 = load i8, ptr %1377, align 8, !tbaa !9, !range !37, !noundef !38
  %1379 = trunc i8 %1378 to i1
  %1380 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %81, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1379, i32 noundef %1380)
          to label %1381 unwind label %1433

1381:                                             ; preds = %1376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %1382 = getelementptr inbounds [8 x i8], ptr %83, i64 0, i64 0
  %1383 = load i64, ptr %76, align 8, !tbaa !43
  %1384 = trunc i64 %1383 to i32
  %1385 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %1382, i64 noundef 8, ptr noundef @.str.279, i32 noundef %1384) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1386 unwind label %1438

1386:                                             ; preds = %1381
  %1387 = getelementptr inbounds [8 x i8], ptr %83, i64 0, i64 0
  %1388 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1389 = load i8, ptr %1388, align 8, !tbaa !9, !range !37, !noundef !38
  %1390 = trunc i8 %1389 to i1
  %1391 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef %1387, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1390, i32 noundef %1391)
          to label %1392 unwind label %1442

1392:                                             ; preds = %1386
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1393 unwind label %1447

1393:                                             ; preds = %1392
  %1394 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1395 = load i8, ptr %1394, align 8, !tbaa !9, !range !37, !noundef !38
  %1396 = trunc i8 %1395 to i1
  %1397 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1396, i32 noundef %1397)
          to label %1398 unwind label %1451

1398:                                             ; preds = %1393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1399 unwind label %1456

1399:                                             ; preds = %1398
  %1400 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1401 = load i8, ptr %1400, align 8, !tbaa !9, !range !37, !noundef !38
  %1402 = trunc i8 %1401 to i1
  %1403 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.276, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1402, i32 noundef %1403)
          to label %1404 unwind label %1460

1404:                                             ; preds = %1399
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %90) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #10
  %1405 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #10
  %1406 = mul i64 4, %1405
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %1406)
          to label %1407 unwind label %1465

1407:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  store i64 0, ptr %91, align 8, !tbaa !43
  br label %1408

1408:                                             ; preds = %1538, %1407
  %1409 = load i64, ptr %91, align 8, !tbaa !43
  %1410 = load ptr, ptr %18, align 8, !tbaa !5
  %1411 = getelementptr inbounds %struct.aiMesh, ptr %1410, i32 0, i32 2
  %1412 = load i32, ptr %1411, align 8, !tbaa !68
  %1413 = zext i32 %1412 to i64
  %1414 = icmp ult i64 %1409, %1413
  br i1 %1414, label %1469, label %1415

1415:                                             ; preds = %1408
  store i32 26, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  br label %1541

1416:                                             ; preds = %1351
  %1417 = landingpad { ptr, i32 }
          cleanup
  %1418 = extractvalue { ptr, i32 } %1417, 0
  store ptr %1418, ptr %5, align 8
  %1419 = extractvalue { ptr, i32 } %1417, 1
  store i32 %1419, ptr %6, align 4
  br label %1424

1420:                                             ; preds = %1352
  %1421 = landingpad { ptr, i32 }
          cleanup
  %1422 = extractvalue { ptr, i32 } %1421, 0
  store ptr %1422, ptr %5, align 8
  %1423 = extractvalue { ptr, i32 } %1421, 1
  store i32 %1423, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  br label %1424

1424:                                             ; preds = %1420, %1416
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #10
  br label %1568

1425:                                             ; preds = %1370, %1365, %1360, %1355
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %5, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %6, align 4
  br label %1567

1429:                                             ; preds = %1375
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %5, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %6, align 4
  br label %1437

1433:                                             ; preds = %1376
  %1434 = landingpad { ptr, i32 }
          cleanup
  %1435 = extractvalue { ptr, i32 } %1434, 0
  store ptr %1435, ptr %5, align 8
  %1436 = extractvalue { ptr, i32 } %1434, 1
  store i32 %1436, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #10
  br label %1437

1437:                                             ; preds = %1433, %1429
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #10
  br label %1567

1438:                                             ; preds = %1381
  %1439 = landingpad { ptr, i32 }
          cleanup
  %1440 = extractvalue { ptr, i32 } %1439, 0
  store ptr %1440, ptr %5, align 8
  %1441 = extractvalue { ptr, i32 } %1439, 1
  store i32 %1441, ptr %6, align 4
  br label %1446

1442:                                             ; preds = %1386
  %1443 = landingpad { ptr, i32 }
          cleanup
  %1444 = extractvalue { ptr, i32 } %1443, 0
  store ptr %1444, ptr %5, align 8
  %1445 = extractvalue { ptr, i32 } %1443, 1
  store i32 %1445, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #10
  br label %1446

1446:                                             ; preds = %1442, %1438
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #10
  br label %1566

1447:                                             ; preds = %1392
  %1448 = landingpad { ptr, i32 }
          cleanup
  %1449 = extractvalue { ptr, i32 } %1448, 0
  store ptr %1449, ptr %5, align 8
  %1450 = extractvalue { ptr, i32 } %1448, 1
  store i32 %1450, ptr %6, align 4
  br label %1455

1451:                                             ; preds = %1393
  %1452 = landingpad { ptr, i32 }
          cleanup
  %1453 = extractvalue { ptr, i32 } %1452, 0
  store ptr %1453, ptr %5, align 8
  %1454 = extractvalue { ptr, i32 } %1452, 1
  store i32 %1454, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #10
  br label %1455

1455:                                             ; preds = %1451, %1447
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #10
  br label %1566

1456:                                             ; preds = %1398
  %1457 = landingpad { ptr, i32 }
          cleanup
  %1458 = extractvalue { ptr, i32 } %1457, 0
  store ptr %1458, ptr %5, align 8
  %1459 = extractvalue { ptr, i32 } %1457, 1
  store i32 %1459, ptr %6, align 4
  br label %1464

1460:                                             ; preds = %1399
  %1461 = landingpad { ptr, i32 }
          cleanup
  %1462 = extractvalue { ptr, i32 } %1461, 0
  store ptr %1462, ptr %5, align 8
  %1463 = extractvalue { ptr, i32 } %1461, 1
  store i32 %1463, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  br label %1464

1464:                                             ; preds = %1460, %1456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #10
  br label %1566

1465:                                             ; preds = %1547, %1404
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %5, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %6, align 4
  br label %1565

1469:                                             ; preds = %1408
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %1470 = load ptr, ptr %18, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.aiMesh, ptr %1470, i32 0, i32 10
  %1472 = load ptr, ptr %1471, align 8, !tbaa !69
  %1473 = load i64, ptr %91, align 8, !tbaa !43
  %1474 = getelementptr inbounds %struct.aiFace, ptr %1472, i64 %1473
  store ptr %1474, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  store i64 0, ptr %93, align 8, !tbaa !43
  br label %1475

1475:                                             ; preds = %1517, %1469
  %1476 = load i64, ptr %93, align 8, !tbaa !43
  %1477 = load ptr, ptr %92, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.aiFace, ptr %1477, i32 0, i32 0
  %1479 = load i32, ptr %1478, align 8, !tbaa !70
  %1480 = zext i32 %1479 to i64
  %1481 = icmp ult i64 %1476, %1480
  br i1 %1481, label %1483, label %1482

1482:                                             ; preds = %1475
  store i32 29, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  br label %1537

1483:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  %1484 = load ptr, ptr %18, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.aiMesh, ptr %1484, i32 0, i32 7
  %1486 = load i64, ptr %76, align 8, !tbaa !43
  %1487 = getelementptr inbounds [8 x ptr], ptr %1485, i64 0, i64 %1486
  %1488 = load ptr, ptr %1487, align 8, !tbaa !5
  %1489 = load ptr, ptr %92, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.aiFace, ptr %1489, i32 0, i32 1
  %1491 = load ptr, ptr %1490, align 8, !tbaa !72
  %1492 = load i64, ptr %93, align 8, !tbaa !43
  %1493 = getelementptr inbounds i32, ptr %1491, i64 %1492
  %1494 = load i32, ptr %1493, align 4, !tbaa !39
  %1495 = zext i32 %1494 to i64
  %1496 = getelementptr inbounds %class.aiColor4t, ptr %1488, i64 %1495
  store ptr %1496, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %1497 = load ptr, ptr %94, align 8, !tbaa !5
  %1498 = getelementptr inbounds %class.aiColor4t, ptr %1497, i32 0, i32 0
  %1499 = load float, ptr %1498, align 4, !tbaa !78
  %1500 = fpext float %1499 to double
  store double %1500, ptr %95, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %1501 unwind label %1520

1501:                                             ; preds = %1483
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %1502 = load ptr, ptr %94, align 8, !tbaa !5
  %1503 = getelementptr inbounds %class.aiColor4t, ptr %1502, i32 0, i32 1
  %1504 = load float, ptr %1503, align 4, !tbaa !80
  %1505 = fpext float %1504 to double
  store double %1505, ptr %96, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(8) %96)
          to label %1506 unwind label %1524

1506:                                             ; preds = %1501
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %1507 = load ptr, ptr %94, align 8, !tbaa !5
  %1508 = getelementptr inbounds %class.aiColor4t, ptr %1507, i32 0, i32 2
  %1509 = load float, ptr %1508, align 4, !tbaa !81
  %1510 = fpext float %1509 to double
  store double %1510, ptr %97, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(8) %97)
          to label %1511 unwind label %1528

1511:                                             ; preds = %1506
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  %1512 = load ptr, ptr %94, align 8, !tbaa !5
  %1513 = getelementptr inbounds %class.aiColor4t, ptr %1512, i32 0, i32 3
  %1514 = load float, ptr %1513, align 4, !tbaa !82
  %1515 = fpext float %1514 to double
  store double %1515, ptr %98, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(8) %98)
          to label %1516 unwind label %1532

1516:                                             ; preds = %1511
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  br label %1517

1517:                                             ; preds = %1516
  %1518 = load i64, ptr %93, align 8, !tbaa !43
  %1519 = add i64 %1518, 1
  store i64 %1519, ptr %93, align 8, !tbaa !43
  br label %1475, !llvm.loop !83

1520:                                             ; preds = %1483
  %1521 = landingpad { ptr, i32 }
          cleanup
  %1522 = extractvalue { ptr, i32 } %1521, 0
  store ptr %1522, ptr %5, align 8
  %1523 = extractvalue { ptr, i32 } %1521, 1
  store i32 %1523, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  br label %1536

1524:                                             ; preds = %1501
  %1525 = landingpad { ptr, i32 }
          cleanup
  %1526 = extractvalue { ptr, i32 } %1525, 0
  store ptr %1526, ptr %5, align 8
  %1527 = extractvalue { ptr, i32 } %1525, 1
  store i32 %1527, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  br label %1536

1528:                                             ; preds = %1506
  %1529 = landingpad { ptr, i32 }
          cleanup
  %1530 = extractvalue { ptr, i32 } %1529, 0
  store ptr %1530, ptr %5, align 8
  %1531 = extractvalue { ptr, i32 } %1529, 1
  store i32 %1531, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  br label %1536

1532:                                             ; preds = %1511
  %1533 = landingpad { ptr, i32 }
          cleanup
  %1534 = extractvalue { ptr, i32 } %1533, 0
  store ptr %1534, ptr %5, align 8
  %1535 = extractvalue { ptr, i32 } %1533, 1
  store i32 %1535, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  br label %1536

1536:                                             ; preds = %1532, %1528, %1524, %1520
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  br label %1565

1537:                                             ; preds = %1482
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %1538

1538:                                             ; preds = %1537
  %1539 = load i64, ptr %91, align 8, !tbaa !43
  %1540 = add i64 %1539, 1
  store i64 %1540, ptr %91, align 8, !tbaa !43
  br label %1408, !llvm.loop !84

1541:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.280, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %1542 unwind label %1556

1542:                                             ; preds = %1541
  %1543 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1544 = load i8, ptr %1543, align 8, !tbaa !9, !range !37, !noundef !38
  %1545 = trunc i8 %1544 to i1
  %1546 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1545, i32 noundef %1546)
          to label %1547 unwind label %1560

1547:                                             ; preds = %1542
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #10
  store i32 2, ptr %12, align 4, !tbaa !39
  %1548 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1549 = load i8, ptr %1548, align 8, !tbaa !9, !range !37, !noundef !38
  %1550 = trunc i8 %1549 to i1
  %1551 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1550, i32 noundef %1551, i1 noundef zeroext true)
          to label %1552 unwind label %1465

1552:                                             ; preds = %1547
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %77) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %77) #10
  br label %1553

1553:                                             ; preds = %1552
  %1554 = load i64, ptr %76, align 8, !tbaa !43
  %1555 = add i64 %1554, 1
  store i64 %1555, ptr %76, align 8, !tbaa !43
  br label %1339, !llvm.loop !85

1556:                                             ; preds = %1541
  %1557 = landingpad { ptr, i32 }
          cleanup
  %1558 = extractvalue { ptr, i32 } %1557, 0
  store ptr %1558, ptr %5, align 8
  %1559 = extractvalue { ptr, i32 } %1557, 1
  store i32 %1559, ptr %6, align 4
  br label %1564

1560:                                             ; preds = %1542
  %1561 = landingpad { ptr, i32 }
          cleanup
  %1562 = extractvalue { ptr, i32 } %1561, 0
  store ptr %1562, ptr %5, align 8
  %1563 = extractvalue { ptr, i32 } %1561, 1
  store i32 %1563, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #10
  br label %1564

1564:                                             ; preds = %1560, %1556
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #10
  br label %1565

1565:                                             ; preds = %1564, %1536, %1465
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #10
  br label %1566

1566:                                             ; preds = %1565, %1464, %1455, %1446
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %1567

1567:                                             ; preds = %1566, %1437, %1425
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %77) #10
  br label %1568

1568:                                             ; preds = %1567, %1424
  call void @llvm.lifetime.end.p0(i64 112, ptr %77) #10
  br label %1569

1569:                                             ; preds = %1568, %1347
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  br label %2282

1570:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  store i64 0, ptr %101, align 8, !tbaa !43
  br label %1571

1571:                                             ; preds = %1872, %1570
  %1572 = load i64, ptr %101, align 8, !tbaa !43
  %1573 = load ptr, ptr %18, align 8, !tbaa !5
  %1574 = invoke noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %1573)
          to label %1575 unwind label %1579

1575:                                             ; preds = %1571
  %1576 = zext i32 %1574 to i64
  %1577 = icmp ult i64 %1572, %1576
  br i1 %1577, label %1583, label %1578

1578:                                             ; preds = %1575
  store i32 32, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  br label %1901

1579:                                             ; preds = %1571
  %1580 = landingpad { ptr, i32 }
          cleanup
  %1581 = extractvalue { ptr, i32 } %1580, 0
  store ptr %1581, ptr %5, align 8
  %1582 = extractvalue { ptr, i32 } %1580, 1
  store i32 %1582, ptr %6, align 4
  br label %1900

1583:                                             ; preds = %1575
  %1584 = load ptr, ptr %18, align 8, !tbaa !5
  %1585 = getelementptr inbounds %struct.aiMesh, ptr %1584, i32 0, i32 9
  %1586 = load i64, ptr %101, align 8, !tbaa !43
  %1587 = getelementptr inbounds [8 x i32], ptr %1585, i64 0, i64 %1586
  %1588 = load i32, ptr %1587, align 4, !tbaa !39
  %1589 = icmp ugt i32 %1588, 2
  br i1 %1589, label %1590, label %1664

1590:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 392, ptr %102) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %102)
          to label %1591 unwind label %1618

1591:                                             ; preds = %1590
  %1592 = getelementptr inbounds i8, ptr %102, i64 16
  %1593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1592, ptr noundef @.str.281)
          to label %1594 unwind label %1622

1594:                                             ; preds = %1591
  %1595 = getelementptr inbounds i8, ptr %102, i64 16
  %1596 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1595, ptr noundef @.str.282)
          to label %1597 unwind label %1622

1597:                                             ; preds = %1594
  %1598 = load i64, ptr %16, align 8, !tbaa !43
  %1599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1596, i64 noundef %1598)
          to label %1600 unwind label %1622

1600:                                             ; preds = %1597
  %1601 = load ptr, ptr %18, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.aiMesh, ptr %1601, i32 0, i32 14
  %1603 = getelementptr inbounds %struct.aiString, ptr %1602, i32 0, i32 0
  %1604 = load i32, ptr %1603, align 4, !tbaa !86
  %1605 = icmp ne i32 %1604, 0
  br i1 %1605, label %1606, label %1626

1606:                                             ; preds = %1600
  %1607 = getelementptr inbounds i8, ptr %102, i64 16
  %1608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1607, ptr noundef @.str.283)
          to label %1609 unwind label %1622

1609:                                             ; preds = %1606
  %1610 = load ptr, ptr %18, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.aiMesh, ptr %1610, i32 0, i32 14
  %1612 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %1611)
          to label %1613 unwind label %1622

1613:                                             ; preds = %1609
  %1614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1608, ptr noundef %1612)
          to label %1615 unwind label %1622

1615:                                             ; preds = %1613
  %1616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1614, ptr noundef @.str.284)
          to label %1617 unwind label %1622

1617:                                             ; preds = %1615
  br label %1626

1618:                                             ; preds = %1590
  %1619 = landingpad { ptr, i32 }
          cleanup
  %1620 = extractvalue { ptr, i32 } %1619, 0
  store ptr %1620, ptr %5, align 8
  %1621 = extractvalue { ptr, i32 } %1619, 1
  store i32 %1621, ptr %6, align 4
  br label %1663

1622:                                             ; preds = %1648, %1645, %1642, %1635, %1632, %1629, %1626, %1615, %1613, %1609, %1606, %1597, %1594, %1591
  %1623 = landingpad { ptr, i32 }
          cleanup
  %1624 = extractvalue { ptr, i32 } %1623, 0
  store ptr %1624, ptr %5, align 8
  %1625 = extractvalue { ptr, i32 } %1623, 1
  store i32 %1625, ptr %6, align 4
  br label %1662

1626:                                             ; preds = %1617, %1600
  %1627 = getelementptr inbounds i8, ptr %102, i64 16
  %1628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1627, ptr noundef @.str.285)
          to label %1629 unwind label %1622

1629:                                             ; preds = %1626
  %1630 = load i64, ptr %101, align 8, !tbaa !43
  %1631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1628, i64 noundef %1630)
          to label %1632 unwind label %1622

1632:                                             ; preds = %1629
  %1633 = getelementptr inbounds i8, ptr %102, i64 16
  %1634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1633, ptr noundef @.str.286)
          to label %1635 unwind label %1622

1635:                                             ; preds = %1632
  %1636 = load ptr, ptr %18, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.aiMesh, ptr %1636, i32 0, i32 9
  %1638 = load i64, ptr %101, align 8, !tbaa !43
  %1639 = getelementptr inbounds [8 x i32], ptr %1637, i64 0, i64 %1638
  %1640 = load i32, ptr %1639, align 4, !tbaa !39
  %1641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1634, i32 noundef %1640)
          to label %1642 unwind label %1622

1642:                                             ; preds = %1635
  %1643 = getelementptr inbounds i8, ptr %102, i64 16
  %1644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1643, ptr noundef @.str.287)
          to label %1645 unwind label %1622

1645:                                             ; preds = %1642
  %1646 = getelementptr inbounds i8, ptr %102, i64 16
  %1647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1646, ptr noundef @.str.288)
          to label %1648 unwind label %1622

1648:                                             ; preds = %1645
  %1649 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %1650 unwind label %1622

1650:                                             ; preds = %1648
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(128) %102)
          to label %1651 unwind label %1653

1651:                                             ; preds = %1650
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %1649, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1652 unwind label %1657

1652:                                             ; preds = %1651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #10
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %102) #10
  call void @llvm.lifetime.end.p0(i64 392, ptr %102) #10
  br label %1664

1653:                                             ; preds = %1650
  %1654 = landingpad { ptr, i32 }
          cleanup
  %1655 = extractvalue { ptr, i32 } %1654, 0
  store ptr %1655, ptr %5, align 8
  %1656 = extractvalue { ptr, i32 } %1654, 1
  store i32 %1656, ptr %6, align 4
  br label %1661

1657:                                             ; preds = %1651
  %1658 = landingpad { ptr, i32 }
          cleanup
  %1659 = extractvalue { ptr, i32 } %1658, 0
  store ptr %1659, ptr %5, align 8
  %1660 = extractvalue { ptr, i32 } %1658, 1
  store i32 %1660, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #10
  br label %1661

1661:                                             ; preds = %1657, %1653
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #10
  br label %1662

1662:                                             ; preds = %1661, %1622
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %102) #10
  br label %1663

1663:                                             ; preds = %1662, %1618
  call void @llvm.lifetime.end.p0(i64 392, ptr %102) #10
  br label %1900

1664:                                             ; preds = %1652, %1583
  call void @llvm.lifetime.start.p0(i64 112, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.289, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %1665 unwind label %1721

1665:                                             ; preds = %1664
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %1666 = load i64, ptr %101, align 8, !tbaa !43
  %1667 = trunc i64 %1666 to i32
  store i32 %1667, ptr %107, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %1668 unwind label %1725

1668:                                             ; preds = %1665
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #10
  %1669 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1670 = load i8, ptr %1669, align 8, !tbaa !9, !range !37, !noundef !38
  %1671 = trunc i8 %1670 to i1
  %1672 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1671, i32 noundef %1672)
          to label %1673 unwind label %1730

1673:                                             ; preds = %1668
  %1674 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1675 = load i8, ptr %1674, align 8, !tbaa !9, !range !37, !noundef !38
  %1676 = trunc i8 %1675 to i1
  %1677 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1676, i32 noundef %1677)
          to label %1678 unwind label %1730

1678:                                             ; preds = %1673
  %1679 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1680 = load i8, ptr %1679, align 8, !tbaa !9, !range !37, !noundef !38
  %1681 = trunc i8 %1680 to i1
  %1682 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1681, i32 noundef %1682)
          to label %1683 unwind label %1730

1683:                                             ; preds = %1678
  %1684 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1685 = load i8, ptr %1684, align 8, !tbaa !9, !range !37, !noundef !38
  %1686 = trunc i8 %1685 to i1
  %1687 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1686, i32 noundef %1687)
          to label %1688 unwind label %1730

1688:                                             ; preds = %1683
  store i32 3, ptr %12, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %109)
          to label %1689 unwind label %1734

1689:                                             ; preds = %1688
  %1690 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1691 = load i8, ptr %1690, align 8, !tbaa !9, !range !37, !noundef !38
  %1692 = trunc i8 %1691 to i1
  %1693 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %108, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1692, i32 noundef %1693)
          to label %1694 unwind label %1738

1694:                                             ; preds = %1689
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1695 unwind label %1743

1695:                                             ; preds = %1694
  %1696 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1697 = load i8, ptr %1696, align 8, !tbaa !9, !range !37, !noundef !38
  %1698 = trunc i8 %1697 to i1
  %1699 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.67, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1698, i32 noundef %1699)
          to label %1700 unwind label %1747

1700:                                             ; preds = %1695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %1701 unwind label %1752

1701:                                             ; preds = %1700
  %1702 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1703 = load i8, ptr %1702, align 8, !tbaa !9, !range !37, !noundef !38
  %1704 = trunc i8 %1703 to i1
  %1705 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1704, i32 noundef %1705)
          to label %1706 unwind label %1756

1706:                                             ; preds = %1701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1707 unwind label %1761

1707:                                             ; preds = %1706
  %1708 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1709 = load i8, ptr %1708, align 8, !tbaa !9, !range !37, !noundef !38
  %1710 = trunc i8 %1709 to i1
  %1711 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.290, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1710, i32 noundef %1711)
          to label %1712 unwind label %1765

1712:                                             ; preds = %1707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %116) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %117) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %118) #10
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %118) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  store i32 0, ptr %119, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  store i64 0, ptr %120, align 8, !tbaa !43
  br label %1713

1713:                                             ; preds = %1851, %1712
  %1714 = load i64, ptr %120, align 8, !tbaa !43
  %1715 = load ptr, ptr %18, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.aiMesh, ptr %1715, i32 0, i32 2
  %1717 = load i32, ptr %1716, align 8, !tbaa !68
  %1718 = zext i32 %1717 to i64
  %1719 = icmp ult i64 %1714, %1718
  br i1 %1719, label %1770, label %1720

1720:                                             ; preds = %1713
  store i32 35, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  br label %1854

1721:                                             ; preds = %1664
  %1722 = landingpad { ptr, i32 }
          cleanup
  %1723 = extractvalue { ptr, i32 } %1722, 0
  store ptr %1723, ptr %5, align 8
  %1724 = extractvalue { ptr, i32 } %1722, 1
  store i32 %1724, ptr %6, align 4
  br label %1729

1725:                                             ; preds = %1665
  %1726 = landingpad { ptr, i32 }
          cleanup
  %1727 = extractvalue { ptr, i32 } %1726, 0
  store ptr %1727, ptr %5, align 8
  %1728 = extractvalue { ptr, i32 } %1726, 1
  store i32 %1728, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  br label %1729

1729:                                             ; preds = %1725, %1721
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #10
  br label %1899

1730:                                             ; preds = %1683, %1678, %1673, %1668
  %1731 = landingpad { ptr, i32 }
          cleanup
  %1732 = extractvalue { ptr, i32 } %1731, 0
  store ptr %1732, ptr %5, align 8
  %1733 = extractvalue { ptr, i32 } %1731, 1
  store i32 %1733, ptr %6, align 4
  br label %1898

1734:                                             ; preds = %1688
  %1735 = landingpad { ptr, i32 }
          cleanup
  %1736 = extractvalue { ptr, i32 } %1735, 0
  store ptr %1736, ptr %5, align 8
  %1737 = extractvalue { ptr, i32 } %1735, 1
  store i32 %1737, ptr %6, align 4
  br label %1742

1738:                                             ; preds = %1689
  %1739 = landingpad { ptr, i32 }
          cleanup
  %1740 = extractvalue { ptr, i32 } %1739, 0
  store ptr %1740, ptr %5, align 8
  %1741 = extractvalue { ptr, i32 } %1739, 1
  store i32 %1741, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #10
  br label %1742

1742:                                             ; preds = %1738, %1734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %109) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #10
  br label %1898

1743:                                             ; preds = %1694
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %5, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %6, align 4
  br label %1751

1747:                                             ; preds = %1695
  %1748 = landingpad { ptr, i32 }
          cleanup
  %1749 = extractvalue { ptr, i32 } %1748, 0
  store ptr %1749, ptr %5, align 8
  %1750 = extractvalue { ptr, i32 } %1748, 1
  store i32 %1750, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #10
  br label %1751

1751:                                             ; preds = %1747, %1743
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #10
  br label %1898

1752:                                             ; preds = %1700
  %1753 = landingpad { ptr, i32 }
          cleanup
  %1754 = extractvalue { ptr, i32 } %1753, 0
  store ptr %1754, ptr %5, align 8
  %1755 = extractvalue { ptr, i32 } %1753, 1
  store i32 %1755, ptr %6, align 4
  br label %1760

1756:                                             ; preds = %1701
  %1757 = landingpad { ptr, i32 }
          cleanup
  %1758 = extractvalue { ptr, i32 } %1757, 0
  store ptr %1758, ptr %5, align 8
  %1759 = extractvalue { ptr, i32 } %1757, 1
  store i32 %1759, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #10
  br label %1760

1760:                                             ; preds = %1756, %1752
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #10
  br label %1898

1761:                                             ; preds = %1706
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %5, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %6, align 4
  br label %1769

1765:                                             ; preds = %1707
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %5, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #10
  br label %1769

1769:                                             ; preds = %1765, %1761
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #10
  br label %1898

1770:                                             ; preds = %1713
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #10
  %1771 = load ptr, ptr %18, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.aiMesh, ptr %1771, i32 0, i32 10
  %1773 = load ptr, ptr %1772, align 8, !tbaa !69
  %1774 = load i64, ptr %120, align 8, !tbaa !43
  %1775 = getelementptr inbounds %struct.aiFace, ptr %1773, i64 %1774
  store ptr %1775, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  store i64 0, ptr %122, align 8, !tbaa !43
  br label %1776

1776:                                             ; preds = %1846, %1770
  %1777 = load i64, ptr %122, align 8, !tbaa !43
  %1778 = load ptr, ptr %121, align 8, !tbaa !5
  %1779 = getelementptr inbounds %struct.aiFace, ptr %1778, i32 0, i32 0
  %1780 = load i32, ptr %1779, align 8, !tbaa !70
  %1781 = zext i32 %1780 to i64
  %1782 = icmp ult i64 %1777, %1781
  br i1 %1782, label %1784, label %1783

1783:                                             ; preds = %1776
  store i32 38, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %1850

1784:                                             ; preds = %1776
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  %1785 = load ptr, ptr %18, align 8, !tbaa !5
  %1786 = getelementptr inbounds %struct.aiMesh, ptr %1785, i32 0, i32 8
  %1787 = load i64, ptr %101, align 8, !tbaa !43
  %1788 = getelementptr inbounds [8 x ptr], ptr %1786, i64 0, i64 %1787
  %1789 = load ptr, ptr %1788, align 8, !tbaa !5
  %1790 = load ptr, ptr %121, align 8, !tbaa !5
  %1791 = getelementptr inbounds %struct.aiFace, ptr %1790, i32 0, i32 1
  %1792 = load ptr, ptr %1791, align 8, !tbaa !72
  %1793 = load i64, ptr %122, align 8, !tbaa !43
  %1794 = getelementptr inbounds i32, ptr %1792, i64 %1793
  %1795 = load i32, ptr %1794, align 4, !tbaa !39
  %1796 = zext i32 %1795 to i64
  %1797 = getelementptr inbounds %class.aiVector3t, ptr %1789, i64 %1796
  store ptr %1797, ptr %123, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %1798 = load ptr, ptr %123, align 8, !tbaa !5
  %1799 = invoke ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 4 dereferenceable(12) %1798)
          to label %1800 unwind label %1820

1800:                                             ; preds = %1784
  %1801 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.99", ptr %124, i32 0, i32 0
  store ptr %1799, ptr %1801, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %1802 = call ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %118) #10
  %1803 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.99", ptr %125, i32 0, i32 0
  store ptr %1802, ptr %1803, align 8
  %1804 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEiEES7_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  br i1 %1804, label %1805, label %1841

1805:                                             ; preds = %1800
  %1806 = load i32, ptr %119, align 4, !tbaa !39
  %1807 = load ptr, ptr %123, align 8, !tbaa !5
  %1808 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %118, ptr noundef nonnull align 4 dereferenceable(12) %1807)
          to label %1809 unwind label %1820

1809:                                             ; preds = %1805
  store i32 %1806, ptr %1808, align 4, !tbaa !39
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 4 dereferenceable(4) %119)
          to label %1810 unwind label %1820

1810:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  store i32 0, ptr %126, align 4, !tbaa !39
  br label %1811

1811:                                             ; preds = %1831, %1810
  %1812 = load i32, ptr %126, align 4, !tbaa !39
  %1813 = load ptr, ptr %18, align 8, !tbaa !5
  %1814 = getelementptr inbounds %struct.aiMesh, ptr %1813, i32 0, i32 9
  %1815 = load i64, ptr %101, align 8, !tbaa !43
  %1816 = getelementptr inbounds [8 x i32], ptr %1814, i64 0, i64 %1815
  %1817 = load i32, ptr %1816, align 4, !tbaa !39
  %1818 = icmp ult i32 %1812, %1817
  br i1 %1818, label %1824, label %1819

1819:                                             ; preds = %1811
  store i32 41, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %1838

1820:                                             ; preds = %1841, %1809, %1805, %1784
  %1821 = landingpad { ptr, i32 }
          cleanup
  %1822 = extractvalue { ptr, i32 } %1821, 0
  store ptr %1822, ptr %5, align 8
  %1823 = extractvalue { ptr, i32 } %1821, 1
  store i32 %1823, ptr %6, align 4
  br label %1849

1824:                                             ; preds = %1811
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  %1825 = load ptr, ptr %123, align 8, !tbaa !5
  %1826 = load i32, ptr %126, align 4, !tbaa !39
  %1827 = invoke noundef float @_ZNK10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %1825, i32 noundef %1826)
          to label %1828 unwind label %1834

1828:                                             ; preds = %1824
  %1829 = fpext float %1827 to double
  store double %1829, ptr %127, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 8 dereferenceable(8) %127)
          to label %1830 unwind label %1834

1830:                                             ; preds = %1828
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  br label %1831

1831:                                             ; preds = %1830
  %1832 = load i32, ptr %126, align 4, !tbaa !39
  %1833 = add i32 %1832, 1
  store i32 %1833, ptr %126, align 4, !tbaa !39
  br label %1811, !llvm.loop !87

1834:                                             ; preds = %1828, %1824
  %1835 = landingpad { ptr, i32 }
          cleanup
  %1836 = extractvalue { ptr, i32 } %1835, 0
  store ptr %1836, ptr %5, align 8
  %1837 = extractvalue { ptr, i32 } %1835, 1
  store i32 %1837, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %1849

1838:                                             ; preds = %1819
  %1839 = load i32, ptr %119, align 4, !tbaa !39
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr %119, align 4, !tbaa !39
  br label %1845

1841:                                             ; preds = %1800
  %1842 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %124) #10
  %1843 = getelementptr inbounds %"struct.std::pair.100", ptr %1842, i32 0, i32 1
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 4 dereferenceable(4) %1843)
          to label %1844 unwind label %1820

1844:                                             ; preds = %1841
  br label %1845

1845:                                             ; preds = %1844, %1838
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  br label %1846

1846:                                             ; preds = %1845
  %1847 = load i64, ptr %122, align 8, !tbaa !43
  %1848 = add i64 %1847, 1
  store i64 %1848, ptr %122, align 8, !tbaa !43
  br label %1776, !llvm.loop !88

1849:                                             ; preds = %1834, %1820
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  br label %1897

1850:                                             ; preds = %1783
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #10
  br label %1851

1851:                                             ; preds = %1850
  %1852 = load i64, ptr %120, align 8, !tbaa !43
  %1853 = add i64 %1852, 1
  store i64 %1853, ptr %120, align 8, !tbaa !43
  br label %1713, !llvm.loop !89

1854:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1855 unwind label %1875

1855:                                             ; preds = %1854
  %1856 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1857 = load i8, ptr %1856, align 8, !tbaa !9, !range !37, !noundef !38
  %1858 = trunc i8 %1857 to i1
  %1859 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1858, i32 noundef %1859)
          to label %1860 unwind label %1879

1860:                                             ; preds = %1855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.292, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %1861 unwind label %1884

1861:                                             ; preds = %1860
  %1862 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1863 = load i8, ptr %1862, align 8, !tbaa !9, !range !37, !noundef !38
  %1864 = trunc i8 %1863 to i1
  %1865 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1864, i32 noundef %1865)
          to label %1866 unwind label %1888

1866:                                             ; preds = %1861
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #10
  store i32 2, ptr %12, align 4, !tbaa !39
  %1867 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1868 = load i8, ptr %1867, align 8, !tbaa !9, !range !37, !noundef !38
  %1869 = trunc i8 %1868 to i1
  %1870 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %104, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1869, i32 noundef %1870, i1 noundef zeroext true)
          to label %1871 unwind label %1893

1871:                                             ; preds = %1866
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %118) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %118) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %117) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %116) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %104) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %104) #10
  br label %1872

1872:                                             ; preds = %1871
  %1873 = load i64, ptr %101, align 8, !tbaa !43
  %1874 = add i64 %1873, 1
  store i64 %1874, ptr %101, align 8, !tbaa !43
  br label %1571, !llvm.loop !90

1875:                                             ; preds = %1854
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %5, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %6, align 4
  br label %1883

1879:                                             ; preds = %1855
  %1880 = landingpad { ptr, i32 }
          cleanup
  %1881 = extractvalue { ptr, i32 } %1880, 0
  store ptr %1881, ptr %5, align 8
  %1882 = extractvalue { ptr, i32 } %1880, 1
  store i32 %1882, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #10
  br label %1883

1883:                                             ; preds = %1879, %1875
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #10
  br label %1897

1884:                                             ; preds = %1860
  %1885 = landingpad { ptr, i32 }
          cleanup
  %1886 = extractvalue { ptr, i32 } %1885, 0
  store ptr %1886, ptr %5, align 8
  %1887 = extractvalue { ptr, i32 } %1885, 1
  store i32 %1887, ptr %6, align 4
  br label %1892

1888:                                             ; preds = %1861
  %1889 = landingpad { ptr, i32 }
          cleanup
  %1890 = extractvalue { ptr, i32 } %1889, 0
  store ptr %1890, ptr %5, align 8
  %1891 = extractvalue { ptr, i32 } %1889, 1
  store i32 %1891, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #10
  br label %1892

1892:                                             ; preds = %1888, %1884
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #10
  br label %1897

1893:                                             ; preds = %1866
  %1894 = landingpad { ptr, i32 }
          cleanup
  %1895 = extractvalue { ptr, i32 } %1894, 0
  store ptr %1895, ptr %5, align 8
  %1896 = extractvalue { ptr, i32 } %1894, 1
  store i32 %1896, ptr %6, align 4
  br label %1897

1897:                                             ; preds = %1893, %1892, %1883, %1849
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %118) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %118) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %117) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %117) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %116) #10
  br label %1898

1898:                                             ; preds = %1897, %1769, %1760, %1751, %1742, %1730
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %104) #10
  br label %1899

1899:                                             ; preds = %1898, %1729
  call void @llvm.lifetime.end.p0(i64 112, ptr %104) #10
  br label %1900

1900:                                             ; preds = %1899, %1663, %1579
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  br label %2282

1901:                                             ; preds = %1578
  call void @llvm.lifetime.start.p0(i64 112, ptr %132) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %134) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef @.str.293, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %1902 unwind label %1945

1902:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  store i32 0, ptr %135, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 4 dereferenceable(4) %135)
          to label %1903 unwind label %1949

1903:                                             ; preds = %1902
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1904 unwind label %1954

1904:                                             ; preds = %1903
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  store i32 101, ptr %138, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 4 dereferenceable(4) %138)
          to label %1905 unwind label %1958

1905:                                             ; preds = %1904
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %140) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %1906 unwind label %1963

1906:                                             ; preds = %1905
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA1_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %1907 unwind label %1967

1907:                                             ; preds = %1906
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %142) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %142)
          to label %1908 unwind label %1972

1908:                                             ; preds = %1907
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA8_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 1 dereferenceable(8) @.str.294)
          to label %1909 unwind label %1976

1909:                                             ; preds = %1908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %144) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %144)
          to label %1910 unwind label %1981

1910:                                             ; preds = %1909
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA14_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef nonnull align 1 dereferenceable(14) @.str.290)
          to label %1911 unwind label %1985

1911:                                             ; preds = %1910
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %145) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  store i32 0, ptr %147, align 4, !tbaa !39
  %1912 = getelementptr inbounds %"class.std::initializer_list.102", ptr %146, i32 0, i32 0
  store ptr %147, ptr %1912, align 8, !tbaa !91
  %1913 = getelementptr inbounds %"class.std::initializer_list.102", ptr %146, i32 0, i32 1
  store i64 1, ptr %1913, align 8, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #10
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #10
  %1914 = getelementptr inbounds { ptr, i64 }, ptr %146, i32 0, i32 0
  %1915 = load ptr, ptr %1914, align 8
  %1916 = getelementptr inbounds { ptr, i64 }, ptr %146, i32 0, i32 1
  %1917 = load i64, ptr %1916, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr %1915, i64 %1917, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %1918 unwind label %1990

1918:                                             ; preds = %1911
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %150) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef @.str.295, ptr noundef nonnull align 1 dereferenceable(1) %150)
          to label %1919 unwind label %1994

1919:                                             ; preds = %1918
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIiSaIiEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull align 8 dereferenceable(24) %145)
          to label %1920 unwind label %1998

1920:                                             ; preds = %1919
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #10
  %1921 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %1922 = load i8, ptr %1921, align 8, !tbaa !9, !range !37, !noundef !38
  %1923 = trunc i8 %1922 to i1
  %1924 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %132, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %1923, i32 noundef %1924)
          to label %1925 unwind label %2003

1925:                                             ; preds = %1920
  call void @llvm.lifetime.start.p0(i64 112, ptr %151) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %1926 unwind label %2007

1926:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  store i32 0, ptr %154, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull align 4 dereferenceable(4) %154)
          to label %1927 unwind label %2011

1927:                                             ; preds = %1926
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %1928 unwind label %2016

1928:                                             ; preds = %1927
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  store i32 100, ptr %157, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull align 4 dereferenceable(4) %157)
          to label %1929 unwind label %2020

1929:                                             ; preds = %1928
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %158) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %159) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %160) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %159, ptr noundef @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %160)
          to label %1930 unwind label %2025

1930:                                             ; preds = %1929
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %159)
          to label %1931 unwind label %2029

1931:                                             ; preds = %1930
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %160) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %162) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %1932 unwind label %2034

1932:                                             ; preds = %1931
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA19_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull align 1 dereferenceable(19) @.str.271)
          to label %1933 unwind label %2038

1933:                                             ; preds = %1932
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %1934 unwind label %2043

1934:                                             ; preds = %1933
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  store i32 0, ptr %165, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull align 4 dereferenceable(4) %165)
          to label %1935 unwind label %2047

1935:                                             ; preds = %1934
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(112) %158)
          to label %1936 unwind label %2052

1936:                                             ; preds = %1935
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #10
  store i64 0, ptr %166, align 8, !tbaa !43
  br label %1937

1937:                                             ; preds = %2071, %1936
  %1938 = load i64, ptr %166, align 8, !tbaa !43
  %1939 = load ptr, ptr %18, align 8, !tbaa !5
  %1940 = invoke noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %1939)
          to label %1941 unwind label %2056

1941:                                             ; preds = %1937
  %1942 = zext i32 %1940 to i64
  %1943 = icmp ult i64 %1938, %1942
  br i1 %1943, label %2060, label %1944

1944:                                             ; preds = %1941
  store i32 44, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #10
  br label %2102

1945:                                             ; preds = %1901
  %1946 = landingpad { ptr, i32 }
          cleanup
  %1947 = extractvalue { ptr, i32 } %1946, 0
  store ptr %1947, ptr %5, align 8
  %1948 = extractvalue { ptr, i32 } %1946, 1
  store i32 %1948, ptr %6, align 4
  br label %1953

1949:                                             ; preds = %1902
  %1950 = landingpad { ptr, i32 }
          cleanup
  %1951 = extractvalue { ptr, i32 } %1950, 0
  store ptr %1951, ptr %5, align 8
  %1952 = extractvalue { ptr, i32 } %1950, 1
  store i32 %1952, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #10
  br label %1953

1953:                                             ; preds = %1949, %1945
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #10
  br label %2281

1954:                                             ; preds = %1903
  %1955 = landingpad { ptr, i32 }
          cleanup
  %1956 = extractvalue { ptr, i32 } %1955, 0
  store ptr %1956, ptr %5, align 8
  %1957 = extractvalue { ptr, i32 } %1955, 1
  store i32 %1957, ptr %6, align 4
  br label %1962

1958:                                             ; preds = %1904
  %1959 = landingpad { ptr, i32 }
          cleanup
  %1960 = extractvalue { ptr, i32 } %1959, 0
  store ptr %1960, ptr %5, align 8
  %1961 = extractvalue { ptr, i32 } %1959, 1
  store i32 %1961, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #10
  br label %1962

1962:                                             ; preds = %1958, %1954
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #10
  br label %2280

1963:                                             ; preds = %1905
  %1964 = landingpad { ptr, i32 }
          cleanup
  %1965 = extractvalue { ptr, i32 } %1964, 0
  store ptr %1965, ptr %5, align 8
  %1966 = extractvalue { ptr, i32 } %1964, 1
  store i32 %1966, ptr %6, align 4
  br label %1971

1967:                                             ; preds = %1906
  %1968 = landingpad { ptr, i32 }
          cleanup
  %1969 = extractvalue { ptr, i32 } %1968, 0
  store ptr %1969, ptr %5, align 8
  %1970 = extractvalue { ptr, i32 } %1968, 1
  store i32 %1970, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #10
  br label %1971

1971:                                             ; preds = %1967, %1963
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #10
  br label %2280

1972:                                             ; preds = %1907
  %1973 = landingpad { ptr, i32 }
          cleanup
  %1974 = extractvalue { ptr, i32 } %1973, 0
  store ptr %1974, ptr %5, align 8
  %1975 = extractvalue { ptr, i32 } %1973, 1
  store i32 %1975, ptr %6, align 4
  br label %1980

1976:                                             ; preds = %1908
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %5, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #10
  br label %1980

1980:                                             ; preds = %1976, %1972
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #10
  br label %2280

1981:                                             ; preds = %1909
  %1982 = landingpad { ptr, i32 }
          cleanup
  %1983 = extractvalue { ptr, i32 } %1982, 0
  store ptr %1983, ptr %5, align 8
  %1984 = extractvalue { ptr, i32 } %1982, 1
  store i32 %1984, ptr %6, align 4
  br label %1989

1985:                                             ; preds = %1910
  %1986 = landingpad { ptr, i32 }
          cleanup
  %1987 = extractvalue { ptr, i32 } %1986, 0
  store ptr %1987, ptr %5, align 8
  %1988 = extractvalue { ptr, i32 } %1986, 1
  store i32 %1988, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #10
  br label %1989

1989:                                             ; preds = %1985, %1981
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #10
  br label %2280

1990:                                             ; preds = %1911
  %1991 = landingpad { ptr, i32 }
          cleanup
  %1992 = extractvalue { ptr, i32 } %1991, 0
  store ptr %1992, ptr %5, align 8
  %1993 = extractvalue { ptr, i32 } %1991, 1
  store i32 %1993, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %2279

1994:                                             ; preds = %1918
  %1995 = landingpad { ptr, i32 }
          cleanup
  %1996 = extractvalue { ptr, i32 } %1995, 0
  store ptr %1996, ptr %5, align 8
  %1997 = extractvalue { ptr, i32 } %1995, 1
  store i32 %1997, ptr %6, align 4
  br label %2002

1998:                                             ; preds = %1919
  %1999 = landingpad { ptr, i32 }
          cleanup
  %2000 = extractvalue { ptr, i32 } %1999, 0
  store ptr %2000, ptr %5, align 8
  %2001 = extractvalue { ptr, i32 } %1999, 1
  store i32 %2001, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #10
  br label %2002

2002:                                             ; preds = %1998, %1994
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #10
  br label %2278

2003:                                             ; preds = %1920
  %2004 = landingpad { ptr, i32 }
          cleanup
  %2005 = extractvalue { ptr, i32 } %2004, 0
  store ptr %2005, ptr %5, align 8
  %2006 = extractvalue { ptr, i32 } %2004, 1
  store i32 %2006, ptr %6, align 4
  br label %2278

2007:                                             ; preds = %1925
  %2008 = landingpad { ptr, i32 }
          cleanup
  %2009 = extractvalue { ptr, i32 } %2008, 0
  store ptr %2009, ptr %5, align 8
  %2010 = extractvalue { ptr, i32 } %2008, 1
  store i32 %2010, ptr %6, align 4
  br label %2015

2011:                                             ; preds = %1926
  %2012 = landingpad { ptr, i32 }
          cleanup
  %2013 = extractvalue { ptr, i32 } %2012, 0
  store ptr %2013, ptr %5, align 8
  %2014 = extractvalue { ptr, i32 } %2012, 1
  store i32 %2014, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #10
  br label %2015

2015:                                             ; preds = %2011, %2007
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #10
  br label %2277

2016:                                             ; preds = %1927
  %2017 = landingpad { ptr, i32 }
          cleanup
  %2018 = extractvalue { ptr, i32 } %2017, 0
  store ptr %2018, ptr %5, align 8
  %2019 = extractvalue { ptr, i32 } %2017, 1
  store i32 %2019, ptr %6, align 4
  br label %2024

2020:                                             ; preds = %1928
  %2021 = landingpad { ptr, i32 }
          cleanup
  %2022 = extractvalue { ptr, i32 } %2021, 0
  store ptr %2022, ptr %5, align 8
  %2023 = extractvalue { ptr, i32 } %2021, 1
  store i32 %2023, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #10
  br label %2024

2024:                                             ; preds = %2020, %2016
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #10
  br label %2276

2025:                                             ; preds = %1929
  %2026 = landingpad { ptr, i32 }
          cleanup
  %2027 = extractvalue { ptr, i32 } %2026, 0
  store ptr %2027, ptr %5, align 8
  %2028 = extractvalue { ptr, i32 } %2026, 1
  store i32 %2028, ptr %6, align 4
  br label %2033

2029:                                             ; preds = %1930
  %2030 = landingpad { ptr, i32 }
          cleanup
  %2031 = extractvalue { ptr, i32 } %2030, 0
  store ptr %2031, ptr %5, align 8
  %2032 = extractvalue { ptr, i32 } %2030, 1
  store i32 %2032, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #10
  br label %2033

2033:                                             ; preds = %2029, %2025
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %160) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %160) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %159) #10
  br label %2275

2034:                                             ; preds = %1931
  %2035 = landingpad { ptr, i32 }
          cleanup
  %2036 = extractvalue { ptr, i32 } %2035, 0
  store ptr %2036, ptr %5, align 8
  %2037 = extractvalue { ptr, i32 } %2035, 1
  store i32 %2037, ptr %6, align 4
  br label %2042

2038:                                             ; preds = %1932
  %2039 = landingpad { ptr, i32 }
          cleanup
  %2040 = extractvalue { ptr, i32 } %2039, 0
  store ptr %2040, ptr %5, align 8
  %2041 = extractvalue { ptr, i32 } %2039, 1
  store i32 %2041, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #10
  br label %2042

2042:                                             ; preds = %2038, %2034
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %162) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #10
  br label %2274

2043:                                             ; preds = %1933
  %2044 = landingpad { ptr, i32 }
          cleanup
  %2045 = extractvalue { ptr, i32 } %2044, 0
  store ptr %2045, ptr %5, align 8
  %2046 = extractvalue { ptr, i32 } %2044, 1
  store i32 %2046, ptr %6, align 4
  br label %2051

2047:                                             ; preds = %1934
  %2048 = landingpad { ptr, i32 }
          cleanup
  %2049 = extractvalue { ptr, i32 } %2048, 0
  store ptr %2049, ptr %5, align 8
  %2050 = extractvalue { ptr, i32 } %2048, 1
  store i32 %2050, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #10
  br label %2051

2051:                                             ; preds = %2047, %2043
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #10
  br label %2274

2052:                                             ; preds = %2265, %2118, %2117, %2109, %1935
  %2053 = landingpad { ptr, i32 }
          cleanup
  %2054 = extractvalue { ptr, i32 } %2053, 0
  store ptr %2054, ptr %5, align 8
  %2055 = extractvalue { ptr, i32 } %2053, 1
  store i32 %2055, ptr %6, align 4
  br label %2274

2056:                                             ; preds = %2069, %1937
  %2057 = landingpad { ptr, i32 }
          cleanup
  %2058 = extractvalue { ptr, i32 } %2057, 0
  store ptr %2058, ptr %5, align 8
  %2059 = extractvalue { ptr, i32 } %2057, 1
  store i32 %2059, ptr %6, align 4
  br label %2101

2060:                                             ; preds = %1941
  call void @llvm.lifetime.start.p0(i64 112, ptr %167) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %169)
          to label %2061 unwind label %2074

2061:                                             ; preds = %2060
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %167, ptr noundef nonnull align 8 dereferenceable(32) %168)
          to label %2062 unwind label %2078

2062:                                             ; preds = %2061
  %2063 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(112) %167) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %167) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %167) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %171) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %171)
          to label %2064 unwind label %2083

2064:                                             ; preds = %2062
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA18_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef nonnull align 1 dereferenceable(18) @.str.278)
          to label %2065 unwind label %2087

2065:                                             ; preds = %2064
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %2066 unwind label %2092

2066:                                             ; preds = %2065
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %2067 = load i64, ptr %166, align 8, !tbaa !43
  %2068 = trunc i64 %2067 to i32
  store i32 %2068, ptr %174, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull align 4 dereferenceable(4) %174)
          to label %2069 unwind label %2096

2069:                                             ; preds = %2066
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(112) %158)
          to label %2070 unwind label %2056

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070
  %2072 = load i64, ptr %166, align 8, !tbaa !43
  %2073 = add i64 %2072, 1
  store i64 %2073, ptr %166, align 8, !tbaa !43
  br label %1937, !llvm.loop !94

2074:                                             ; preds = %2060
  %2075 = landingpad { ptr, i32 }
          cleanup
  %2076 = extractvalue { ptr, i32 } %2075, 0
  store ptr %2076, ptr %5, align 8
  %2077 = extractvalue { ptr, i32 } %2075, 1
  store i32 %2077, ptr %6, align 4
  br label %2082

2078:                                             ; preds = %2061
  %2079 = landingpad { ptr, i32 }
          cleanup
  %2080 = extractvalue { ptr, i32 } %2079, 0
  store ptr %2080, ptr %5, align 8
  %2081 = extractvalue { ptr, i32 } %2079, 1
  store i32 %2081, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #10
  br label %2082

2082:                                             ; preds = %2078, %2074
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %167) #10
  br label %2101

2083:                                             ; preds = %2062
  %2084 = landingpad { ptr, i32 }
          cleanup
  %2085 = extractvalue { ptr, i32 } %2084, 0
  store ptr %2085, ptr %5, align 8
  %2086 = extractvalue { ptr, i32 } %2084, 1
  store i32 %2086, ptr %6, align 4
  br label %2091

2087:                                             ; preds = %2064
  %2088 = landingpad { ptr, i32 }
          cleanup
  %2089 = extractvalue { ptr, i32 } %2088, 0
  store ptr %2089, ptr %5, align 8
  %2090 = extractvalue { ptr, i32 } %2088, 1
  store i32 %2090, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #10
  br label %2091

2091:                                             ; preds = %2087, %2083
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %171) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %171) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #10
  br label %2101

2092:                                             ; preds = %2065
  %2093 = landingpad { ptr, i32 }
          cleanup
  %2094 = extractvalue { ptr, i32 } %2093, 0
  store ptr %2094, ptr %5, align 8
  %2095 = extractvalue { ptr, i32 } %2093, 1
  store i32 %2095, ptr %6, align 4
  br label %2100

2096:                                             ; preds = %2066
  %2097 = landingpad { ptr, i32 }
          cleanup
  %2098 = extractvalue { ptr, i32 } %2097, 0
  store ptr %2098, ptr %5, align 8
  %2099 = extractvalue { ptr, i32 } %2097, 1
  store i32 %2099, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #10
  br label %2100

2100:                                             ; preds = %2096, %2092
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #10
  br label %2101

2101:                                             ; preds = %2100, %2091, %2082, %2056
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #10
  br label %2274

2102:                                             ; preds = %1944
  call void @llvm.lifetime.start.p0(i64 112, ptr %175) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %2103 unwind label %2131

2103:                                             ; preds = %2102
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %175, ptr noundef nonnull align 8 dereferenceable(32) %176)
          to label %2104 unwind label %2135

2104:                                             ; preds = %2103
  %2105 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(112) %175) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %175) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %175) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %2106 unwind label %2140

2106:                                             ; preds = %2104
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA21_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull align 1 dereferenceable(21) @.str.293)
          to label %2107 unwind label %2144

2107:                                             ; preds = %2106
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %181) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %2108 unwind label %2149

2108:                                             ; preds = %2107
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #10
  store i32 0, ptr %182, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 4 dereferenceable(4) %182)
          to label %2109 unwind label %2153

2109:                                             ; preds = %2108
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(112) %158)
          to label %2110 unwind label %2052

2110:                                             ; preds = %2109
  call void @llvm.lifetime.start.p0(i64 112, ptr %183) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %184) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %185) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %2111 unwind label %2158

2111:                                             ; preds = %2110
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %183, ptr noundef nonnull align 8 dereferenceable(32) %184)
          to label %2112 unwind label %2162

2112:                                             ; preds = %2111
  %2113 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(112) %183) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %183) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %183) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %2114 unwind label %2167

2114:                                             ; preds = %2112
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA15_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 1 dereferenceable(15) @.str.289)
          to label %2115 unwind label %2171

2115:                                             ; preds = %2114
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %189) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %2116 unwind label %2176

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  store i32 0, ptr %190, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %158, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 4 dereferenceable(4) %190)
          to label %2117 unwind label %2180

2117:                                             ; preds = %2116
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(112) %158)
          to label %2118 unwind label %2052

2118:                                             ; preds = %2117
  %2119 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %2120 = load i8, ptr %2119, align 8, !tbaa !9, !range !37, !noundef !38
  %2121 = trunc i8 %2120 to i1
  %2122 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %151, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %2121, i32 noundef %2122)
          to label %2123 unwind label %2052

2123:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  store i32 1, ptr %191, align 4, !tbaa !39
  br label %2124

2124:                                             ; preds = %2208, %2123
  %2125 = load i32, ptr %191, align 4, !tbaa !39
  %2126 = load ptr, ptr %18, align 8, !tbaa !5
  %2127 = invoke noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %2126)
          to label %2128 unwind label %2185

2128:                                             ; preds = %2124
  %2129 = icmp ult i32 %2125, %2127
  br i1 %2129, label %2189, label %2130

2130:                                             ; preds = %2128
  store i32 47, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %2265

2131:                                             ; preds = %2102
  %2132 = landingpad { ptr, i32 }
          cleanup
  %2133 = extractvalue { ptr, i32 } %2132, 0
  store ptr %2133, ptr %5, align 8
  %2134 = extractvalue { ptr, i32 } %2132, 1
  store i32 %2134, ptr %6, align 4
  br label %2139

2135:                                             ; preds = %2103
  %2136 = landingpad { ptr, i32 }
          cleanup
  %2137 = extractvalue { ptr, i32 } %2136, 0
  store ptr %2137, ptr %5, align 8
  %2138 = extractvalue { ptr, i32 } %2136, 1
  store i32 %2138, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #10
  br label %2139

2139:                                             ; preds = %2135, %2131
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %175) #10
  br label %2274

2140:                                             ; preds = %2104
  %2141 = landingpad { ptr, i32 }
          cleanup
  %2142 = extractvalue { ptr, i32 } %2141, 0
  store ptr %2142, ptr %5, align 8
  %2143 = extractvalue { ptr, i32 } %2141, 1
  store i32 %2143, ptr %6, align 4
  br label %2148

2144:                                             ; preds = %2106
  %2145 = landingpad { ptr, i32 }
          cleanup
  %2146 = extractvalue { ptr, i32 } %2145, 0
  store ptr %2146, ptr %5, align 8
  %2147 = extractvalue { ptr, i32 } %2145, 1
  store i32 %2147, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #10
  br label %2148

2148:                                             ; preds = %2144, %2140
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #10
  br label %2274

2149:                                             ; preds = %2107
  %2150 = landingpad { ptr, i32 }
          cleanup
  %2151 = extractvalue { ptr, i32 } %2150, 0
  store ptr %2151, ptr %5, align 8
  %2152 = extractvalue { ptr, i32 } %2150, 1
  store i32 %2152, ptr %6, align 4
  br label %2157

2153:                                             ; preds = %2108
  %2154 = landingpad { ptr, i32 }
          cleanup
  %2155 = extractvalue { ptr, i32 } %2154, 0
  store ptr %2155, ptr %5, align 8
  %2156 = extractvalue { ptr, i32 } %2154, 1
  store i32 %2156, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #10
  br label %2157

2157:                                             ; preds = %2153, %2149
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %181) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #10
  br label %2274

2158:                                             ; preds = %2110
  %2159 = landingpad { ptr, i32 }
          cleanup
  %2160 = extractvalue { ptr, i32 } %2159, 0
  store ptr %2160, ptr %5, align 8
  %2161 = extractvalue { ptr, i32 } %2159, 1
  store i32 %2161, ptr %6, align 4
  br label %2166

2162:                                             ; preds = %2111
  %2163 = landingpad { ptr, i32 }
          cleanup
  %2164 = extractvalue { ptr, i32 } %2163, 0
  store ptr %2164, ptr %5, align 8
  %2165 = extractvalue { ptr, i32 } %2163, 1
  store i32 %2165, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #10
  br label %2166

2166:                                             ; preds = %2162, %2158
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %183) #10
  br label %2274

2167:                                             ; preds = %2112
  %2168 = landingpad { ptr, i32 }
          cleanup
  %2169 = extractvalue { ptr, i32 } %2168, 0
  store ptr %2169, ptr %5, align 8
  %2170 = extractvalue { ptr, i32 } %2168, 1
  store i32 %2170, ptr %6, align 4
  br label %2175

2171:                                             ; preds = %2114
  %2172 = landingpad { ptr, i32 }
          cleanup
  %2173 = extractvalue { ptr, i32 } %2172, 0
  store ptr %2173, ptr %5, align 8
  %2174 = extractvalue { ptr, i32 } %2172, 1
  store i32 %2174, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #10
  br label %2175

2175:                                             ; preds = %2171, %2167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #10
  br label %2274

2176:                                             ; preds = %2115
  %2177 = landingpad { ptr, i32 }
          cleanup
  %2178 = extractvalue { ptr, i32 } %2177, 0
  store ptr %2178, ptr %5, align 8
  %2179 = extractvalue { ptr, i32 } %2177, 1
  store i32 %2179, ptr %6, align 4
  br label %2184

2180:                                             ; preds = %2116
  %2181 = landingpad { ptr, i32 }
          cleanup
  %2182 = extractvalue { ptr, i32 } %2181, 0
  store ptr %2182, ptr %5, align 8
  %2183 = extractvalue { ptr, i32 } %2181, 1
  store i32 %2183, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #10
  br label %2184

2184:                                             ; preds = %2180, %2176
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #10
  br label %2274

2185:                                             ; preds = %2124
  %2186 = landingpad { ptr, i32 }
          cleanup
  %2187 = extractvalue { ptr, i32 } %2186, 0
  store ptr %2187, ptr %5, align 8
  %2188 = extractvalue { ptr, i32 } %2186, 1
  store i32 %2188, ptr %6, align 4
  br label %2264

2189:                                             ; preds = %2128
  call void @llvm.lifetime.start.p0(i64 112, ptr %192) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %193) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %194) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %194)
          to label %2190 unwind label %2211

2190:                                             ; preds = %2189
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %2191 = load i32, ptr %191, align 4, !tbaa !39
  store i32 %2191, ptr %195, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 4 dereferenceable(4) %195)
          to label %2192 unwind label %2215

2192:                                             ; preds = %2190
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %2193 unwind label %2220

2193:                                             ; preds = %2192
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  store i32 100, ptr %198, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %192, ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 4 dereferenceable(4) %198)
          to label %2194 unwind label %2224

2194:                                             ; preds = %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %199) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %200) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %2195 unwind label %2229

2195:                                             ; preds = %2194
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %199, ptr noundef nonnull align 8 dereferenceable(32) %200)
          to label %2196 unwind label %2233

2196:                                             ; preds = %2195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %203) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %203)
          to label %2197 unwind label %2238

2197:                                             ; preds = %2196
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA15_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %199, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull align 1 dereferenceable(15) @.str.289)
          to label %2198 unwind label %2242

2198:                                             ; preds = %2197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %205) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %2199 unwind label %2247

2199:                                             ; preds = %2198
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #10
  %2200 = load i32, ptr %191, align 4, !tbaa !39
  store i32 %2200, ptr %206, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %199, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 4 dereferenceable(4) %206)
          to label %2201 unwind label %2251

2201:                                             ; preds = %2199
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %192, ptr noundef nonnull align 8 dereferenceable(112) %199)
          to label %2202 unwind label %2256

2202:                                             ; preds = %2201
  %2203 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %2204 = load i8, ptr %2203, align 8, !tbaa !9, !range !37, !noundef !38
  %2205 = trunc i8 %2204 to i1
  %2206 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %192, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %2205, i32 noundef %2206)
          to label %2207 unwind label %2256

2207:                                             ; preds = %2202
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %199) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %199) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %192) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %192) #10
  br label %2208

2208:                                             ; preds = %2207
  %2209 = load i32, ptr %191, align 4, !tbaa !39
  %2210 = add i32 %2209, 1
  store i32 %2210, ptr %191, align 4, !tbaa !39
  br label %2124, !llvm.loop !95

2211:                                             ; preds = %2189
  %2212 = landingpad { ptr, i32 }
          cleanup
  %2213 = extractvalue { ptr, i32 } %2212, 0
  store ptr %2213, ptr %5, align 8
  %2214 = extractvalue { ptr, i32 } %2212, 1
  store i32 %2214, ptr %6, align 4
  br label %2219

2215:                                             ; preds = %2190
  %2216 = landingpad { ptr, i32 }
          cleanup
  %2217 = extractvalue { ptr, i32 } %2216, 0
  store ptr %2217, ptr %5, align 8
  %2218 = extractvalue { ptr, i32 } %2216, 1
  store i32 %2218, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #10
  br label %2219

2219:                                             ; preds = %2215, %2211
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #10
  br label %2263

2220:                                             ; preds = %2192
  %2221 = landingpad { ptr, i32 }
          cleanup
  %2222 = extractvalue { ptr, i32 } %2221, 0
  store ptr %2222, ptr %5, align 8
  %2223 = extractvalue { ptr, i32 } %2221, 1
  store i32 %2223, ptr %6, align 4
  br label %2228

2224:                                             ; preds = %2193
  %2225 = landingpad { ptr, i32 }
          cleanup
  %2226 = extractvalue { ptr, i32 } %2225, 0
  store ptr %2226, ptr %5, align 8
  %2227 = extractvalue { ptr, i32 } %2225, 1
  store i32 %2227, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #10
  br label %2228

2228:                                             ; preds = %2224, %2220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #10
  br label %2262

2229:                                             ; preds = %2194
  %2230 = landingpad { ptr, i32 }
          cleanup
  %2231 = extractvalue { ptr, i32 } %2230, 0
  store ptr %2231, ptr %5, align 8
  %2232 = extractvalue { ptr, i32 } %2230, 1
  store i32 %2232, ptr %6, align 4
  br label %2237

2233:                                             ; preds = %2195
  %2234 = landingpad { ptr, i32 }
          cleanup
  %2235 = extractvalue { ptr, i32 } %2234, 0
  store ptr %2235, ptr %5, align 8
  %2236 = extractvalue { ptr, i32 } %2234, 1
  store i32 %2236, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #10
  br label %2237

2237:                                             ; preds = %2233, %2229
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #10
  br label %2261

2238:                                             ; preds = %2196
  %2239 = landingpad { ptr, i32 }
          cleanup
  %2240 = extractvalue { ptr, i32 } %2239, 0
  store ptr %2240, ptr %5, align 8
  %2241 = extractvalue { ptr, i32 } %2239, 1
  store i32 %2241, ptr %6, align 4
  br label %2246

2242:                                             ; preds = %2197
  %2243 = landingpad { ptr, i32 }
          cleanup
  %2244 = extractvalue { ptr, i32 } %2243, 0
  store ptr %2244, ptr %5, align 8
  %2245 = extractvalue { ptr, i32 } %2243, 1
  store i32 %2245, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #10
  br label %2246

2246:                                             ; preds = %2242, %2238
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %203) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #10
  br label %2260

2247:                                             ; preds = %2198
  %2248 = landingpad { ptr, i32 }
          cleanup
  %2249 = extractvalue { ptr, i32 } %2248, 0
  store ptr %2249, ptr %5, align 8
  %2250 = extractvalue { ptr, i32 } %2248, 1
  store i32 %2250, ptr %6, align 4
  br label %2255

2251:                                             ; preds = %2199
  %2252 = landingpad { ptr, i32 }
          cleanup
  %2253 = extractvalue { ptr, i32 } %2252, 0
  store ptr %2253, ptr %5, align 8
  %2254 = extractvalue { ptr, i32 } %2252, 1
  store i32 %2254, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #10
  br label %2255

2255:                                             ; preds = %2251, %2247
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #10
  br label %2260

2256:                                             ; preds = %2202, %2201
  %2257 = landingpad { ptr, i32 }
          cleanup
  %2258 = extractvalue { ptr, i32 } %2257, 0
  store ptr %2258, ptr %5, align 8
  %2259 = extractvalue { ptr, i32 } %2257, 1
  store i32 %2259, ptr %6, align 4
  br label %2260

2260:                                             ; preds = %2256, %2255, %2246
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %199) #10
  br label %2261

2261:                                             ; preds = %2260, %2237
  call void @llvm.lifetime.end.p0(i64 112, ptr %199) #10
  br label %2262

2262:                                             ; preds = %2261, %2228
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %192) #10
  br label %2263

2263:                                             ; preds = %2262, %2219
  call void @llvm.lifetime.end.p0(i64 112, ptr %192) #10
  br label %2264

2264:                                             ; preds = %2263, %2185
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %2274

2265:                                             ; preds = %2130
  store i32 1, ptr %12, align 4, !tbaa !39
  %2266 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %2267 = load i8, ptr %2266, align 8, !tbaa !9, !range !37, !noundef !38
  %2268 = trunc i8 %2267 to i1
  %2269 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %19, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %2268, i32 noundef %2269, i1 noundef zeroext true)
          to label %2270 unwind label %2052

2270:                                             ; preds = %2265
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %158) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %158) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %151) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %151) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %145) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %132) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %132) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #10
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %19) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %2271

2271:                                             ; preds = %2270
  %2272 = load i64, ptr %16, align 8, !tbaa !43
  %2273 = add i64 %2272, 1
  store i64 %2273, ptr %16, align 8, !tbaa !43
  br label %789, !llvm.loop !96

2274:                                             ; preds = %2264, %2184, %2175, %2166, %2157, %2148, %2139, %2101, %2052, %2051, %2042
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %158) #10
  br label %2275

2275:                                             ; preds = %2274, %2033
  call void @llvm.lifetime.end.p0(i64 112, ptr %158) #10
  br label %2276

2276:                                             ; preds = %2275, %2024
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %151) #10
  br label %2277

2277:                                             ; preds = %2276, %2015
  call void @llvm.lifetime.end.p0(i64 112, ptr %151) #10
  br label %2278

2278:                                             ; preds = %2277, %2003, %2002
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %145) #10
  br label %2279

2279:                                             ; preds = %2278, %1990
  call void @llvm.lifetime.end.p0(i64 24, ptr %145) #10
  br label %2280

2280:                                             ; preds = %2279, %1989, %1980, %1971, %1962
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %132) #10
  br label %2281

2281:                                             ; preds = %2280, %1953
  call void @llvm.lifetime.end.p0(i64 112, ptr %132) #10
  br label %2282

2282:                                             ; preds = %2281, %1900, %1569, %1337, %1196, %1195, %1186, %1103
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #10
  br label %2283

2283:                                             ; preds = %2282, %1047, %1021, %983, %959
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %26) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #10
  br label %2284

2284:                                             ; preds = %2283, %893, %881
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %19) #10
  br label %2285

2285:                                             ; preds = %2284, %880
  call void @llvm.lifetime.end.p0(i64 112, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %6487

2286:                                             ; preds = %797
  %2287 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 6
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %2287) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %207) #10
  store i64 0, ptr %207, align 8, !tbaa !43
  br label %2288

2288:                                             ; preds = %2877, %2286
  %2289 = load i64, ptr %207, align 8, !tbaa !43
  %2290 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %2291 = load ptr, ptr %2290, align 8, !tbaa !44
  %2292 = getelementptr inbounds %struct.aiScene, ptr %2291, i32 0, i32 4
  %2293 = load i32, ptr %2292, align 8, !tbaa !97
  %2294 = zext i32 %2293 to i64
  %2295 = icmp ult i64 %2289, %2294
  br i1 %2295, label %2297, label %2296

2296:                                             ; preds = %2288
  store i32 50, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #10
  br label %2886

2297:                                             ; preds = %2288
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #10
  %2298 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %2299 = load ptr, ptr %2298, align 8, !tbaa !44
  %2300 = getelementptr inbounds %struct.aiScene, ptr %2299, i32 0, i32 5
  %2301 = load ptr, ptr %2300, align 8, !tbaa !98
  %2302 = load i64, ptr %207, align 8, !tbaa !43
  %2303 = getelementptr inbounds ptr, ptr %2301, i64 %2302
  %2304 = load ptr, ptr %2303, align 8, !tbaa !5
  store ptr %2304, ptr %208, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %210) #10
  call void @_ZN9aiColor3DC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %210) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %211) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %212) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %213) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef @.str.192, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %2305 unwind label %2334

2305:                                             ; preds = %2297
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %212)
          to label %2306 unwind label %2338

2306:                                             ; preds = %2305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #10
  %2307 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %2308 unwind label %2343

2308:                                             ; preds = %2306
  store i64 %2307, ptr %214, align 8, !tbaa !43
  %2309 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 6
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %2309, ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %2310 unwind label %2343

2310:                                             ; preds = %2308
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(8) %214)
          to label %2311 unwind label %2343

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 1028, ptr %215) #10
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %215) #10
  %2312 = load ptr, ptr %208, align 8, !tbaa !5
  %2313 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR8aiString(ptr noundef nonnull align 8 dereferenceable(16) %2312, ptr noundef @.str.300, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(1028) %215)
          to label %2314 unwind label %2347

2314:                                             ; preds = %2311
  call void @llvm.lifetime.start.p0(i64 32, ptr %216) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #10
  %2315 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %215)
          to label %2316 unwind label %2351

2316:                                             ; preds = %2314
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %217, ptr noundef %2315, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2317 unwind label %2351

2317:                                             ; preds = %2316
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %216, ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef @.str.192)
          to label %2318 unwind label %2355

2318:                                             ; preds = %2317
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %216)
          to label %2319 unwind label %2359

2319:                                             ; preds = %2318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #10
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA1_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %2320 unwind label %2347

2320:                                             ; preds = %2319
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %219)
          to label %2321 unwind label %2365

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  store i32 102, ptr %220, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 4 dereferenceable(4) %220)
          to label %2322 unwind label %2369

2322:                                             ; preds = %2321
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #10
  store float 0.000000e+00, ptr %209, align 4, !tbaa !57
  %2323 = load ptr, ptr %208, align 8, !tbaa !5
  %2324 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2323, ptr noundef @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2325 unwind label %2347

2325:                                             ; preds = %2322
  call void @llvm.lifetime.start.p0(i64 1, ptr %221) #10
  %2326 = load float, ptr %209, align 4, !tbaa !57
  %2327 = fcmp ogt float %2326, 0.000000e+00
  %2328 = zext i1 %2327 to i8
  store i8 %2328, ptr %221, align 1, !tbaa !42
  %2329 = load i8, ptr %221, align 1, !tbaa !42, !range !37, !noundef !38
  %2330 = trunc i8 %2329 to i1
  br i1 %2330, label %2331, label %2383

2331:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 32, ptr %222) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef @.str.195, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %2332 unwind label %2374

2332:                                             ; preds = %2331
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA6_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 1 dereferenceable(6) @.str.301)
          to label %2333 unwind label %2378

2333:                                             ; preds = %2332
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #10
  br label %2395

2334:                                             ; preds = %2297
  %2335 = landingpad { ptr, i32 }
          cleanup
  %2336 = extractvalue { ptr, i32 } %2335, 0
  store ptr %2336, ptr %5, align 8
  %2337 = extractvalue { ptr, i32 } %2335, 1
  store i32 %2337, ptr %6, align 4
  br label %2342

2338:                                             ; preds = %2305
  %2339 = landingpad { ptr, i32 }
          cleanup
  %2340 = extractvalue { ptr, i32 } %2339, 0
  store ptr %2340, ptr %5, align 8
  %2341 = extractvalue { ptr, i32 } %2339, 1
  store i32 %2341, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #10
  br label %2342

2342:                                             ; preds = %2338, %2334
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %212) #10
  br label %2885

2343:                                             ; preds = %2310, %2308, %2306
  %2344 = landingpad { ptr, i32 }
          cleanup
  %2345 = extractvalue { ptr, i32 } %2344, 0
  store ptr %2345, ptr %5, align 8
  %2346 = extractvalue { ptr, i32 } %2344, 1
  store i32 %2346, ptr %6, align 4
  br label %2884

2347:                                             ; preds = %2322, %2319, %2311
  %2348 = landingpad { ptr, i32 }
          cleanup
  %2349 = extractvalue { ptr, i32 } %2348, 0
  store ptr %2349, ptr %5, align 8
  %2350 = extractvalue { ptr, i32 } %2348, 1
  store i32 %2350, ptr %6, align 4
  br label %2883

2351:                                             ; preds = %2316, %2314
  %2352 = landingpad { ptr, i32 }
          cleanup
  %2353 = extractvalue { ptr, i32 } %2352, 0
  store ptr %2353, ptr %5, align 8
  %2354 = extractvalue { ptr, i32 } %2352, 1
  store i32 %2354, ptr %6, align 4
  br label %2364

2355:                                             ; preds = %2317
  %2356 = landingpad { ptr, i32 }
          cleanup
  %2357 = extractvalue { ptr, i32 } %2356, 0
  store ptr %2357, ptr %5, align 8
  %2358 = extractvalue { ptr, i32 } %2356, 1
  store i32 %2358, ptr %6, align 4
  br label %2363

2359:                                             ; preds = %2318
  %2360 = landingpad { ptr, i32 }
          cleanup
  %2361 = extractvalue { ptr, i32 } %2360, 0
  store ptr %2361, ptr %5, align 8
  %2362 = extractvalue { ptr, i32 } %2360, 1
  store i32 %2362, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #10
  br label %2363

2363:                                             ; preds = %2359, %2355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #10
  br label %2364

2364:                                             ; preds = %2363, %2351
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %216) #10
  br label %2883

2365:                                             ; preds = %2320
  %2366 = landingpad { ptr, i32 }
          cleanup
  %2367 = extractvalue { ptr, i32 } %2366, 0
  store ptr %2367, ptr %5, align 8
  %2368 = extractvalue { ptr, i32 } %2366, 1
  store i32 %2368, ptr %6, align 4
  br label %2373

2369:                                             ; preds = %2321
  %2370 = landingpad { ptr, i32 }
          cleanup
  %2371 = extractvalue { ptr, i32 } %2370, 0
  store ptr %2371, ptr %5, align 8
  %2372 = extractvalue { ptr, i32 } %2370, 1
  store i32 %2372, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #10
  br label %2373

2373:                                             ; preds = %2369, %2365
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #10
  br label %2883

2374:                                             ; preds = %2331
  %2375 = landingpad { ptr, i32 }
          cleanup
  %2376 = extractvalue { ptr, i32 } %2375, 0
  store ptr %2376, ptr %5, align 8
  %2377 = extractvalue { ptr, i32 } %2375, 1
  store i32 %2377, ptr %6, align 4
  br label %2382

2378:                                             ; preds = %2332
  %2379 = landingpad { ptr, i32 }
          cleanup
  %2380 = extractvalue { ptr, i32 } %2379, 0
  store ptr %2380, ptr %5, align 8
  %2381 = extractvalue { ptr, i32 } %2379, 1
  store i32 %2381, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #10
  br label %2382

2382:                                             ; preds = %2378, %2374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %222) #10
  br label %2882

2383:                                             ; preds = %2325
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %225) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef @.str.195, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %2384 unwind label %2386

2384:                                             ; preds = %2383
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA8_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull align 1 dereferenceable(8) @.str.302)
          to label %2385 unwind label %2390

2385:                                             ; preds = %2384
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #10
  br label %2395

2386:                                             ; preds = %2383
  %2387 = landingpad { ptr, i32 }
          cleanup
  %2388 = extractvalue { ptr, i32 } %2387, 0
  store ptr %2388, ptr %5, align 8
  %2389 = extractvalue { ptr, i32 } %2387, 1
  store i32 %2389, ptr %6, align 4
  br label %2394

2390:                                             ; preds = %2384
  %2391 = landingpad { ptr, i32 }
          cleanup
  %2392 = extractvalue { ptr, i32 } %2391, 0
  store ptr %2392, ptr %5, align 8
  %2393 = extractvalue { ptr, i32 } %2391, 1
  store i32 %2393, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #10
  br label %2394

2394:                                             ; preds = %2390, %2386
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #10
  br label %2882

2395:                                             ; preds = %2385, %2333
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %227) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef @.str.198, ptr noundef nonnull align 1 dereferenceable(1) %227)
          to label %2396 unwind label %2416

2396:                                             ; preds = %2395
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  store i32 0, ptr %228, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %2397 unwind label %2420

2397:                                             ; preds = %2396
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %229) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %230) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %231) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %2398 unwind label %2425

2398:                                             ; preds = %2397
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %2399 unwind label %2429

2399:                                             ; preds = %2398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #10
  %2400 = load ptr, ptr %208, align 8, !tbaa !5
  %2401 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2400, ptr noundef @.str.303, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2402 unwind label %2434

2402:                                             ; preds = %2399
  %2403 = icmp eq i32 %2401, 0
  br i1 %2403, label %2404, label %2447

2404:                                             ; preds = %2402
  call void @llvm.lifetime.start.p0(i64 32, ptr %232) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %233) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %233)
          to label %2405 unwind label %2438

2405:                                             ; preds = %2404
  %2406 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2407 = load float, ptr %2406, align 4, !tbaa !99
  %2408 = fpext float %2407 to double
  %2409 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2410 = load float, ptr %2409, align 4, !tbaa !101
  %2411 = fpext float %2410 to double
  %2412 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2413 = load float, ptr %2412, align 4, !tbaa !102
  %2414 = fpext float %2413 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %232, double noundef %2408, double noundef %2411, double noundef %2414)
          to label %2415 unwind label %2442

2415:                                             ; preds = %2405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #10
  br label %2447

2416:                                             ; preds = %2395
  %2417 = landingpad { ptr, i32 }
          cleanup
  %2418 = extractvalue { ptr, i32 } %2417, 0
  store ptr %2418, ptr %5, align 8
  %2419 = extractvalue { ptr, i32 } %2417, 1
  store i32 %2419, ptr %6, align 4
  br label %2424

2420:                                             ; preds = %2396
  %2421 = landingpad { ptr, i32 }
          cleanup
  %2422 = extractvalue { ptr, i32 } %2421, 0
  store ptr %2422, ptr %5, align 8
  %2423 = extractvalue { ptr, i32 } %2421, 1
  store i32 %2423, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #10
  br label %2424

2424:                                             ; preds = %2420, %2416
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %227) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #10
  br label %2882

2425:                                             ; preds = %2397
  %2426 = landingpad { ptr, i32 }
          cleanup
  %2427 = extractvalue { ptr, i32 } %2426, 0
  store ptr %2427, ptr %5, align 8
  %2428 = extractvalue { ptr, i32 } %2426, 1
  store i32 %2428, ptr %6, align 4
  br label %2433

2429:                                             ; preds = %2398
  %2430 = landingpad { ptr, i32 }
          cleanup
  %2431 = extractvalue { ptr, i32 } %2430, 0
  store ptr %2431, ptr %5, align 8
  %2432 = extractvalue { ptr, i32 } %2430, 1
  store i32 %2432, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #10
  br label %2433

2433:                                             ; preds = %2429, %2425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %231) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %230) #10
  br label %2881

2434:                                             ; preds = %2871, %2870, %2810, %2807, %2800, %2780, %2774, %2764, %2721, %2704, %2687, %2670, %2650, %2631, %2612, %2586, %2564, %2538, %2517, %2473, %2447, %2399
  %2435 = landingpad { ptr, i32 }
          cleanup
  %2436 = extractvalue { ptr, i32 } %2435, 0
  store ptr %2436, ptr %5, align 8
  %2437 = extractvalue { ptr, i32 } %2435, 1
  store i32 %2437, ptr %6, align 4
  br label %2880

2438:                                             ; preds = %2404
  %2439 = landingpad { ptr, i32 }
          cleanup
  %2440 = extractvalue { ptr, i32 } %2439, 0
  store ptr %2440, ptr %5, align 8
  %2441 = extractvalue { ptr, i32 } %2439, 1
  store i32 %2441, ptr %6, align 4
  br label %2446

2442:                                             ; preds = %2405
  %2443 = landingpad { ptr, i32 }
          cleanup
  %2444 = extractvalue { ptr, i32 } %2443, 0
  store ptr %2444, ptr %5, align 8
  %2445 = extractvalue { ptr, i32 } %2443, 1
  store i32 %2445, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #10
  br label %2446

2446:                                             ; preds = %2442, %2438
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %233) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #10
  br label %2880

2447:                                             ; preds = %2415, %2402
  %2448 = load ptr, ptr %208, align 8, !tbaa !5
  %2449 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2448, ptr noundef @.str.304, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2450 unwind label %2434

2450:                                             ; preds = %2447
  %2451 = icmp eq i32 %2449, 0
  br i1 %2451, label %2452, label %2473

2452:                                             ; preds = %2450
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @.str.202, ptr noundef nonnull align 1 dereferenceable(1) %235)
          to label %2453 unwind label %2464

2453:                                             ; preds = %2452
  %2454 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2455 = load float, ptr %2454, align 4, !tbaa !99
  %2456 = fpext float %2455 to double
  %2457 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2458 = load float, ptr %2457, align 4, !tbaa !101
  %2459 = fpext float %2458 to double
  %2460 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2461 = load float, ptr %2460, align 4, !tbaa !102
  %2462 = fpext float %2461 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %234, double noundef %2456, double noundef %2459, double noundef %2462)
          to label %2463 unwind label %2468

2463:                                             ; preds = %2453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #10
  br label %2473

2464:                                             ; preds = %2452
  %2465 = landingpad { ptr, i32 }
          cleanup
  %2466 = extractvalue { ptr, i32 } %2465, 0
  store ptr %2466, ptr %5, align 8
  %2467 = extractvalue { ptr, i32 } %2465, 1
  store i32 %2467, ptr %6, align 4
  br label %2472

2468:                                             ; preds = %2453
  %2469 = landingpad { ptr, i32 }
          cleanup
  %2470 = extractvalue { ptr, i32 } %2469, 0
  store ptr %2470, ptr %5, align 8
  %2471 = extractvalue { ptr, i32 } %2469, 1
  store i32 %2471, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #10
  br label %2472

2472:                                             ; preds = %2468, %2464
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #10
  br label %2880

2473:                                             ; preds = %2463, %2450
  %2474 = load ptr, ptr %208, align 8, !tbaa !5
  %2475 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2474, ptr noundef @.str.305, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2476 unwind label %2434

2476:                                             ; preds = %2473
  %2477 = icmp eq i32 %2475, 0
  br i1 %2477, label %2478, label %2514

2478:                                             ; preds = %2476
  call void @llvm.lifetime.start.p0(i64 32, ptr %236) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %237) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef @.str.207, ptr noundef nonnull align 1 dereferenceable(1) %237)
          to label %2479 unwind label %2495

2479:                                             ; preds = %2478
  %2480 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2481 = load float, ptr %2480, align 4, !tbaa !99
  %2482 = fpext float %2481 to double
  %2483 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2484 = load float, ptr %2483, align 4, !tbaa !101
  %2485 = fpext float %2484 to double
  %2486 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2487 = load float, ptr %2486, align 4, !tbaa !102
  %2488 = fpext float %2487 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %236, double noundef %2482, double noundef %2485, double noundef %2488)
          to label %2489 unwind label %2499

2489:                                             ; preds = %2479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %237) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #10
  %2490 = load i8, ptr %15, align 1, !tbaa !42, !range !37, !noundef !38
  %2491 = trunc i8 %2490 to i1
  br i1 %2491, label %2513, label %2492

2492:                                             ; preds = %2489
  call void @llvm.lifetime.start.p0(i64 32, ptr %238) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef @.str.208, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %2493 unwind label %2504

2493:                                             ; preds = %2492
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %238, double noundef 1.000000e+00)
          to label %2494 unwind label %2508

2494:                                             ; preds = %2493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #10
  br label %2513

2495:                                             ; preds = %2478
  %2496 = landingpad { ptr, i32 }
          cleanup
  %2497 = extractvalue { ptr, i32 } %2496, 0
  store ptr %2497, ptr %5, align 8
  %2498 = extractvalue { ptr, i32 } %2496, 1
  store i32 %2498, ptr %6, align 4
  br label %2503

2499:                                             ; preds = %2479
  %2500 = landingpad { ptr, i32 }
          cleanup
  %2501 = extractvalue { ptr, i32 } %2500, 0
  store ptr %2501, ptr %5, align 8
  %2502 = extractvalue { ptr, i32 } %2500, 1
  store i32 %2502, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #10
  br label %2503

2503:                                             ; preds = %2499, %2495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %237) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %237) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #10
  br label %2880

2504:                                             ; preds = %2492
  %2505 = landingpad { ptr, i32 }
          cleanup
  %2506 = extractvalue { ptr, i32 } %2505, 0
  store ptr %2506, ptr %5, align 8
  %2507 = extractvalue { ptr, i32 } %2505, 1
  store i32 %2507, ptr %6, align 4
  br label %2512

2508:                                             ; preds = %2493
  %2509 = landingpad { ptr, i32 }
          cleanup
  %2510 = extractvalue { ptr, i32 } %2509, 0
  store ptr %2510, ptr %5, align 8
  %2511 = extractvalue { ptr, i32 } %2509, 1
  store i32 %2511, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #10
  br label %2512

2512:                                             ; preds = %2508, %2504
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #10
  br label %2880

2513:                                             ; preds = %2494, %2489
  br label %2514

2514:                                             ; preds = %2513, %2476
  %2515 = load i8, ptr %15, align 1, !tbaa !42, !range !37, !noundef !38
  %2516 = trunc i8 %2515 to i1
  br i1 %2516, label %2517, label %2538

2517:                                             ; preds = %2514
  %2518 = load ptr, ptr %208, align 8, !tbaa !5
  %2519 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2518, ptr noundef @.str.306, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2520 unwind label %2434

2520:                                             ; preds = %2517
  %2521 = icmp eq i32 %2519, 0
  br i1 %2521, label %2522, label %2537

2522:                                             ; preds = %2520
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef @.str.208, ptr noundef nonnull align 1 dereferenceable(1) %241)
          to label %2523 unwind label %2528

2523:                                             ; preds = %2522
  %2524 = load float, ptr %209, align 4, !tbaa !57
  %2525 = fpext float %2524 to double
  %2526 = fsub double 1.000000e+00, %2525
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %240, double noundef %2526)
          to label %2527 unwind label %2532

2527:                                             ; preds = %2523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #10
  br label %2537

2528:                                             ; preds = %2522
  %2529 = landingpad { ptr, i32 }
          cleanup
  %2530 = extractvalue { ptr, i32 } %2529, 0
  store ptr %2530, ptr %5, align 8
  %2531 = extractvalue { ptr, i32 } %2529, 1
  store i32 %2531, ptr %6, align 4
  br label %2536

2532:                                             ; preds = %2523
  %2533 = landingpad { ptr, i32 }
          cleanup
  %2534 = extractvalue { ptr, i32 } %2533, 0
  store ptr %2534, ptr %5, align 8
  %2535 = extractvalue { ptr, i32 } %2533, 1
  store i32 %2535, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #10
  br label %2536

2536:                                             ; preds = %2532, %2528
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #10
  br label %2880

2537:                                             ; preds = %2527, %2520
  br label %2538

2538:                                             ; preds = %2537, %2514
  %2539 = load ptr, ptr %208, align 8, !tbaa !5
  %2540 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2539, ptr noundef @.str.307, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2541 unwind label %2434

2541:                                             ; preds = %2538
  %2542 = icmp eq i32 %2540, 0
  br i1 %2542, label %2543, label %2564

2543:                                             ; preds = %2541
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef @.str.216, ptr noundef nonnull align 1 dereferenceable(1) %243)
          to label %2544 unwind label %2555

2544:                                             ; preds = %2543
  %2545 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2546 = load float, ptr %2545, align 4, !tbaa !99
  %2547 = fpext float %2546 to double
  %2548 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2549 = load float, ptr %2548, align 4, !tbaa !101
  %2550 = fpext float %2549 to double
  %2551 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2552 = load float, ptr %2551, align 4, !tbaa !102
  %2553 = fpext float %2552 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %242, double noundef %2547, double noundef %2550, double noundef %2553)
          to label %2554 unwind label %2559

2554:                                             ; preds = %2544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #10
  br label %2564

2555:                                             ; preds = %2543
  %2556 = landingpad { ptr, i32 }
          cleanup
  %2557 = extractvalue { ptr, i32 } %2556, 0
  store ptr %2557, ptr %5, align 8
  %2558 = extractvalue { ptr, i32 } %2556, 1
  store i32 %2558, ptr %6, align 4
  br label %2563

2559:                                             ; preds = %2544
  %2560 = landingpad { ptr, i32 }
          cleanup
  %2561 = extractvalue { ptr, i32 } %2560, 0
  store ptr %2561, ptr %5, align 8
  %2562 = extractvalue { ptr, i32 } %2560, 1
  store i32 %2562, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #10
  br label %2563

2563:                                             ; preds = %2559, %2555
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #10
  br label %2880

2564:                                             ; preds = %2554, %2541
  %2565 = load ptr, ptr %208, align 8, !tbaa !5
  %2566 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2565, ptr noundef @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2567 unwind label %2434

2567:                                             ; preds = %2564
  %2568 = icmp eq i32 %2566, 0
  br i1 %2568, label %2569, label %2583

2569:                                             ; preds = %2567
  call void @llvm.lifetime.start.p0(i64 32, ptr %244) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %245) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef @.str.217, ptr noundef nonnull align 1 dereferenceable(1) %245)
          to label %2570 unwind label %2574

2570:                                             ; preds = %2569
  %2571 = load float, ptr %209, align 4, !tbaa !57
  %2572 = fpext float %2571 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %244, double noundef %2572)
          to label %2573 unwind label %2578

2573:                                             ; preds = %2570
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #10
  br label %2583

2574:                                             ; preds = %2569
  %2575 = landingpad { ptr, i32 }
          cleanup
  %2576 = extractvalue { ptr, i32 } %2575, 0
  store ptr %2576, ptr %5, align 8
  %2577 = extractvalue { ptr, i32 } %2575, 1
  store i32 %2577, ptr %6, align 4
  br label %2582

2578:                                             ; preds = %2570
  %2579 = landingpad { ptr, i32 }
          cleanup
  %2580 = extractvalue { ptr, i32 } %2579, 0
  store ptr %2580, ptr %5, align 8
  %2581 = extractvalue { ptr, i32 } %2579, 1
  store i32 %2581, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #10
  br label %2582

2582:                                             ; preds = %2578, %2574
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %245) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %245) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %244) #10
  br label %2880

2583:                                             ; preds = %2573, %2567
  %2584 = load i8, ptr %221, align 1, !tbaa !42, !range !37, !noundef !38
  %2585 = trunc i8 %2584 to i1
  br i1 %2585, label %2586, label %2670

2586:                                             ; preds = %2583
  %2587 = load ptr, ptr %208, align 8, !tbaa !5
  %2588 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2587, ptr noundef @.str.309, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2589 unwind label %2434

2589:                                             ; preds = %2586
  %2590 = icmp eq i32 %2588, 0
  br i1 %2590, label %2591, label %2612

2591:                                             ; preds = %2589
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef @.str.213, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %2592 unwind label %2603

2592:                                             ; preds = %2591
  %2593 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2594 = load float, ptr %2593, align 4, !tbaa !99
  %2595 = fpext float %2594 to double
  %2596 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2597 = load float, ptr %2596, align 4, !tbaa !101
  %2598 = fpext float %2597 to double
  %2599 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2600 = load float, ptr %2599, align 4, !tbaa !102
  %2601 = fpext float %2600 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %246, double noundef %2595, double noundef %2598, double noundef %2601)
          to label %2602 unwind label %2607

2602:                                             ; preds = %2592
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #10
  br label %2612

2603:                                             ; preds = %2591
  %2604 = landingpad { ptr, i32 }
          cleanup
  %2605 = extractvalue { ptr, i32 } %2604, 0
  store ptr %2605, ptr %5, align 8
  %2606 = extractvalue { ptr, i32 } %2604, 1
  store i32 %2606, ptr %6, align 4
  br label %2611

2607:                                             ; preds = %2592
  %2608 = landingpad { ptr, i32 }
          cleanup
  %2609 = extractvalue { ptr, i32 } %2608, 0
  store ptr %2609, ptr %5, align 8
  %2610 = extractvalue { ptr, i32 } %2608, 1
  store i32 %2610, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #10
  br label %2611

2611:                                             ; preds = %2607, %2603
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #10
  br label %2880

2612:                                             ; preds = %2602, %2589
  %2613 = load ptr, ptr %208, align 8, !tbaa !5
  %2614 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2613, ptr noundef @.str.310, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2615 unwind label %2434

2615:                                             ; preds = %2612
  %2616 = icmp eq i32 %2614, 0
  br i1 %2616, label %2617, label %2631

2617:                                             ; preds = %2615
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %249) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef @.str.311, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %2618 unwind label %2622

2618:                                             ; preds = %2617
  %2619 = load float, ptr %209, align 4, !tbaa !57
  %2620 = fpext float %2619 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %248, double noundef %2620)
          to label %2621 unwind label %2626

2621:                                             ; preds = %2618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %249) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #10
  br label %2631

2622:                                             ; preds = %2617
  %2623 = landingpad { ptr, i32 }
          cleanup
  %2624 = extractvalue { ptr, i32 } %2623, 0
  store ptr %2624, ptr %5, align 8
  %2625 = extractvalue { ptr, i32 } %2623, 1
  store i32 %2625, ptr %6, align 4
  br label %2630

2626:                                             ; preds = %2618
  %2627 = landingpad { ptr, i32 }
          cleanup
  %2628 = extractvalue { ptr, i32 } %2627, 0
  store ptr %2628, ptr %5, align 8
  %2629 = extractvalue { ptr, i32 } %2627, 1
  store i32 %2629, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #10
  br label %2630

2630:                                             ; preds = %2626, %2622
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %249) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #10
  br label %2880

2631:                                             ; preds = %2621, %2615
  %2632 = load ptr, ptr %208, align 8, !tbaa !5
  %2633 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2632, ptr noundef @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2634 unwind label %2434

2634:                                             ; preds = %2631
  %2635 = icmp eq i32 %2633, 0
  br i1 %2635, label %2636, label %2650

2636:                                             ; preds = %2634
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %251) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef @.str.215, ptr noundef nonnull align 1 dereferenceable(1) %251)
          to label %2637 unwind label %2641

2637:                                             ; preds = %2636
  %2638 = load float, ptr %209, align 4, !tbaa !57
  %2639 = fpext float %2638 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %250, double noundef %2639)
          to label %2640 unwind label %2645

2640:                                             ; preds = %2637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #10
  br label %2650

2641:                                             ; preds = %2636
  %2642 = landingpad { ptr, i32 }
          cleanup
  %2643 = extractvalue { ptr, i32 } %2642, 0
  store ptr %2643, ptr %5, align 8
  %2644 = extractvalue { ptr, i32 } %2642, 1
  store i32 %2644, ptr %6, align 4
  br label %2649

2645:                                             ; preds = %2637
  %2646 = landingpad { ptr, i32 }
          cleanup
  %2647 = extractvalue { ptr, i32 } %2646, 0
  store ptr %2647, ptr %5, align 8
  %2648 = extractvalue { ptr, i32 } %2646, 1
  store i32 %2648, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #10
  br label %2649

2649:                                             ; preds = %2645, %2641
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %251) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %251) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #10
  br label %2880

2650:                                             ; preds = %2640, %2634
  %2651 = load ptr, ptr %208, align 8, !tbaa !5
  %2652 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2651, ptr noundef @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2653 unwind label %2434

2653:                                             ; preds = %2650
  %2654 = icmp eq i32 %2652, 0
  br i1 %2654, label %2655, label %2669

2655:                                             ; preds = %2653
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %253) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef @.str.217, ptr noundef nonnull align 1 dereferenceable(1) %253)
          to label %2656 unwind label %2660

2656:                                             ; preds = %2655
  %2657 = load float, ptr %209, align 4, !tbaa !57
  %2658 = fpext float %2657 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %252, double noundef %2658)
          to label %2659 unwind label %2664

2659:                                             ; preds = %2656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %253) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #10
  br label %2669

2660:                                             ; preds = %2655
  %2661 = landingpad { ptr, i32 }
          cleanup
  %2662 = extractvalue { ptr, i32 } %2661, 0
  store ptr %2662, ptr %5, align 8
  %2663 = extractvalue { ptr, i32 } %2661, 1
  store i32 %2663, ptr %6, align 4
  br label %2668

2664:                                             ; preds = %2656
  %2665 = landingpad { ptr, i32 }
          cleanup
  %2666 = extractvalue { ptr, i32 } %2665, 0
  store ptr %2666, ptr %5, align 8
  %2667 = extractvalue { ptr, i32 } %2665, 1
  store i32 %2667, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #10
  br label %2668

2668:                                             ; preds = %2664, %2660
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %253) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %253) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #10
  br label %2880

2669:                                             ; preds = %2659, %2653
  br label %2670

2670:                                             ; preds = %2669, %2583
  %2671 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  store float 0.000000e+00, ptr %2671, align 4, !tbaa !99
  %2672 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  store float 0.000000e+00, ptr %2672, align 4, !tbaa !101
  %2673 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  store float 0.000000e+00, ptr %2673, align 4, !tbaa !102
  %2674 = load ptr, ptr %208, align 8, !tbaa !5
  %2675 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2674, ptr noundef @.str.312, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2676 unwind label %2434

2676:                                             ; preds = %2670
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %255) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef @.str.313, ptr noundef nonnull align 1 dereferenceable(1) %255)
          to label %2677 unwind label %2737

2677:                                             ; preds = %2676
  %2678 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2679 = load float, ptr %2678, align 4, !tbaa !99
  %2680 = fpext float %2679 to double
  %2681 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2682 = load float, ptr %2681, align 4, !tbaa !101
  %2683 = fpext float %2682 to double
  %2684 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2685 = load float, ptr %2684, align 4, !tbaa !102
  %2686 = fpext float %2685 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %254, double noundef %2680, double noundef %2683, double noundef %2686)
          to label %2687 unwind label %2741

2687:                                             ; preds = %2677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #10
  %2688 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  store float 0x3FC99999A0000000, ptr %2688, align 4, !tbaa !99
  %2689 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  store float 0x3FC99999A0000000, ptr %2689, align 4, !tbaa !101
  %2690 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  store float 0x3FC99999A0000000, ptr %2690, align 4, !tbaa !102
  %2691 = load ptr, ptr %208, align 8, !tbaa !5
  %2692 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2691, ptr noundef @.str.303, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2693 unwind label %2434

2693:                                             ; preds = %2687
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %257) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str.314, ptr noundef nonnull align 1 dereferenceable(1) %257)
          to label %2694 unwind label %2746

2694:                                             ; preds = %2693
  %2695 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2696 = load float, ptr %2695, align 4, !tbaa !99
  %2697 = fpext float %2696 to double
  %2698 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2699 = load float, ptr %2698, align 4, !tbaa !101
  %2700 = fpext float %2699 to double
  %2701 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2702 = load float, ptr %2701, align 4, !tbaa !102
  %2703 = fpext float %2702 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %256, double noundef %2697, double noundef %2700, double noundef %2703)
          to label %2704 unwind label %2750

2704:                                             ; preds = %2694
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #10
  %2705 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  store float 0x3FE99999A0000000, ptr %2705, align 4, !tbaa !99
  %2706 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  store float 0x3FE99999A0000000, ptr %2706, align 4, !tbaa !101
  %2707 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  store float 0x3FE99999A0000000, ptr %2707, align 4, !tbaa !102
  %2708 = load ptr, ptr %208, align 8, !tbaa !5
  %2709 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2708, ptr noundef @.str.304, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2710 unwind label %2434

2710:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 32, ptr %258) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %259) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %259) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %258, ptr noundef @.str.315, ptr noundef nonnull align 1 dereferenceable(1) %259)
          to label %2711 unwind label %2755

2711:                                             ; preds = %2710
  %2712 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2713 = load float, ptr %2712, align 4, !tbaa !99
  %2714 = fpext float %2713 to double
  %2715 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2716 = load float, ptr %2715, align 4, !tbaa !101
  %2717 = fpext float %2716 to double
  %2718 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2719 = load float, ptr %2718, align 4, !tbaa !102
  %2720 = fpext float %2719 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %258, double noundef %2714, double noundef %2717, double noundef %2720)
          to label %2721 unwind label %2759

2721:                                             ; preds = %2711
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %259) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #10
  store float 1.000000e+00, ptr %209, align 4, !tbaa !57
  %2722 = load ptr, ptr %208, align 8, !tbaa !5
  %2723 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2722, ptr noundef @.str.305, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2724 unwind label %2434

2724:                                             ; preds = %2721
  %2725 = icmp eq i32 %2723, 0
  br i1 %2725, label %2726, label %2764

2726:                                             ; preds = %2724
  %2727 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2728 = load float, ptr %2727, align 4, !tbaa !99
  %2729 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2730 = load float, ptr %2729, align 4, !tbaa !101
  %2731 = fadd float %2728, %2730
  %2732 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2733 = load float, ptr %2732, align 4, !tbaa !102
  %2734 = fadd float %2731, %2733
  %2735 = fdiv float %2734, 3.000000e+00
  %2736 = fsub float 1.000000e+00, %2735
  store float %2736, ptr %209, align 4, !tbaa !57
  br label %2764

2737:                                             ; preds = %2676
  %2738 = landingpad { ptr, i32 }
          cleanup
  %2739 = extractvalue { ptr, i32 } %2738, 0
  store ptr %2739, ptr %5, align 8
  %2740 = extractvalue { ptr, i32 } %2738, 1
  store i32 %2740, ptr %6, align 4
  br label %2745

2741:                                             ; preds = %2677
  %2742 = landingpad { ptr, i32 }
          cleanup
  %2743 = extractvalue { ptr, i32 } %2742, 0
  store ptr %2743, ptr %5, align 8
  %2744 = extractvalue { ptr, i32 } %2742, 1
  store i32 %2744, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #10
  br label %2745

2745:                                             ; preds = %2741, %2737
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %255) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %255) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #10
  br label %2880

2746:                                             ; preds = %2693
  %2747 = landingpad { ptr, i32 }
          cleanup
  %2748 = extractvalue { ptr, i32 } %2747, 0
  store ptr %2748, ptr %5, align 8
  %2749 = extractvalue { ptr, i32 } %2747, 1
  store i32 %2749, ptr %6, align 4
  br label %2754

2750:                                             ; preds = %2694
  %2751 = landingpad { ptr, i32 }
          cleanup
  %2752 = extractvalue { ptr, i32 } %2751, 0
  store ptr %2752, ptr %5, align 8
  %2753 = extractvalue { ptr, i32 } %2751, 1
  store i32 %2753, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #10
  br label %2754

2754:                                             ; preds = %2750, %2746
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #10
  br label %2880

2755:                                             ; preds = %2710
  %2756 = landingpad { ptr, i32 }
          cleanup
  %2757 = extractvalue { ptr, i32 } %2756, 0
  store ptr %2757, ptr %5, align 8
  %2758 = extractvalue { ptr, i32 } %2756, 1
  store i32 %2758, ptr %6, align 4
  br label %2763

2759:                                             ; preds = %2711
  %2760 = landingpad { ptr, i32 }
          cleanup
  %2761 = extractvalue { ptr, i32 } %2760, 0
  store ptr %2761, ptr %5, align 8
  %2762 = extractvalue { ptr, i32 } %2760, 1
  store i32 %2762, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #10
  br label %2763

2763:                                             ; preds = %2759, %2755
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %259) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %259) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #10
  br label %2880

2764:                                             ; preds = %2726, %2724
  %2765 = load ptr, ptr %208, align 8, !tbaa !5
  %2766 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2765, ptr noundef @.str.306, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2767 unwind label %2434

2767:                                             ; preds = %2764
  call void @llvm.lifetime.start.p0(i64 32, ptr %260) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %261) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef @.str.316, ptr noundef nonnull align 1 dereferenceable(1) %261)
          to label %2768 unwind label %2834

2768:                                             ; preds = %2767
  %2769 = load float, ptr %209, align 4, !tbaa !57
  %2770 = fpext float %2769 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %260, double noundef %2770)
          to label %2771 unwind label %2838

2771:                                             ; preds = %2768
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %261) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #10
  %2772 = load i8, ptr %221, align 1, !tbaa !42, !range !37, !noundef !38
  %2773 = trunc i8 %2772 to i1
  br i1 %2773, label %2774, label %2870

2774:                                             ; preds = %2771
  %2775 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  store float 0x3FC99999A0000000, ptr %2775, align 4, !tbaa !99
  %2776 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  store float 0x3FC99999A0000000, ptr %2776, align 4, !tbaa !101
  %2777 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  store float 0x3FC99999A0000000, ptr %2777, align 4, !tbaa !102
  %2778 = load ptr, ptr %208, align 8, !tbaa !5
  %2779 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2778, ptr noundef @.str.309, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2780 unwind label %2434

2780:                                             ; preds = %2774
  store float 1.000000e+00, ptr %209, align 4, !tbaa !57
  %2781 = load ptr, ptr %208, align 8, !tbaa !5
  %2782 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2781, ptr noundef @.str.310, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2783 unwind label %2434

2783:                                             ; preds = %2780
  call void @llvm.lifetime.start.p0(i64 32, ptr %262) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %263) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef @.str.317, ptr noundef nonnull align 1 dereferenceable(1) %263)
          to label %2784 unwind label %2843

2784:                                             ; preds = %2783
  %2785 = load float, ptr %209, align 4, !tbaa !57
  %2786 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2787 = load float, ptr %2786, align 4, !tbaa !99
  %2788 = fmul float %2785, %2787
  %2789 = fpext float %2788 to double
  %2790 = load float, ptr %209, align 4, !tbaa !57
  %2791 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2792 = load float, ptr %2791, align 4, !tbaa !101
  %2793 = fmul float %2790, %2792
  %2794 = fpext float %2793 to double
  %2795 = load float, ptr %209, align 4, !tbaa !57
  %2796 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2797 = load float, ptr %2796, align 4, !tbaa !102
  %2798 = fmul float %2795, %2797
  %2799 = fpext float %2798 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %262, double noundef %2789, double noundef %2794, double noundef %2799)
          to label %2800 unwind label %2847

2800:                                             ; preds = %2784
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %262) #10
  store float 2.000000e+01, ptr %209, align 4, !tbaa !57
  %2801 = load ptr, ptr %208, align 8, !tbaa !5
  %2802 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2801, ptr noundef @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2803 unwind label %2434

2803:                                             ; preds = %2800
  call void @llvm.lifetime.start.p0(i64 32, ptr %264) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %265) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef @.str.318, ptr noundef nonnull align 1 dereferenceable(1) %265)
          to label %2804 unwind label %2852

2804:                                             ; preds = %2803
  %2805 = load float, ptr %209, align 4, !tbaa !57
  %2806 = fpext float %2805 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %264, double noundef %2806)
          to label %2807 unwind label %2856

2807:                                             ; preds = %2804
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %265) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %264) #10
  store float 0.000000e+00, ptr %209, align 4, !tbaa !57
  %2808 = load ptr, ptr %208, align 8, !tbaa !5
  %2809 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %2808, ptr noundef @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %209)
          to label %2810 unwind label %2434

2810:                                             ; preds = %2807
  %2811 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  store float 1.000000e+00, ptr %2811, align 4, !tbaa !99
  %2812 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  store float 1.000000e+00, ptr %2812, align 4, !tbaa !101
  %2813 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  store float 1.000000e+00, ptr %2813, align 4, !tbaa !102
  %2814 = load ptr, ptr %208, align 8, !tbaa !5
  %2815 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %2814, ptr noundef @.str.307, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %210)
          to label %2816 unwind label %2434

2816:                                             ; preds = %2810
  call void @llvm.lifetime.start.p0(i64 32, ptr %266) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %267) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef @.str.319, ptr noundef nonnull align 1 dereferenceable(1) %267)
          to label %2817 unwind label %2861

2817:                                             ; preds = %2816
  %2818 = load float, ptr %209, align 4, !tbaa !57
  %2819 = load float, ptr %209, align 4, !tbaa !57
  %2820 = fmul float %2818, %2819
  %2821 = fpext float %2820 to double
  %2822 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 0
  %2823 = load float, ptr %2822, align 4, !tbaa !99
  %2824 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 1
  %2825 = load float, ptr %2824, align 4, !tbaa !101
  %2826 = fadd float %2823, %2825
  %2827 = getelementptr inbounds %struct.aiColor3D, ptr %210, i32 0, i32 2
  %2828 = load float, ptr %2827, align 4, !tbaa !102
  %2829 = fadd float %2826, %2828
  %2830 = fpext float %2829 to double
  %2831 = fdiv double %2830, 3.000000e+00
  %2832 = fmul double %2821, %2831
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %229, ptr noundef nonnull align 8 dereferenceable(32) %266, double noundef %2832)
          to label %2833 unwind label %2865

2833:                                             ; preds = %2817
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #10
  br label %2870

2834:                                             ; preds = %2767
  %2835 = landingpad { ptr, i32 }
          cleanup
  %2836 = extractvalue { ptr, i32 } %2835, 0
  store ptr %2836, ptr %5, align 8
  %2837 = extractvalue { ptr, i32 } %2835, 1
  store i32 %2837, ptr %6, align 4
  br label %2842

2838:                                             ; preds = %2768
  %2839 = landingpad { ptr, i32 }
          cleanup
  %2840 = extractvalue { ptr, i32 } %2839, 0
  store ptr %2840, ptr %5, align 8
  %2841 = extractvalue { ptr, i32 } %2839, 1
  store i32 %2841, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #10
  br label %2842

2842:                                             ; preds = %2838, %2834
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %261) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #10
  br label %2880

2843:                                             ; preds = %2783
  %2844 = landingpad { ptr, i32 }
          cleanup
  %2845 = extractvalue { ptr, i32 } %2844, 0
  store ptr %2845, ptr %5, align 8
  %2846 = extractvalue { ptr, i32 } %2844, 1
  store i32 %2846, ptr %6, align 4
  br label %2851

2847:                                             ; preds = %2784
  %2848 = landingpad { ptr, i32 }
          cleanup
  %2849 = extractvalue { ptr, i32 } %2848, 0
  store ptr %2849, ptr %5, align 8
  %2850 = extractvalue { ptr, i32 } %2848, 1
  store i32 %2850, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #10
  br label %2851

2851:                                             ; preds = %2847, %2843
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %263) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %262) #10
  br label %2880

2852:                                             ; preds = %2803
  %2853 = landingpad { ptr, i32 }
          cleanup
  %2854 = extractvalue { ptr, i32 } %2853, 0
  store ptr %2854, ptr %5, align 8
  %2855 = extractvalue { ptr, i32 } %2853, 1
  store i32 %2855, ptr %6, align 4
  br label %2860

2856:                                             ; preds = %2804
  %2857 = landingpad { ptr, i32 }
          cleanup
  %2858 = extractvalue { ptr, i32 } %2857, 0
  store ptr %2858, ptr %5, align 8
  %2859 = extractvalue { ptr, i32 } %2857, 1
  store i32 %2859, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #10
  br label %2860

2860:                                             ; preds = %2856, %2852
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %265) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %264) #10
  br label %2880

2861:                                             ; preds = %2816
  %2862 = landingpad { ptr, i32 }
          cleanup
  %2863 = extractvalue { ptr, i32 } %2862, 0
  store ptr %2863, ptr %5, align 8
  %2864 = extractvalue { ptr, i32 } %2862, 1
  store i32 %2864, ptr %6, align 4
  br label %2869

2865:                                             ; preds = %2817
  %2866 = landingpad { ptr, i32 }
          cleanup
  %2867 = extractvalue { ptr, i32 } %2866, 0
  store ptr %2867, ptr %5, align 8
  %2868 = extractvalue { ptr, i32 } %2866, 1
  store i32 %2868, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #10
  br label %2869

2869:                                             ; preds = %2865, %2861
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %267) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %267) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #10
  br label %2880

2870:                                             ; preds = %2833, %2771
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(112) %229)
          to label %2871 unwind label %2434

2871:                                             ; preds = %2870
  %2872 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %2873 = load i8, ptr %2872, align 8, !tbaa !9, !range !37, !noundef !38
  %2874 = trunc i8 %2873 to i1
  %2875 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %211, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %2874, i32 noundef %2875)
          to label %2876 unwind label %2434

2876:                                             ; preds = %2871
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %229) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %229) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #10
  call void @llvm.lifetime.end.p0(i64 1028, ptr %215) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %211) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %211) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %210) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #10
  br label %2877

2877:                                             ; preds = %2876
  %2878 = load i64, ptr %207, align 8, !tbaa !43
  %2879 = add i64 %2878, 1
  store i64 %2879, ptr %207, align 8, !tbaa !43
  br label %2288, !llvm.loop !103

2880:                                             ; preds = %2869, %2860, %2851, %2842, %2763, %2754, %2745, %2668, %2649, %2630, %2611, %2582, %2563, %2536, %2512, %2503, %2472, %2446, %2434
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %229) #10
  br label %2881

2881:                                             ; preds = %2880, %2433
  call void @llvm.lifetime.end.p0(i64 112, ptr %229) #10
  br label %2882

2882:                                             ; preds = %2881, %2424, %2394, %2382
  call void @llvm.lifetime.end.p0(i64 1, ptr %221) #10
  br label %2883

2883:                                             ; preds = %2882, %2373, %2364, %2347
  call void @llvm.lifetime.end.p0(i64 1028, ptr %215) #10
  br label %2884

2884:                                             ; preds = %2883, %2343
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %211) #10
  br label %2885

2885:                                             ; preds = %2884, %2342
  call void @llvm.lifetime.end.p0(i64 112, ptr %211) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %210) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %207) #10
  br label %6487

2886:                                             ; preds = %2296
  call void @llvm.lifetime.start.p0(i64 48, ptr %268) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %268) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #10
  store i64 0, ptr %269, align 8, !tbaa !43
  br label %2887

2887:                                             ; preds = %2974, %2886
  %2888 = load i64, ptr %269, align 8, !tbaa !43
  %2889 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %2890 = load ptr, ptr %2889, align 8, !tbaa !44
  %2891 = getelementptr inbounds %struct.aiScene, ptr %2890, i32 0, i32 4
  %2892 = load i32, ptr %2891, align 8, !tbaa !97
  %2893 = zext i32 %2892 to i64
  %2894 = icmp ult i64 %2888, %2893
  br i1 %2894, label %2896, label %2895

2895:                                             ; preds = %2887
  store i32 53, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #10
  br label %2977

2896:                                             ; preds = %2887
  call void @llvm.lifetime.start.p0(i64 1028, ptr %270) #10
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %270) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #10
  %2897 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %2898 = load ptr, ptr %2897, align 8, !tbaa !44
  %2899 = getelementptr inbounds %struct.aiScene, ptr %2898, i32 0, i32 5
  %2900 = load ptr, ptr %2899, align 8, !tbaa !98
  %2901 = load i64, ptr %269, align 8, !tbaa !43
  %2902 = getelementptr inbounds ptr, ptr %2900, i64 %2901
  %2903 = load ptr, ptr %2902, align 8, !tbaa !5
  store ptr %2903, ptr %271, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #10
  store i64 1, ptr %272, align 8, !tbaa !43
  br label %2904

2904:                                             ; preds = %2969, %2896
  %2905 = load i64, ptr %272, align 8, !tbaa !43
  %2906 = icmp ult i64 %2905, 18
  br i1 %2906, label %2908, label %2907

2907:                                             ; preds = %2904
  store i32 56, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #10
  br label %2973

2908:                                             ; preds = %2904
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #10
  %2909 = load i64, ptr %272, align 8, !tbaa !43
  %2910 = trunc i64 %2909 to i32
  store i32 %2910, ptr %273, align 4, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #10
  %2911 = load ptr, ptr %271, align 8, !tbaa !5
  %2912 = load i32, ptr %273, align 4, !tbaa !104
  %2913 = invoke noundef i32 @_ZNK10aiMaterial15GetTextureCountE13aiTextureType(ptr noundef nonnull align 8 dereferenceable(16) %2911, i32 noundef %2912)
          to label %2914 unwind label %2921

2914:                                             ; preds = %2908
  %2915 = zext i32 %2913 to i64
  store i64 %2915, ptr %274, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #10
  store i64 0, ptr %275, align 8, !tbaa !43
  br label %2916

2916:                                             ; preds = %2963, %2914
  %2917 = load i64, ptr %275, align 8, !tbaa !43
  %2918 = load i64, ptr %274, align 8, !tbaa !43
  %2919 = icmp ult i64 %2917, %2918
  br i1 %2919, label %2925, label %2920

2920:                                             ; preds = %2916
  store i32 59, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #10
  br label %2968

2921:                                             ; preds = %2908
  %2922 = landingpad { ptr, i32 }
          cleanup
  %2923 = extractvalue { ptr, i32 } %2922, 0
  store ptr %2923, ptr %5, align 8
  %2924 = extractvalue { ptr, i32 } %2922, 1
  store i32 %2924, ptr %6, align 4
  br label %2972

2925:                                             ; preds = %2916
  %2926 = load ptr, ptr %271, align 8, !tbaa !5
  %2927 = load i32, ptr %273, align 4, !tbaa !104
  %2928 = load i64, ptr %275, align 8, !tbaa !43
  %2929 = trunc i64 %2928 to i32
  %2930 = invoke noundef i32 @_ZNK10aiMaterial10GetTextureE13aiTextureTypejP8aiStringP16aiTextureMappingPjPfP11aiTextureOpP16aiTextureMapMode(ptr noundef nonnull align 8 dereferenceable(16) %2926, i32 noundef %2927, i32 noundef %2929, ptr noundef %270, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2931 unwind label %2946

2931:                                             ; preds = %2925
  call void @llvm.lifetime.start.p0(i64 32, ptr %276) #10
  %2932 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %270)
          to label %2933 unwind label %2950

2933:                                             ; preds = %2931
  call void @llvm.lifetime.start.p0(i64 1, ptr %277) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef %2932, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %2934 unwind label %2954

2934:                                             ; preds = %2933
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %278) #10
  %2935 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %268, ptr noundef nonnull align 8 dereferenceable(32) %276)
          to label %2936 unwind label %2958

2936:                                             ; preds = %2934
  %2937 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %278, i32 0, i32 0
  store ptr %2935, ptr %2937, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #10
  %2938 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %268) #10
  %2939 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %279, i32 0, i32 0
  store ptr %2938, ptr %2939, align 8
  %2940 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef nonnull align 8 dereferenceable(8) %279) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #10
  br i1 %2940, label %2941, label %2962

2941:                                             ; preds = %2936
  %2942 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %2943 unwind label %2958

2943:                                             ; preds = %2941
  %2944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %268, ptr noundef nonnull align 8 dereferenceable(32) %276)
          to label %2945 unwind label %2958

2945:                                             ; preds = %2943
  store i64 %2942, ptr %2944, align 8, !tbaa !43
  br label %2962

2946:                                             ; preds = %2925
  %2947 = landingpad { ptr, i32 }
          cleanup
  %2948 = extractvalue { ptr, i32 } %2947, 0
  store ptr %2948, ptr %5, align 8
  %2949 = extractvalue { ptr, i32 } %2947, 1
  store i32 %2949, ptr %6, align 4
  br label %2967

2950:                                             ; preds = %2931
  %2951 = landingpad { ptr, i32 }
          cleanup
  %2952 = extractvalue { ptr, i32 } %2951, 0
  store ptr %2952, ptr %5, align 8
  %2953 = extractvalue { ptr, i32 } %2951, 1
  store i32 %2953, ptr %6, align 4
  br label %2966

2954:                                             ; preds = %2933
  %2955 = landingpad { ptr, i32 }
          cleanup
  %2956 = extractvalue { ptr, i32 } %2955, 0
  store ptr %2956, ptr %5, align 8
  %2957 = extractvalue { ptr, i32 } %2955, 1
  store i32 %2957, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #10
  br label %2966

2958:                                             ; preds = %2943, %2941, %2934
  %2959 = landingpad { ptr, i32 }
          cleanup
  %2960 = extractvalue { ptr, i32 } %2959, 0
  store ptr %2960, ptr %5, align 8
  %2961 = extractvalue { ptr, i32 } %2959, 1
  store i32 %2961, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #10
  br label %2966

2962:                                             ; preds = %2945, %2936
  call void @llvm.lifetime.end.p0(i64 8, ptr %278) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #10
  br label %2963

2963:                                             ; preds = %2962
  %2964 = load i64, ptr %275, align 8, !tbaa !43
  %2965 = add i64 %2964, 1
  store i64 %2965, ptr %275, align 8, !tbaa !43
  br label %2916, !llvm.loop !106

2966:                                             ; preds = %2958, %2954, %2950
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #10
  br label %2967

2967:                                             ; preds = %2966, %2946
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #10
  br label %2972

2968:                                             ; preds = %2920
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  br label %2969

2969:                                             ; preds = %2968
  %2970 = load i64, ptr %272, align 8, !tbaa !43
  %2971 = add i64 %2970, 1
  store i64 %2971, ptr %272, align 8, !tbaa !43
  br label %2904, !llvm.loop !107

2972:                                             ; preds = %2967, %2921
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #10
  call void @llvm.lifetime.end.p0(i64 1028, ptr %270) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #10
  br label %6486

2973:                                             ; preds = %2907
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #10
  call void @llvm.lifetime.end.p0(i64 1028, ptr %270) #10
  br label %2974

2974:                                             ; preds = %2973
  %2975 = load i64, ptr %269, align 8, !tbaa !43
  %2976 = add i64 %2975, 1
  store i64 %2976, ptr %269, align 8, !tbaa !43
  br label %2887, !llvm.loop !108

2977:                                             ; preds = %2895
  call void @llvm.lifetime.start.p0(i64 8, ptr %280) #10
  store ptr %268, ptr %280, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #10
  %2978 = load ptr, ptr %280, align 8, !tbaa !5
  %2979 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %2978) #10
  %2980 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %281, i32 0, i32 0
  store ptr %2979, ptr %2980, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #10
  %2981 = load ptr, ptr %280, align 8, !tbaa !5
  %2982 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2981) #10
  %2983 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %282, i32 0, i32 0
  store ptr %2982, ptr %2983, align 8
  br label %2984

2984:                                             ; preds = %3220, %2977
  %2985 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull align 8 dereferenceable(8) %282) #10
  br i1 %2985, label %2987, label %2986

2986:                                             ; preds = %2984
  store i32 62, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #10
  br label %3279

2987:                                             ; preds = %2984
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #10
  %2988 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %281) #10
  store ptr %2988, ptr %283, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 112, ptr %284) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %285) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %286) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef @.str.218, ptr noundef nonnull align 1 dereferenceable(1) %286)
          to label %2989 unwind label %3029

2989:                                             ; preds = %2987
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %285)
          to label %2990 unwind label %3033

2990:                                             ; preds = %2989
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %286) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #10
  %2991 = load ptr, ptr %283, align 8, !tbaa !5
  %2992 = getelementptr inbounds %"struct.std::pair.104", ptr %2991, i32 0, i32 1
  store ptr %2992, ptr %287, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %288) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %289) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %288, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %289)
          to label %2993 unwind label %3038

2993:                                             ; preds = %2990
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #10
  %2994 = load ptr, ptr %287, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %290) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %291, ptr noundef nonnull align 8 dereferenceable(32) %288, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2995 unwind label %3042

2995:                                             ; preds = %2993
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %290, ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef @.str.218)
          to label %2996 unwind label %3046

2996:                                             ; preds = %2995
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA5_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(8) %2994, ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull align 1 dereferenceable(5) @.str.320)
          to label %2997 unwind label %3050

2997:                                             ; preds = %2996
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %290) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %292) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %293) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %293)
          to label %2998 unwind label %3056

2998:                                             ; preds = %2997
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA5_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 1 dereferenceable(5) @.str.320)
          to label %2999 unwind label %3060

2999:                                             ; preds = %2998
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %293) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %294) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %295) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %296) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %295, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %296)
          to label %3000 unwind label %3065

3000:                                             ; preds = %2999
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %294, ptr noundef nonnull align 8 dereferenceable(32) %295)
          to label %3001 unwind label %3069

3001:                                             ; preds = %3000
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %296) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %295) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %297) #10
  %3002 = load ptr, ptr %283, align 8, !tbaa !5
  %3003 = getelementptr inbounds %"struct.std::pair.104", ptr %3002, i32 0, i32 0
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull align 8 dereferenceable(32) %3003)
          to label %3004 unwind label %3074

3004:                                             ; preds = %3001
  call void @llvm.lifetime.start.p0(i64 8, ptr %298) #10
  %3005 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %3006 = load ptr, ptr %3005, align 8, !tbaa !44
  %3007 = load ptr, ptr %283, align 8, !tbaa !5
  %3008 = getelementptr inbounds %"struct.std::pair.104", ptr %3007, i32 0, i32 0
  %3009 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %3008) #10
  %3010 = invoke noundef ptr @_ZNK7aiScene18GetEmbeddedTextureEPKc(ptr noundef nonnull align 8 dereferenceable(1168) %3006, ptr noundef %3009)
          to label %3011 unwind label %3078

3011:                                             ; preds = %3004
  store ptr %3010, ptr %298, align 8, !tbaa !5
  %3012 = load ptr, ptr %298, align 8, !tbaa !5
  %3013 = icmp ne ptr %3012, null
  br i1 %3013, label %3014, label %3202

3014:                                             ; preds = %3011
  call void @llvm.lifetime.start.p0(i64 392, ptr %299) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %299)
          to label %3015 unwind label %3082

3015:                                             ; preds = %3014
  %3016 = load ptr, ptr %298, align 8, !tbaa !5
  %3017 = getelementptr inbounds %struct.aiTexture, ptr %3016, i32 0, i32 5
  %3018 = getelementptr inbounds %struct.aiString, ptr %3017, i32 0, i32 0
  %3019 = load i32, ptr %3018, align 8, !tbaa !109
  %3020 = icmp ugt i32 %3019, 0
  br i1 %3020, label %3021, label %3090

3021:                                             ; preds = %3015
  %3022 = getelementptr inbounds i8, ptr %299, i64 16
  %3023 = load ptr, ptr %298, align 8, !tbaa !5
  %3024 = getelementptr inbounds %struct.aiTexture, ptr %3023, i32 0, i32 5
  %3025 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3024)
          to label %3026 unwind label %3086

3026:                                             ; preds = %3021
  %3027 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3022, ptr noundef %3025)
          to label %3028 unwind label %3086

3028:                                             ; preds = %3026
  br label %3128

3029:                                             ; preds = %2987
  %3030 = landingpad { ptr, i32 }
          cleanup
  %3031 = extractvalue { ptr, i32 } %3030, 0
  store ptr %3031, ptr %5, align 8
  %3032 = extractvalue { ptr, i32 } %3030, 1
  store i32 %3032, ptr %6, align 4
  br label %3037

3033:                                             ; preds = %2989
  %3034 = landingpad { ptr, i32 }
          cleanup
  %3035 = extractvalue { ptr, i32 } %3034, 0
  store ptr %3035, ptr %5, align 8
  %3036 = extractvalue { ptr, i32 } %3034, 1
  store i32 %3036, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #10
  br label %3037

3037:                                             ; preds = %3033, %3029
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %286) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %286) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #10
  br label %3278

3038:                                             ; preds = %2990
  %3039 = landingpad { ptr, i32 }
          cleanup
  %3040 = extractvalue { ptr, i32 } %3039, 0
  store ptr %3040, ptr %5, align 8
  %3041 = extractvalue { ptr, i32 } %3039, 1
  store i32 %3041, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #10
  br label %3277

3042:                                             ; preds = %2993
  %3043 = landingpad { ptr, i32 }
          cleanup
  %3044 = extractvalue { ptr, i32 } %3043, 0
  store ptr %3044, ptr %5, align 8
  %3045 = extractvalue { ptr, i32 } %3043, 1
  store i32 %3045, ptr %6, align 4
  br label %3055

3046:                                             ; preds = %2995
  %3047 = landingpad { ptr, i32 }
          cleanup
  %3048 = extractvalue { ptr, i32 } %3047, 0
  store ptr %3048, ptr %5, align 8
  %3049 = extractvalue { ptr, i32 } %3047, 1
  store i32 %3049, ptr %6, align 4
  br label %3054

3050:                                             ; preds = %2996
  %3051 = landingpad { ptr, i32 }
          cleanup
  %3052 = extractvalue { ptr, i32 } %3051, 0
  store ptr %3052, ptr %5, align 8
  %3053 = extractvalue { ptr, i32 } %3051, 1
  store i32 %3053, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #10
  br label %3054

3054:                                             ; preds = %3050, %3046
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #10
  br label %3055

3055:                                             ; preds = %3054, %3042
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %290) #10
  br label %3276

3056:                                             ; preds = %2997
  %3057 = landingpad { ptr, i32 }
          cleanup
  %3058 = extractvalue { ptr, i32 } %3057, 0
  store ptr %3058, ptr %5, align 8
  %3059 = extractvalue { ptr, i32 } %3057, 1
  store i32 %3059, ptr %6, align 4
  br label %3064

3060:                                             ; preds = %2998
  %3061 = landingpad { ptr, i32 }
          cleanup
  %3062 = extractvalue { ptr, i32 } %3061, 0
  store ptr %3062, ptr %5, align 8
  %3063 = extractvalue { ptr, i32 } %3061, 1
  store i32 %3063, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #10
  br label %3064

3064:                                             ; preds = %3060, %3056
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %293) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #10
  br label %3276

3065:                                             ; preds = %2999
  %3066 = landingpad { ptr, i32 }
          cleanup
  %3067 = extractvalue { ptr, i32 } %3066, 0
  store ptr %3067, ptr %5, align 8
  %3068 = extractvalue { ptr, i32 } %3066, 1
  store i32 %3068, ptr %6, align 4
  br label %3073

3069:                                             ; preds = %3000
  %3070 = landingpad { ptr, i32 }
          cleanup
  %3071 = extractvalue { ptr, i32 } %3070, 0
  store ptr %3071, ptr %5, align 8
  %3072 = extractvalue { ptr, i32 } %3070, 1
  store i32 %3072, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %295) #10
  br label %3073

3073:                                             ; preds = %3069, %3065
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %296) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %296) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %295) #10
  br label %3275

3074:                                             ; preds = %3001
  %3075 = landingpad { ptr, i32 }
          cleanup
  %3076 = extractvalue { ptr, i32 } %3075, 0
  store ptr %3076, ptr %5, align 8
  %3077 = extractvalue { ptr, i32 } %3075, 1
  store i32 %3077, ptr %6, align 4
  br label %3274

3078:                                             ; preds = %3214, %3207, %3004
  %3079 = landingpad { ptr, i32 }
          cleanup
  %3080 = extractvalue { ptr, i32 } %3079, 0
  store ptr %3080, ptr %5, align 8
  %3081 = extractvalue { ptr, i32 } %3079, 1
  store i32 %3081, ptr %6, align 4
  br label %3273

3082:                                             ; preds = %3014
  %3083 = landingpad { ptr, i32 }
          cleanup
  %3084 = extractvalue { ptr, i32 } %3083, 0
  store ptr %3084, ptr %5, align 8
  %3085 = extractvalue { ptr, i32 } %3083, 1
  store i32 %3085, ptr %6, align 4
  br label %3201

3086:                                             ; preds = %3026, %3021
  %3087 = landingpad { ptr, i32 }
          cleanup
  %3088 = extractvalue { ptr, i32 } %3087, 0
  store ptr %3088, ptr %5, align 8
  %3089 = extractvalue { ptr, i32 } %3087, 1
  store i32 %3089, ptr %6, align 4
  br label %3200

3090:                                             ; preds = %3015
  %3091 = load ptr, ptr %298, align 8, !tbaa !5
  %3092 = getelementptr inbounds %struct.aiTexture, ptr %3091, i32 0, i32 2
  %3093 = getelementptr inbounds [9 x i8], ptr %3092, i64 0, i64 0
  %3094 = load i8, ptr %3093, align 8, !tbaa !111
  %3095 = icmp ne i8 %3094, 0
  br i1 %3095, label %3096, label %3127

3096:                                             ; preds = %3090
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %301) #10
  %3097 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %297) #10
  %3098 = sub i64 %3097, 1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %301, ptr noundef nonnull align 8 dereferenceable(32) %297, i64 noundef 1, i64 noundef %3098)
          to label %3099 unwind label %3113

3099:                                             ; preds = %3096
  %3100 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef null, i32 noundef 10)
          to label %3101 unwind label %3117

3101:                                             ; preds = %3099
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #10
  store i32 %3100, ptr %300, align 4, !tbaa !39
  %3102 = getelementptr inbounds i8, ptr %299, i64 16
  %3103 = load i32, ptr %300, align 4, !tbaa !39
  %3104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3102, i32 noundef %3103)
          to label %3105 unwind label %3122

3105:                                             ; preds = %3101
  %3106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3104, ptr noundef @.str.40)
          to label %3107 unwind label %3122

3107:                                             ; preds = %3105
  %3108 = load ptr, ptr %298, align 8, !tbaa !5
  %3109 = getelementptr inbounds %struct.aiTexture, ptr %3108, i32 0, i32 2
  %3110 = getelementptr inbounds [9 x i8], ptr %3109, i64 0, i64 0
  %3111 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3106, ptr noundef %3110)
          to label %3112 unwind label %3122

3112:                                             ; preds = %3107
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #10
  br label %3127

3113:                                             ; preds = %3096
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %5, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %6, align 4
  br label %3121

3117:                                             ; preds = %3099
  %3118 = landingpad { ptr, i32 }
          cleanup
  %3119 = extractvalue { ptr, i32 } %3118, 0
  store ptr %3119, ptr %5, align 8
  %3120 = extractvalue { ptr, i32 } %3118, 1
  store i32 %3120, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #10
  br label %3121

3121:                                             ; preds = %3117, %3113
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #10
  br label %3126

3122:                                             ; preds = %3107, %3105, %3101
  %3123 = landingpad { ptr, i32 }
          cleanup
  %3124 = extractvalue { ptr, i32 } %3123, 0
  store ptr %3124, ptr %5, align 8
  %3125 = extractvalue { ptr, i32 } %3123, 1
  store i32 %3125, ptr %6, align 4
  br label %3126

3126:                                             ; preds = %3122, %3121
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #10
  br label %3200

3127:                                             ; preds = %3112, %3090
  br label %3128

3128:                                             ; preds = %3127, %3028
  call void @llvm.lifetime.start.p0(i64 32, ptr %302) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %302, ptr noundef nonnull align 8 dereferenceable(128) %299)
          to label %3129 unwind label %3154

3129:                                             ; preds = %3128
  %3130 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull align 8 dereferenceable(32) %302) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %303) #10
  %3131 = load ptr, ptr %298, align 8, !tbaa !5
  %3132 = getelementptr inbounds %struct.aiTexture, ptr %3131, i32 0, i32 0
  %3133 = load i32, ptr %3132, align 8, !tbaa !112
  %3134 = load ptr, ptr %298, align 8, !tbaa !5
  %3135 = getelementptr inbounds %struct.aiTexture, ptr %3134, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #10
  store i32 1, ptr %304, align 4, !tbaa !39
  %3136 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %3135, ptr noundef nonnull align 4 dereferenceable(4) %304)
          to label %3137 unwind label %3158

3137:                                             ; preds = %3129
  %3138 = load i32, ptr %3136, align 4, !tbaa !39
  %3139 = mul i32 %3133, %3138
  %3140 = zext i32 %3139 to i64
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #10
  store i64 %3140, ptr %303, align 8, !tbaa !43
  %3141 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %3142 = load i8, ptr %3141, align 8, !tbaa !9, !range !37, !noundef !38
  %3143 = trunc i8 %3142 to i1
  br i1 %3143, label %3144, label %3176

3144:                                             ; preds = %3137
  call void @llvm.lifetime.start.p0(i64 24, ptr %305) #10
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #10
  %3145 = load i64, ptr %303, align 8, !tbaa !43
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef %3145)
          to label %3146 unwind label %3162

3146:                                             ; preds = %3144
  %3147 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %305, i64 noundef 0) #10
  %3148 = load ptr, ptr %298, align 8, !tbaa !5
  %3149 = getelementptr inbounds %struct.aiTexture, ptr %3148, i32 0, i32 4
  %3150 = load ptr, ptr %3149, align 8, !tbaa !113
  %3151 = load i64, ptr %303, align 8, !tbaa !43
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3147, ptr align 1 %3150, i64 %3151, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %306) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %307) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef @.str.321, ptr noundef nonnull align 1 dereferenceable(1) %307)
          to label %3152 unwind label %3166

3152:                                             ; preds = %3146
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIhSaIhEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef nonnull align 8 dereferenceable(24) %305)
          to label %3153 unwind label %3170

3153:                                             ; preds = %3152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #10
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %305) #10
  br label %3198

3154:                                             ; preds = %3128
  %3155 = landingpad { ptr, i32 }
          cleanup
  %3156 = extractvalue { ptr, i32 } %3155, 0
  store ptr %3156, ptr %5, align 8
  %3157 = extractvalue { ptr, i32 } %3155, 1
  store i32 %3157, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #10
  br label %3200

3158:                                             ; preds = %3129
  %3159 = landingpad { ptr, i32 }
          cleanup
  %3160 = extractvalue { ptr, i32 } %3159, 0
  store ptr %3160, ptr %5, align 8
  %3161 = extractvalue { ptr, i32 } %3159, 1
  store i32 %3161, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #10
  br label %3199

3162:                                             ; preds = %3144
  %3163 = landingpad { ptr, i32 }
          cleanup
  %3164 = extractvalue { ptr, i32 } %3163, 0
  store ptr %3164, ptr %5, align 8
  %3165 = extractvalue { ptr, i32 } %3163, 1
  store i32 %3165, ptr %6, align 4
  br label %3175

3166:                                             ; preds = %3146
  %3167 = landingpad { ptr, i32 }
          cleanup
  %3168 = extractvalue { ptr, i32 } %3167, 0
  store ptr %3168, ptr %5, align 8
  %3169 = extractvalue { ptr, i32 } %3167, 1
  store i32 %3169, ptr %6, align 4
  br label %3174

3170:                                             ; preds = %3152
  %3171 = landingpad { ptr, i32 }
          cleanup
  %3172 = extractvalue { ptr, i32 } %3171, 0
  store ptr %3172, ptr %5, align 8
  %3173 = extractvalue { ptr, i32 } %3171, 1
  store i32 %3173, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #10
  br label %3174

3174:                                             ; preds = %3170, %3166
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #10
  br label %3175

3175:                                             ; preds = %3174, %3162
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %305) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %305) #10
  br label %3199

3176:                                             ; preds = %3137
  call void @llvm.lifetime.start.p0(i64 32, ptr %308) #10
  %3177 = load ptr, ptr %298, align 8, !tbaa !5
  %3178 = getelementptr inbounds %struct.aiTexture, ptr %3177, i32 0, i32 4
  %3179 = load ptr, ptr %3178, align 8, !tbaa !113
  %3180 = load i64, ptr %303, align 8, !tbaa !43
  invoke void @_ZN6Assimp3FBX4Util12EncodeBase64B5cxx11EPKcm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %308, ptr noundef %3179, i64 noundef %3180)
          to label %3181 unwind label %3184

3181:                                             ; preds = %3176
  call void @llvm.lifetime.start.p0(i64 32, ptr %309) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %310) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef @.str.321, ptr noundef nonnull align 1 dereferenceable(1) %310)
          to label %3182 unwind label %3188

3182:                                             ; preds = %3181
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef nonnull align 8 dereferenceable(32) %308)
          to label %3183 unwind label %3192

3183:                                             ; preds = %3182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %310) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %308) #10
  br label %3198

3184:                                             ; preds = %3176
  %3185 = landingpad { ptr, i32 }
          cleanup
  %3186 = extractvalue { ptr, i32 } %3185, 0
  store ptr %3186, ptr %5, align 8
  %3187 = extractvalue { ptr, i32 } %3185, 1
  store i32 %3187, ptr %6, align 4
  br label %3197

3188:                                             ; preds = %3181
  %3189 = landingpad { ptr, i32 }
          cleanup
  %3190 = extractvalue { ptr, i32 } %3189, 0
  store ptr %3190, ptr %5, align 8
  %3191 = extractvalue { ptr, i32 } %3189, 1
  store i32 %3191, ptr %6, align 4
  br label %3196

3192:                                             ; preds = %3182
  %3193 = landingpad { ptr, i32 }
          cleanup
  %3194 = extractvalue { ptr, i32 } %3193, 0
  store ptr %3194, ptr %5, align 8
  %3195 = extractvalue { ptr, i32 } %3193, 1
  store i32 %3195, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #10
  br label %3196

3196:                                             ; preds = %3192, %3188
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %310) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %310) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #10
  br label %3197

3197:                                             ; preds = %3196, %3184
  call void @llvm.lifetime.end.p0(i64 32, ptr %308) #10
  br label %3199

3198:                                             ; preds = %3183, %3153
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #10
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %299) #10
  call void @llvm.lifetime.end.p0(i64 392, ptr %299) #10
  br label %3202

3199:                                             ; preds = %3197, %3175, %3158
  call void @llvm.lifetime.end.p0(i64 8, ptr %303) #10
  br label %3200

3200:                                             ; preds = %3199, %3154, %3126, %3086
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %299) #10
  br label %3201

3201:                                             ; preds = %3200, %3082
  call void @llvm.lifetime.end.p0(i64 392, ptr %299) #10
  br label %3273

3202:                                             ; preds = %3198, %3011
  call void @llvm.lifetime.start.p0(i64 32, ptr %311) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %312) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef @.str.226, ptr noundef nonnull align 1 dereferenceable(1) %312)
          to label %3203 unwind label %3222

3203:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 32, ptr %313) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %314) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef @.str.227, ptr noundef nonnull align 1 dereferenceable(1) %314)
          to label %3204 unwind label %3226

3204:                                             ; preds = %3203
  call void @llvm.lifetime.start.p0(i64 32, ptr %315) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %316) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef @.str.228, ptr noundef nonnull align 1 dereferenceable(1) %316)
          to label %3205 unwind label %3230

3205:                                             ; preds = %3204
  call void @llvm.lifetime.start.p0(i64 32, ptr %317) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %318) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %3206 unwind label %3234

3206:                                             ; preds = %3205
  invoke void @_ZN6Assimp3FBX4Node6AddP70IJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_SB_SB_SB_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %294, ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %3207 unwind label %3238

3207:                                             ; preds = %3206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %316) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %314) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(112) %294)
          to label %3208 unwind label %3078

3208:                                             ; preds = %3207
  call void @llvm.lifetime.start.p0(i64 32, ptr %319) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %320) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef @.str.255, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %3209 unwind label %3246

3209:                                             ; preds = %3208
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #10
  store i32 0, ptr %321, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 4 dereferenceable(4) %321)
          to label %3210 unwind label %3250

3210:                                             ; preds = %3209
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %320) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %323) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef @.str.322, ptr noundef nonnull align 1 dereferenceable(1) %323)
          to label %3211 unwind label %3255

3211:                                             ; preds = %3210
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %3212 unwind label %3259

3212:                                             ; preds = %3211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %324) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %325) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef @.str.323, ptr noundef nonnull align 1 dereferenceable(1) %325)
          to label %3213 unwind label %3264

3213:                                             ; preds = %3212
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %3214 unwind label %3268

3214:                                             ; preds = %3213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #10
  %3215 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %3216 = load i8, ptr %3215, align 8, !tbaa !9, !range !37, !noundef !38
  %3217 = trunc i8 %3216 to i1
  %3218 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %284, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %3217, i32 noundef %3218)
          to label %3219 unwind label %3078

3219:                                             ; preds = %3214
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %294) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %294) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %288) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %284) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %284) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #10
  br label %3220

3220:                                             ; preds = %3219
  %3221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %281) #10
  br label %2984

3222:                                             ; preds = %3202
  %3223 = landingpad { ptr, i32 }
          cleanup
  %3224 = extractvalue { ptr, i32 } %3223, 0
  store ptr %3224, ptr %5, align 8
  %3225 = extractvalue { ptr, i32 } %3223, 1
  store i32 %3225, ptr %6, align 4
  br label %3245

3226:                                             ; preds = %3203
  %3227 = landingpad { ptr, i32 }
          cleanup
  %3228 = extractvalue { ptr, i32 } %3227, 0
  store ptr %3228, ptr %5, align 8
  %3229 = extractvalue { ptr, i32 } %3227, 1
  store i32 %3229, ptr %6, align 4
  br label %3244

3230:                                             ; preds = %3204
  %3231 = landingpad { ptr, i32 }
          cleanup
  %3232 = extractvalue { ptr, i32 } %3231, 0
  store ptr %3232, ptr %5, align 8
  %3233 = extractvalue { ptr, i32 } %3231, 1
  store i32 %3233, ptr %6, align 4
  br label %3243

3234:                                             ; preds = %3205
  %3235 = landingpad { ptr, i32 }
          cleanup
  %3236 = extractvalue { ptr, i32 } %3235, 0
  store ptr %3236, ptr %5, align 8
  %3237 = extractvalue { ptr, i32 } %3235, 1
  store i32 %3237, ptr %6, align 4
  br label %3242

3238:                                             ; preds = %3206
  %3239 = landingpad { ptr, i32 }
          cleanup
  %3240 = extractvalue { ptr, i32 } %3239, 0
  store ptr %3240, ptr %5, align 8
  %3241 = extractvalue { ptr, i32 } %3239, 1
  store i32 %3241, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #10
  br label %3242

3242:                                             ; preds = %3238, %3234
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %317) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #10
  br label %3243

3243:                                             ; preds = %3242, %3230
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %316) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %316) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #10
  br label %3244

3244:                                             ; preds = %3243, %3226
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %314) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #10
  br label %3245

3245:                                             ; preds = %3244, %3222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %312) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %312) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #10
  br label %3273

3246:                                             ; preds = %3208
  %3247 = landingpad { ptr, i32 }
          cleanup
  %3248 = extractvalue { ptr, i32 } %3247, 0
  store ptr %3248, ptr %5, align 8
  %3249 = extractvalue { ptr, i32 } %3247, 1
  store i32 %3249, ptr %6, align 4
  br label %3254

3250:                                             ; preds = %3209
  %3251 = landingpad { ptr, i32 }
          cleanup
  %3252 = extractvalue { ptr, i32 } %3251, 0
  store ptr %3252, ptr %5, align 8
  %3253 = extractvalue { ptr, i32 } %3251, 1
  store i32 %3253, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #10
  br label %3254

3254:                                             ; preds = %3250, %3246
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %320) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %319) #10
  br label %3273

3255:                                             ; preds = %3210
  %3256 = landingpad { ptr, i32 }
          cleanup
  %3257 = extractvalue { ptr, i32 } %3256, 0
  store ptr %3257, ptr %5, align 8
  %3258 = extractvalue { ptr, i32 } %3256, 1
  store i32 %3258, ptr %6, align 4
  br label %3263

3259:                                             ; preds = %3211
  %3260 = landingpad { ptr, i32 }
          cleanup
  %3261 = extractvalue { ptr, i32 } %3260, 0
  store ptr %3261, ptr %5, align 8
  %3262 = extractvalue { ptr, i32 } %3260, 1
  store i32 %3262, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #10
  br label %3263

3263:                                             ; preds = %3259, %3255
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %323) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #10
  br label %3273

3264:                                             ; preds = %3212
  %3265 = landingpad { ptr, i32 }
          cleanup
  %3266 = extractvalue { ptr, i32 } %3265, 0
  store ptr %3266, ptr %5, align 8
  %3267 = extractvalue { ptr, i32 } %3265, 1
  store i32 %3267, ptr %6, align 4
  br label %3272

3268:                                             ; preds = %3213
  %3269 = landingpad { ptr, i32 }
          cleanup
  %3270 = extractvalue { ptr, i32 } %3269, 0
  store ptr %3270, ptr %5, align 8
  %3271 = extractvalue { ptr, i32 } %3269, 1
  store i32 %3271, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #10
  br label %3272

3272:                                             ; preds = %3268, %3264
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %325) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #10
  br label %3273

3273:                                             ; preds = %3272, %3263, %3254, %3245, %3201, %3078
  call void @llvm.lifetime.end.p0(i64 8, ptr %298) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #10
  br label %3274

3274:                                             ; preds = %3273, %3074
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %294) #10
  br label %3275

3275:                                             ; preds = %3274, %3073
  call void @llvm.lifetime.end.p0(i64 112, ptr %294) #10
  br label %3276

3276:                                             ; preds = %3275, %3064, %3055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %288) #10
  br label %3277

3277:                                             ; preds = %3276, %3038
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %284) #10
  br label %3278

3278:                                             ; preds = %3277, %3037
  call void @llvm.lifetime.end.p0(i64 112, ptr %284) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %280) #10
  br label %6486

3279:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 48, ptr %326) #10
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %326) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %327) #10
  call void @llvm.lifetime.start.p0(i64 400, ptr %329) #10
  store i1 true, ptr %341, align 1
  store ptr %329, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #10
  store i32 1, ptr %331, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA13_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %329, ptr noundef nonnull align 4 dereferenceable(4) %331, ptr noundef nonnull align 1 dereferenceable(13) @.str.202)
          to label %3280 unwind label %3322

3280:                                             ; preds = %3279
  %3281 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 1
  store ptr %3281, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #10
  store i32 2, ptr %332, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA14_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3281, ptr noundef nonnull align 4 dereferenceable(4) %332, ptr noundef nonnull align 1 dereferenceable(14) @.str.213)
          to label %3282 unwind label %3326

3282:                                             ; preds = %3280
  %3283 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 2
  store ptr %3283, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #10
  store i32 3, ptr %333, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA13_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3283, ptr noundef nonnull align 4 dereferenceable(4) %333, ptr noundef nonnull align 1 dereferenceable(13) @.str.56)
          to label %3284 unwind label %3330

3284:                                             ; preds = %3282
  %3285 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 3
  store ptr %3285, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #10
  store i32 4, ptr %334, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA14_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3285, ptr noundef nonnull align 4 dereferenceable(4) %334, ptr noundef nonnull align 1 dereferenceable(14) @.str.199)
          to label %3286 unwind label %3334

3286:                                             ; preds = %3284
  %3287 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 4
  store ptr %3287, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #10
  store i32 5, ptr %335, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA5_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3287, ptr noundef nonnull align 4 dereferenceable(4) %335, ptr noundef nonnull align 1 dereferenceable(5) @.str.204)
          to label %3288 unwind label %3338

3288:                                             ; preds = %3286
  %3289 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 5
  store ptr %3289, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #10
  store i32 6, ptr %336, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA10_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3289, ptr noundef nonnull align 4 dereferenceable(4) %336, ptr noundef nonnull align 1 dereferenceable(10) @.str.205)
          to label %3290 unwind label %3342

3290:                                             ; preds = %3288
  %3291 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 6
  store ptr %3291, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #10
  store i32 7, ptr %337, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA18_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3291, ptr noundef nonnull align 4 dereferenceable(4) %337, ptr noundef nonnull align 1 dereferenceable(18) @.str.215)
          to label %3292 unwind label %3346

3292:                                             ; preds = %3290
  %3293 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 7
  store ptr %3293, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #10
  store i32 8, ptr %338, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA17_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3293, ptr noundef nonnull align 4 dereferenceable(4) %338, ptr noundef nonnull align 1 dereferenceable(17) @.str.207)
          to label %3294 unwind label %3350

3294:                                             ; preds = %3292
  %3295 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 8
  store ptr %3295, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #10
  store i32 9, ptr %339, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA18_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3295, ptr noundef nonnull align 4 dereferenceable(4) %339, ptr noundef nonnull align 1 dereferenceable(18) @.str.209)
          to label %3296 unwind label %3354

3296:                                             ; preds = %3294
  %3297 = getelementptr inbounds %"struct.std::pair.119", ptr %329, i64 9
  store ptr %3297, ptr %330, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #10
  store i32 11, ptr %340, align 4, !tbaa !104
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA16_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %3297, ptr noundef nonnull align 4 dereferenceable(4) %340, ptr noundef nonnull align 1 dereferenceable(16) @.str.216)
          to label %3298 unwind label %3358

3298:                                             ; preds = %3296
  store i1 false, ptr %341, align 1
  %3299 = getelementptr inbounds %"class.std::initializer_list.118", ptr %328, i32 0, i32 0
  store ptr %329, ptr %3299, align 8, !tbaa !114
  %3300 = getelementptr inbounds %"class.std::initializer_list.118", ptr %328, i32 0, i32 1
  store i64 10, ptr %3300, align 8, !tbaa !116
  call void @llvm.lifetime.start.p0(i64 1, ptr %342) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %343) #10
  call void @_ZNSaISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #10
  %3301 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 0
  %3302 = load ptr, ptr %3301, align 8
  %3303 = getelementptr inbounds { ptr, i64 }, ptr %328, i32 0, i32 1
  %3304 = load i64, ptr %3303, align 8
  invoke void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC2ESt16initializer_listISB_ERKS8_RKSC_(ptr noundef nonnull align 8 dereferenceable(48) %327, ptr %3302, i64 %3304, ptr noundef nonnull align 1 dereferenceable(1) %342, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %3305 unwind label %3362

3305:                                             ; preds = %3298
  call void @_ZNSt15__new_allocatorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %342) #10
  %3306 = getelementptr inbounds [10 x %"struct.std::pair.119"], ptr %329, i32 0, i32 0
  %3307 = getelementptr inbounds %"struct.std::pair.119", ptr %3306, i64 10
  br label %3308

3308:                                             ; preds = %3308, %3305
  %3309 = phi ptr [ %3307, %3305 ], [ %3310, %3308 ]
  %3310 = getelementptr inbounds %"struct.std::pair.119", ptr %3309, i64 -1
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3310) #10
  %3311 = icmp eq ptr %3310, %3306
  br i1 %3311, label %3312, label %3308

3312:                                             ; preds = %3308
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #10
  call void @llvm.lifetime.end.p0(i64 400, ptr %329) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %344) #10
  store i64 0, ptr %344, align 8, !tbaa !43
  br label %3313

3313:                                             ; preds = %3907, %3312
  %3314 = load i64, ptr %344, align 8, !tbaa !43
  %3315 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %3316 = load ptr, ptr %3315, align 8, !tbaa !44
  %3317 = getelementptr inbounds %struct.aiScene, ptr %3316, i32 0, i32 4
  %3318 = load i32, ptr %3317, align 8, !tbaa !97
  %3319 = zext i32 %3318 to i64
  %3320 = icmp ult i64 %3314, %3319
  br i1 %3320, label %3393, label %3321

3321:                                             ; preds = %3313
  store i32 64, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #10
  br label %3910

3322:                                             ; preds = %3279
  %3323 = landingpad { ptr, i32 }
          cleanup
  %3324 = extractvalue { ptr, i32 } %3323, 0
  store ptr %3324, ptr %5, align 8
  %3325 = extractvalue { ptr, i32 } %3323, 1
  store i32 %3325, ptr %6, align 4
  br label %3382

3326:                                             ; preds = %3280
  %3327 = landingpad { ptr, i32 }
          cleanup
  %3328 = extractvalue { ptr, i32 } %3327, 0
  store ptr %3328, ptr %5, align 8
  %3329 = extractvalue { ptr, i32 } %3327, 1
  store i32 %3329, ptr %6, align 4
  br label %3381

3330:                                             ; preds = %3282
  %3331 = landingpad { ptr, i32 }
          cleanup
  %3332 = extractvalue { ptr, i32 } %3331, 0
  store ptr %3332, ptr %5, align 8
  %3333 = extractvalue { ptr, i32 } %3331, 1
  store i32 %3333, ptr %6, align 4
  br label %3380

3334:                                             ; preds = %3284
  %3335 = landingpad { ptr, i32 }
          cleanup
  %3336 = extractvalue { ptr, i32 } %3335, 0
  store ptr %3336, ptr %5, align 8
  %3337 = extractvalue { ptr, i32 } %3335, 1
  store i32 %3337, ptr %6, align 4
  br label %3379

3338:                                             ; preds = %3286
  %3339 = landingpad { ptr, i32 }
          cleanup
  %3340 = extractvalue { ptr, i32 } %3339, 0
  store ptr %3340, ptr %5, align 8
  %3341 = extractvalue { ptr, i32 } %3339, 1
  store i32 %3341, ptr %6, align 4
  br label %3378

3342:                                             ; preds = %3288
  %3343 = landingpad { ptr, i32 }
          cleanup
  %3344 = extractvalue { ptr, i32 } %3343, 0
  store ptr %3344, ptr %5, align 8
  %3345 = extractvalue { ptr, i32 } %3343, 1
  store i32 %3345, ptr %6, align 4
  br label %3377

3346:                                             ; preds = %3290
  %3347 = landingpad { ptr, i32 }
          cleanup
  %3348 = extractvalue { ptr, i32 } %3347, 0
  store ptr %3348, ptr %5, align 8
  %3349 = extractvalue { ptr, i32 } %3347, 1
  store i32 %3349, ptr %6, align 4
  br label %3376

3350:                                             ; preds = %3292
  %3351 = landingpad { ptr, i32 }
          cleanup
  %3352 = extractvalue { ptr, i32 } %3351, 0
  store ptr %3352, ptr %5, align 8
  %3353 = extractvalue { ptr, i32 } %3351, 1
  store i32 %3353, ptr %6, align 4
  br label %3375

3354:                                             ; preds = %3294
  %3355 = landingpad { ptr, i32 }
          cleanup
  %3356 = extractvalue { ptr, i32 } %3355, 0
  store ptr %3356, ptr %5, align 8
  %3357 = extractvalue { ptr, i32 } %3355, 1
  store i32 %3357, ptr %6, align 4
  br label %3374

3358:                                             ; preds = %3296
  %3359 = landingpad { ptr, i32 }
          cleanup
  %3360 = extractvalue { ptr, i32 } %3359, 0
  store ptr %3360, ptr %5, align 8
  %3361 = extractvalue { ptr, i32 } %3359, 1
  store i32 %3361, ptr %6, align 4
  br label %3373

3362:                                             ; preds = %3298
  %3363 = landingpad { ptr, i32 }
          cleanup
  %3364 = extractvalue { ptr, i32 } %3363, 0
  store ptr %3364, ptr %5, align 8
  %3365 = extractvalue { ptr, i32 } %3363, 1
  store i32 %3365, ptr %6, align 4
  call void @_ZNSt15__new_allocatorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %342) #10
  %3366 = getelementptr inbounds [10 x %"struct.std::pair.119"], ptr %329, i32 0, i32 0
  %3367 = getelementptr inbounds %"struct.std::pair.119", ptr %3366, i64 10
  br label %3368

3368:                                             ; preds = %3368, %3362
  %3369 = phi ptr [ %3367, %3362 ], [ %3370, %3368 ]
  %3370 = getelementptr inbounds %"struct.std::pair.119", ptr %3369, i64 -1
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3370) #10
  %3371 = icmp eq ptr %3370, %3366
  br i1 %3371, label %3372, label %3368

3372:                                             ; preds = %3368
  br label %3373

3373:                                             ; preds = %3372, %3358
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #10
  br label %3374

3374:                                             ; preds = %3373, %3354
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #10
  br label %3375

3375:                                             ; preds = %3374, %3350
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #10
  br label %3376

3376:                                             ; preds = %3375, %3346
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #10
  br label %3377

3377:                                             ; preds = %3376, %3342
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #10
  br label %3378

3378:                                             ; preds = %3377, %3338
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #10
  br label %3379

3379:                                             ; preds = %3378, %3334
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #10
  br label %3380

3380:                                             ; preds = %3379, %3330
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #10
  br label %3381

3381:                                             ; preds = %3380, %3326
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #10
  br label %3382

3382:                                             ; preds = %3381, %3322
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #10
  %3383 = load i1, ptr %341, align 1
  br i1 %3383, label %3384, label %3392

3384:                                             ; preds = %3382
  %3385 = load ptr, ptr %330, align 8
  %3386 = icmp eq ptr %329, %3385
  br i1 %3386, label %3391, label %3387

3387:                                             ; preds = %3387, %3384
  %3388 = phi ptr [ %3385, %3384 ], [ %3389, %3387 ]
  %3389 = getelementptr inbounds %"struct.std::pair.119", ptr %3388, i64 -1
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3389) #10
  %3390 = icmp eq ptr %3389, %329
  br i1 %3390, label %3391, label %3387

3391:                                             ; preds = %3387, %3384
  br label %3392

3392:                                             ; preds = %3391, %3382
  call void @llvm.lifetime.end.p0(i64 400, ptr %329) #10
  br label %6485

3393:                                             ; preds = %3313
  call void @llvm.lifetime.start.p0(i64 8, ptr %345) #10
  %3394 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %3395 = load ptr, ptr %3394, align 8, !tbaa !44
  %3396 = getelementptr inbounds %struct.aiScene, ptr %3395, i32 0, i32 5
  %3397 = load ptr, ptr %3396, align 8, !tbaa !98
  %3398 = load i64, ptr %344, align 8, !tbaa !43
  %3399 = getelementptr inbounds ptr, ptr %3397, i64 %3398
  %3400 = load ptr, ptr %3399, align 8, !tbaa !5
  store ptr %3400, ptr %345, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #10
  %3401 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 6
  %3402 = load i64, ptr %344, align 8, !tbaa !43
  %3403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3401, i64 noundef %3402) #10
  %3404 = load i64, ptr %3403, align 8, !tbaa !43
  store i64 %3404, ptr %346, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #10
  store i64 1, ptr %347, align 8, !tbaa !43
  br label %3405

3405:                                             ; preds = %3722, %3393
  %3406 = load i64, ptr %347, align 8, !tbaa !43
  %3407 = icmp ult i64 %3406, 18
  br i1 %3407, label %3409, label %3408

3408:                                             ; preds = %3405
  store i32 67, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #10
  br label %3906

3409:                                             ; preds = %3405
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #10
  %3410 = load i64, ptr %347, align 8, !tbaa !43
  %3411 = trunc i64 %3410 to i32
  store i32 %3411, ptr %348, align 4, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #10
  %3412 = load ptr, ptr %345, align 8, !tbaa !5
  %3413 = load i32, ptr %348, align 4, !tbaa !104
  %3414 = invoke noundef i32 @_ZNK10aiMaterial15GetTextureCountE13aiTextureType(ptr noundef nonnull align 8 dereferenceable(16) %3412, i32 noundef %3413)
          to label %3415 unwind label %3420

3415:                                             ; preds = %3409
  %3416 = zext i32 %3414 to i64
  store i64 %3416, ptr %349, align 8, !tbaa !43
  %3417 = load i64, ptr %349, align 8, !tbaa !43
  %3418 = icmp ult i64 %3417, 1
  br i1 %3418, label %3419, label %3424

3419:                                             ; preds = %3415
  store i32 69, ptr %17, align 4
  br label %3719

3420:                                             ; preds = %3409
  %3421 = landingpad { ptr, i32 }
          cleanup
  %3422 = extractvalue { ptr, i32 } %3421, 0
  store ptr %3422, ptr %5, align 8
  %3423 = extractvalue { ptr, i32 } %3421, 1
  store i32 %3423, ptr %6, align 4
  br label %3905

3424:                                             ; preds = %3415
  %3425 = load i64, ptr %349, align 8, !tbaa !43
  %3426 = icmp ugt i64 %3425, 1
  br i1 %3426, label %3427, label %3467

3427:                                             ; preds = %3424
  call void @llvm.lifetime.start.p0(i64 392, ptr %350) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %350)
          to label %3428 unwind label %3448

3428:                                             ; preds = %3427
  %3429 = getelementptr inbounds i8, ptr %350, i64 16
  %3430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3429, ptr noundef @.str.324)
          to label %3431 unwind label %3452

3431:                                             ; preds = %3428
  %3432 = getelementptr inbounds i8, ptr %350, i64 16
  %3433 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3432, ptr noundef @.str.325)
          to label %3434 unwind label %3452

3434:                                             ; preds = %3431
  %3435 = load i64, ptr %347, align 8, !tbaa !43
  %3436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3433, i64 noundef %3435)
          to label %3437 unwind label %3452

3437:                                             ; preds = %3434
  %3438 = getelementptr inbounds i8, ptr %350, i64 16
  %3439 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3438, ptr noundef @.str.326)
          to label %3440 unwind label %3452

3440:                                             ; preds = %3437
  %3441 = load i64, ptr %344, align 8, !tbaa !43
  %3442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3439, i64 noundef %3441)
          to label %3443 unwind label %3452

3443:                                             ; preds = %3440
  %3444 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %3445 unwind label %3452

3445:                                             ; preds = %3443
  call void @llvm.lifetime.start.p0(i64 32, ptr %351) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %351, ptr noundef nonnull align 8 dereferenceable(128) %350)
          to label %3446 unwind label %3456

3446:                                             ; preds = %3445
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %3444, ptr noundef nonnull align 8 dereferenceable(32) %351)
          to label %3447 unwind label %3460

3447:                                             ; preds = %3446
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %351) #10
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %350) #10
  call void @llvm.lifetime.end.p0(i64 392, ptr %350) #10
  br label %3467

3448:                                             ; preds = %3427
  %3449 = landingpad { ptr, i32 }
          cleanup
  %3450 = extractvalue { ptr, i32 } %3449, 0
  store ptr %3450, ptr %5, align 8
  %3451 = extractvalue { ptr, i32 } %3449, 1
  store i32 %3451, ptr %6, align 4
  br label %3466

3452:                                             ; preds = %3443, %3440, %3437, %3434, %3431, %3428
  %3453 = landingpad { ptr, i32 }
          cleanup
  %3454 = extractvalue { ptr, i32 } %3453, 0
  store ptr %3454, ptr %5, align 8
  %3455 = extractvalue { ptr, i32 } %3453, 1
  store i32 %3455, ptr %6, align 4
  br label %3465

3456:                                             ; preds = %3445
  %3457 = landingpad { ptr, i32 }
          cleanup
  %3458 = extractvalue { ptr, i32 } %3457, 0
  store ptr %3458, ptr %5, align 8
  %3459 = extractvalue { ptr, i32 } %3457, 1
  store i32 %3459, ptr %6, align 4
  br label %3464

3460:                                             ; preds = %3446
  %3461 = landingpad { ptr, i32 }
          cleanup
  %3462 = extractvalue { ptr, i32 } %3461, 0
  store ptr %3462, ptr %5, align 8
  %3463 = extractvalue { ptr, i32 } %3461, 1
  store i32 %3463, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #10
  br label %3464

3464:                                             ; preds = %3460, %3456
  call void @llvm.lifetime.end.p0(i64 32, ptr %351) #10
  br label %3465

3465:                                             ; preds = %3464, %3452
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %350) #10
  br label %3466

3466:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 392, ptr %350) #10
  br label %3905

3467:                                             ; preds = %3447, %3424
  call void @llvm.lifetime.start.p0(i64 1028, ptr %352) #10
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %352) #10
  %3468 = load ptr, ptr %345, align 8, !tbaa !5
  %3469 = load i32, ptr %348, align 4, !tbaa !104
  %3470 = invoke noundef i32 @_ZNK10aiMaterial10GetTextureE13aiTextureTypejP8aiStringP16aiTextureMappingPjPfP11aiTextureOpP16aiTextureMapMode(ptr noundef nonnull align 8 dereferenceable(16) %3468, i32 noundef %3469, i32 noundef 0, ptr noundef %352, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %3471 unwind label %3493

3471:                                             ; preds = %3467
  %3472 = icmp ne i32 %3470, 0
  br i1 %3472, label %3473, label %3519

3473:                                             ; preds = %3471
  call void @llvm.lifetime.start.p0(i64 392, ptr %353) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %353)
          to label %3474 unwind label %3497

3474:                                             ; preds = %3473
  %3475 = getelementptr inbounds i8, ptr %353, i64 16
  %3476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3475, ptr noundef @.str.327)
          to label %3477 unwind label %3501

3477:                                             ; preds = %3474
  %3478 = load i32, ptr %348, align 4, !tbaa !104
  %3479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3476, i32 noundef %3478)
          to label %3480 unwind label %3501

3480:                                             ; preds = %3477
  %3481 = getelementptr inbounds i8, ptr %353, i64 16
  %3482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3481, ptr noundef @.str.328)
          to label %3483 unwind label %3501

3483:                                             ; preds = %3480
  %3484 = load i64, ptr %344, align 8, !tbaa !43
  %3485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3482, i64 noundef %3484)
          to label %3486 unwind label %3501

3486:                                             ; preds = %3483
  %3487 = getelementptr inbounds i8, ptr %353, i64 16
  %3488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3487, ptr noundef @.str.329)
          to label %3489 unwind label %3501

3489:                                             ; preds = %3486
  store i1 true, ptr %355, align 1
  %3490 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %354, ptr noundef nonnull align 8 dereferenceable(128) %353)
          to label %3491 unwind label %3505

3491:                                             ; preds = %3489
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %3490, ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %3492 unwind label %3509

3492:                                             ; preds = %3491
  store i1 false, ptr %355, align 1
  invoke void @__cxa_throw(ptr %3490, ptr @_ZTI17DeadlyExportError, ptr @_ZNSt13runtime_errorD2Ev) #11
          to label %6497 unwind label %3509

3493:                                             ; preds = %3467
  %3494 = landingpad { ptr, i32 }
          cleanup
  %3495 = extractvalue { ptr, i32 } %3494, 0
  store ptr %3495, ptr %5, align 8
  %3496 = extractvalue { ptr, i32 } %3494, 1
  store i32 %3496, ptr %6, align 4
  br label %3904

3497:                                             ; preds = %3473
  %3498 = landingpad { ptr, i32 }
          cleanup
  %3499 = extractvalue { ptr, i32 } %3498, 0
  store ptr %3499, ptr %5, align 8
  %3500 = extractvalue { ptr, i32 } %3498, 1
  store i32 %3500, ptr %6, align 4
  br label %3518

3501:                                             ; preds = %3486, %3483, %3480, %3477, %3474
  %3502 = landingpad { ptr, i32 }
          cleanup
  %3503 = extractvalue { ptr, i32 } %3502, 0
  store ptr %3503, ptr %5, align 8
  %3504 = extractvalue { ptr, i32 } %3502, 1
  store i32 %3504, ptr %6, align 4
  br label %3517

3505:                                             ; preds = %3489
  %3506 = landingpad { ptr, i32 }
          cleanup
  %3507 = extractvalue { ptr, i32 } %3506, 0
  store ptr %3507, ptr %5, align 8
  %3508 = extractvalue { ptr, i32 } %3506, 1
  store i32 %3508, ptr %6, align 4
  br label %3513

3509:                                             ; preds = %3492, %3491
  %3510 = landingpad { ptr, i32 }
          cleanup
  %3511 = extractvalue { ptr, i32 } %3510, 0
  store ptr %3511, ptr %5, align 8
  %3512 = extractvalue { ptr, i32 } %3510, 1
  store i32 %3512, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #10
  br label %3513

3513:                                             ; preds = %3509, %3505
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #10
  %3514 = load i1, ptr %355, align 1
  br i1 %3514, label %3515, label %3516

3515:                                             ; preds = %3513
  call void @__cxa_free_exception(ptr %3490) #10
  br label %3516

3516:                                             ; preds = %3515, %3513
  br label %3517

3517:                                             ; preds = %3516, %3501
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %353) #10
  br label %3518

3518:                                             ; preds = %3517, %3497
  call void @llvm.lifetime.end.p0(i64 392, ptr %353) #10
  br label %3904

3519:                                             ; preds = %3471
  call void @llvm.lifetime.start.p0(i64 32, ptr %356) #10
  %3520 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %352)
          to label %3521 unwind label %3555

3521:                                             ; preds = %3519
  call void @llvm.lifetime.start.p0(i64 1, ptr %357) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef %3520, ptr noundef nonnull align 1 dereferenceable(1) %357)
          to label %3522 unwind label %3559

3522:                                             ; preds = %3521
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %357) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #10
  %3523 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %268, ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %3524 unwind label %3563

3524:                                             ; preds = %3522
  %3525 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %358, i32 0, i32 0
  store ptr %3523, ptr %3525, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #10
  %3526 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %268) #10
  %3527 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.103", ptr %359, i32 0, i32 0
  store ptr %3526, ptr %3527, align 8
  %3528 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %359) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #10
  br i1 %3528, label %3529, label %3589

3529:                                             ; preds = %3524
  call void @llvm.lifetime.start.p0(i64 392, ptr %360) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %360)
          to label %3530 unwind label %3567

3530:                                             ; preds = %3529
  %3531 = getelementptr inbounds i8, ptr %360, i64 16
  %3532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3531, ptr noundef @.str.330)
          to label %3533 unwind label %3571

3533:                                             ; preds = %3530
  %3534 = getelementptr inbounds i8, ptr %360, i64 16
  %3535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3534, ptr noundef @.str.331)
          to label %3536 unwind label %3571

3536:                                             ; preds = %3533
  %3537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3535, ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %3538 unwind label %3571

3538:                                             ; preds = %3536
  %3539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3537, ptr noundef @.str.332)
          to label %3540 unwind label %3571

3540:                                             ; preds = %3538
  %3541 = getelementptr inbounds i8, ptr %360, i64 16
  %3542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3541, ptr noundef @.str.333)
          to label %3543 unwind label %3571

3543:                                             ; preds = %3540
  %3544 = load i64, ptr %347, align 8, !tbaa !43
  %3545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3542, i64 noundef %3544)
          to label %3546 unwind label %3571

3546:                                             ; preds = %3543
  %3547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3545, ptr noundef @.str.334)
          to label %3548 unwind label %3571

3548:                                             ; preds = %3546
  %3549 = load i64, ptr %344, align 8, !tbaa !43
  %3550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3547, i64 noundef %3549)
          to label %3551 unwind label %3571

3551:                                             ; preds = %3548
  store i1 true, ptr %362, align 1
  %3552 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %361) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(128) %360)
          to label %3553 unwind label %3575

3553:                                             ; preds = %3551
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %3552, ptr noundef nonnull align 8 dereferenceable(32) %361)
          to label %3554 unwind label %3579

3554:                                             ; preds = %3553
  store i1 false, ptr %362, align 1
  invoke void @__cxa_throw(ptr %3552, ptr @_ZTI17DeadlyExportError, ptr @_ZNSt13runtime_errorD2Ev) #11
          to label %6497 unwind label %3579

3555:                                             ; preds = %3519
  %3556 = landingpad { ptr, i32 }
          cleanup
  %3557 = extractvalue { ptr, i32 } %3556, 0
  store ptr %3557, ptr %5, align 8
  %3558 = extractvalue { ptr, i32 } %3556, 1
  store i32 %3558, ptr %6, align 4
  br label %3903

3559:                                             ; preds = %3521
  %3560 = landingpad { ptr, i32 }
          cleanup
  %3561 = extractvalue { ptr, i32 } %3560, 0
  store ptr %3561, ptr %5, align 8
  %3562 = extractvalue { ptr, i32 } %3560, 1
  store i32 %3562, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %357) #10
  br label %3903

3563:                                             ; preds = %3522
  %3564 = landingpad { ptr, i32 }
          cleanup
  %3565 = extractvalue { ptr, i32 } %3564, 0
  store ptr %3565, ptr %5, align 8
  %3566 = extractvalue { ptr, i32 } %3564, 1
  store i32 %3566, ptr %6, align 4
  br label %3902

3567:                                             ; preds = %3529
  %3568 = landingpad { ptr, i32 }
          cleanup
  %3569 = extractvalue { ptr, i32 } %3568, 0
  store ptr %3569, ptr %5, align 8
  %3570 = extractvalue { ptr, i32 } %3568, 1
  store i32 %3570, ptr %6, align 4
  br label %3588

3571:                                             ; preds = %3548, %3546, %3543, %3540, %3538, %3536, %3533, %3530
  %3572 = landingpad { ptr, i32 }
          cleanup
  %3573 = extractvalue { ptr, i32 } %3572, 0
  store ptr %3573, ptr %5, align 8
  %3574 = extractvalue { ptr, i32 } %3572, 1
  store i32 %3574, ptr %6, align 4
  br label %3587

3575:                                             ; preds = %3551
  %3576 = landingpad { ptr, i32 }
          cleanup
  %3577 = extractvalue { ptr, i32 } %3576, 0
  store ptr %3577, ptr %5, align 8
  %3578 = extractvalue { ptr, i32 } %3576, 1
  store i32 %3578, ptr %6, align 4
  br label %3583

3579:                                             ; preds = %3554, %3553
  %3580 = landingpad { ptr, i32 }
          cleanup
  %3581 = extractvalue { ptr, i32 } %3580, 0
  store ptr %3581, ptr %5, align 8
  %3582 = extractvalue { ptr, i32 } %3580, 1
  store i32 %3582, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #10
  br label %3583

3583:                                             ; preds = %3579, %3575
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #10
  %3584 = load i1, ptr %362, align 1
  br i1 %3584, label %3585, label %3586

3585:                                             ; preds = %3583
  call void @__cxa_free_exception(ptr %3552) #10
  br label %3586

3586:                                             ; preds = %3585, %3583
  br label %3587

3587:                                             ; preds = %3586, %3571
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %360) #10
  br label %3588

3588:                                             ; preds = %3587, %3567
  call void @llvm.lifetime.end.p0(i64 392, ptr %360) #10
  br label %3902

3589:                                             ; preds = %3524
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #10
  %3590 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %358) #10
  %3591 = getelementptr inbounds %"struct.std::pair.104", ptr %3590, i32 0, i32 1
  %3592 = load i64, ptr %3591, align 8, !tbaa !117
  store i64 %3592, ptr %363, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %364) #10
  %3593 = invoke ptr @_ZNKSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE4findERSA_(ptr noundef nonnull align 8 dereferenceable(48) %327, ptr noundef nonnull align 4 dereferenceable(4) %348)
          to label %3594 unwind label %3620

3594:                                             ; preds = %3589
  %3595 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %364, i32 0, i32 0
  store ptr %3593, ptr %3595, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %365) #10
  %3596 = call ptr @_ZNKSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %327) #10
  %3597 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %365, i32 0, i32 0
  store ptr %3596, ptr %3597, align 8
  %3598 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(8) %365) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %365) #10
  br i1 %3598, label %3599, label %3643

3599:                                             ; preds = %3594
  call void @llvm.lifetime.start.p0(i64 392, ptr %366) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %366)
          to label %3600 unwind label %3624

3600:                                             ; preds = %3599
  %3601 = getelementptr inbounds i8, ptr %366, i64 16
  %3602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3601, ptr noundef @.str.335)
          to label %3603 unwind label %3628

3603:                                             ; preds = %3600
  %3604 = load i64, ptr %347, align 8, !tbaa !43
  %3605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3602, i64 noundef %3604)
          to label %3606 unwind label %3628

3606:                                             ; preds = %3603
  %3607 = getelementptr inbounds i8, ptr %366, i64 16
  %3608 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3607, ptr noundef @.str.328)
          to label %3609 unwind label %3628

3609:                                             ; preds = %3606
  %3610 = load i64, ptr %344, align 8, !tbaa !43
  %3611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3608, i64 noundef %3610)
          to label %3612 unwind label %3628

3612:                                             ; preds = %3609
  %3613 = getelementptr inbounds i8, ptr %366, i64 16
  %3614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3613, ptr noundef @.str.336)
          to label %3615 unwind label %3628

3615:                                             ; preds = %3612
  %3616 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %3617 unwind label %3628

3617:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 32, ptr %367) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %367, ptr noundef nonnull align 8 dereferenceable(128) %366)
          to label %3618 unwind label %3632

3618:                                             ; preds = %3617
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %3616, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %3619 unwind label %3636

3619:                                             ; preds = %3618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %367) #10
  store i32 69, ptr %17, align 4
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %366) #10
  call void @llvm.lifetime.end.p0(i64 392, ptr %366) #10
  br label %3718

3620:                                             ; preds = %3589
  %3621 = landingpad { ptr, i32 }
          cleanup
  %3622 = extractvalue { ptr, i32 } %3621, 0
  store ptr %3622, ptr %5, align 8
  %3623 = extractvalue { ptr, i32 } %3621, 1
  store i32 %3623, ptr %6, align 4
  br label %3901

3624:                                             ; preds = %3599
  %3625 = landingpad { ptr, i32 }
          cleanup
  %3626 = extractvalue { ptr, i32 } %3625, 0
  store ptr %3626, ptr %5, align 8
  %3627 = extractvalue { ptr, i32 } %3625, 1
  store i32 %3627, ptr %6, align 4
  br label %3642

3628:                                             ; preds = %3615, %3612, %3609, %3606, %3603, %3600
  %3629 = landingpad { ptr, i32 }
          cleanup
  %3630 = extractvalue { ptr, i32 } %3629, 0
  store ptr %3630, ptr %5, align 8
  %3631 = extractvalue { ptr, i32 } %3629, 1
  store i32 %3631, ptr %6, align 4
  br label %3641

3632:                                             ; preds = %3617
  %3633 = landingpad { ptr, i32 }
          cleanup
  %3634 = extractvalue { ptr, i32 } %3633, 0
  store ptr %3634, ptr %5, align 8
  %3635 = extractvalue { ptr, i32 } %3633, 1
  store i32 %3635, ptr %6, align 4
  br label %3640

3636:                                             ; preds = %3618
  %3637 = landingpad { ptr, i32 }
          cleanup
  %3638 = extractvalue { ptr, i32 } %3637, 0
  store ptr %3638, ptr %5, align 8
  %3639 = extractvalue { ptr, i32 } %3637, 1
  store i32 %3639, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #10
  br label %3640

3640:                                             ; preds = %3636, %3632
  call void @llvm.lifetime.end.p0(i64 32, ptr %367) #10
  br label %3641

3641:                                             ; preds = %3640, %3628
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %366) #10
  br label %3642

3642:                                             ; preds = %3641, %3624
  call void @llvm.lifetime.end.p0(i64 392, ptr %366) #10
  br label %3901

3643:                                             ; preds = %3594
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #10
  %3644 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %364) #10
  %3645 = getelementptr inbounds %"struct.std::pair.119", ptr %3644, i32 0, i32 1
  store ptr %3645, ptr %368, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #10
  %3646 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %3647 unwind label %3725

3647:                                             ; preds = %3643
  store i64 %3646, ptr %369, align 8, !tbaa !43
  %3648 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %3649 = load ptr, ptr %368, align 8, !tbaa !5
  %3650 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3648, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.338, ptr noundef nonnull align 8 dereferenceable(8) %369, ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull align 8 dereferenceable(32) %3649)
          to label %3651 unwind label %3725

3651:                                             ; preds = %3647
  %3652 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %3653 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlSC_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3652, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %363, ptr noundef nonnull align 8 dereferenceable(8) %369)
          to label %3654 unwind label %3725

3654:                                             ; preds = %3651
  call void @llvm.lifetime.start.p0(i64 20, ptr %370) #10
  call void @_ZN13aiUVTransformC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %370) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %371) #10
  store i32 20, ptr %371, align 4, !tbaa !39
  %3655 = load ptr, ptr %345, align 8, !tbaa !5
  %3656 = invoke i32 @aiGetMaterialFloatArray(ptr noundef %3655, ptr noundef @.str.340, i32 noundef 1, i32 noundef 0, ptr noundef %370, ptr noundef %371)
          to label %3657 unwind label %3729

3657:                                             ; preds = %3654
  call void @llvm.lifetime.start.p0(i64 112, ptr %372) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %373) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %374) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %373, ptr noundef @.str.237, ptr noundef nonnull align 1 dereferenceable(1) %374)
          to label %3658 unwind label %3733

3658:                                             ; preds = %3657
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %373)
          to label %3659 unwind label %3737

3659:                                             ; preds = %3658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %374) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %375) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %376) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %376, ptr noundef @.str.67, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %3660 unwind label %3742

3660:                                             ; preds = %3659
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %375, ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef @.str.237)
          to label %3661 unwind label %3746

3661:                                             ; preds = %3660
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #10
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(8) %369, ptr noundef nonnull align 8 dereferenceable(32) %375, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %3662 unwind label %3751

3662:                                             ; preds = %3661
  call void @llvm.lifetime.start.p0(i64 32, ptr %377) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %378) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %378)
          to label %3663 unwind label %3755

3663:                                             ; preds = %3662
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA17_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef nonnull align 1 dereferenceable(17) @.str.341)
          to label %3664 unwind label %3759

3664:                                             ; preds = %3663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %378) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %379) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %380) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %380)
          to label %3665 unwind label %3764

3665:                                             ; preds = %3664
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #10
  store i32 202, ptr %381, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull align 4 dereferenceable(4) %381)
          to label %3666 unwind label %3768

3666:                                             ; preds = %3665
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %382) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %383) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef @.str.342, ptr noundef nonnull align 1 dereferenceable(1) %383)
          to label %3667 unwind label %3773

3667:                                             ; preds = %3666
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef nonnull align 8 dereferenceable(32) %375)
          to label %3668 unwind label %3777

3668:                                             ; preds = %3667
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %384) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %385) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %386) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %386) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %385, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %386)
          to label %3669 unwind label %3782

3669:                                             ; preds = %3668
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %385)
          to label %3670 unwind label %3786

3670:                                             ; preds = %3669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %386) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %386) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %387) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %388) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef @.str.246, ptr noundef nonnull align 1 dereferenceable(1) %388)
          to label %3671 unwind label %3791

3671:                                             ; preds = %3670
  %3672 = getelementptr inbounds %struct.aiUVTransform, ptr %370, i32 0, i32 0
  %3673 = invoke noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %3672, i32 noundef 0)
          to label %3674 unwind label %3795

3674:                                             ; preds = %3671
  %3675 = fpext float %3673 to double
  %3676 = getelementptr inbounds %struct.aiUVTransform, ptr %370, i32 0, i32 0
  %3677 = invoke noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %3676, i32 noundef 1)
          to label %3678 unwind label %3795

3678:                                             ; preds = %3674
  %3679 = fpext float %3677 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %387, double noundef %3675, double noundef %3679, double noundef 0.000000e+00)
          to label %3680 unwind label %3795

3680:                                             ; preds = %3678
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %389) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %390) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef @.str.247, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %3681 unwind label %3800

3681:                                             ; preds = %3680
  %3682 = getelementptr inbounds %struct.aiUVTransform, ptr %370, i32 0, i32 2
  %3683 = load float, ptr %3682, align 4, !tbaa !121
  %3684 = fpext float %3683 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %389, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %3684)
          to label %3685 unwind label %3804

3685:                                             ; preds = %3681
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %392) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef @.str.248, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %3686 unwind label %3809

3686:                                             ; preds = %3685
  %3687 = getelementptr inbounds %struct.aiUVTransform, ptr %370, i32 0, i32 1
  %3688 = invoke noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %3687, i32 noundef 0)
          to label %3689 unwind label %3813

3689:                                             ; preds = %3686
  %3690 = fpext float %3688 to double
  %3691 = getelementptr inbounds %struct.aiUVTransform, ptr %370, i32 0, i32 1
  %3692 = invoke noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %3691, i32 noundef 1)
          to label %3693 unwind label %3813

3693:                                             ; preds = %3689
  %3694 = fpext float %3692 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %391, double noundef %3690, double noundef %3694, double noundef 0.000000e+00)
          to label %3695 unwind label %3813

3695:                                             ; preds = %3693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %393) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %394) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef @.str.251, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %3696 unwind label %3818

3696:                                             ; preds = %3695
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %393, i32 noundef 0)
          to label %3697 unwind label %3822

3697:                                             ; preds = %3696
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %395) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %396) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef @.str.254, ptr noundef nonnull align 1 dereferenceable(1) %396)
          to label %3698 unwind label %3827

3698:                                             ; preds = %3697
  invoke void @_ZN6Assimp3FBX4Node10AddP70boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(112) %384, ptr noundef nonnull align 8 dereferenceable(32) %395, i1 noundef zeroext true)
          to label %3699 unwind label %3831

3699:                                             ; preds = %3698
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(112) %384)
          to label %3700 unwind label %3836

3700:                                             ; preds = %3699
  call void @llvm.lifetime.start.p0(i64 32, ptr %397) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %398) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef @.str.343, ptr noundef nonnull align 1 dereferenceable(1) %398)
          to label %3701 unwind label %3840

3701:                                             ; preds = %3700
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %3702 unwind label %3844

3702:                                             ; preds = %3701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %398) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %397) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %399) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %400) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef @.str.323, ptr noundef nonnull align 1 dereferenceable(1) %400)
          to label %3703 unwind label %3849

3703:                                             ; preds = %3702
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull align 8 dereferenceable(32) %356)
          to label %3704 unwind label %3853

3704:                                             ; preds = %3703
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %400) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %399) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %401) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %402) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef @.str.344, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %3705 unwind label %3858

3705:                                             ; preds = %3704
  call void @llvm.lifetime.start.p0(i64 8, ptr %403) #10
  store double 0.000000e+00, ptr %403, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr %404) #10
  store double 0.000000e+00, ptr %404, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJddEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 8 dereferenceable(8) %403, ptr noundef nonnull align 8 dereferenceable(8) %404)
          to label %3706 unwind label %3862

3706:                                             ; preds = %3705
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %405) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %406) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef @.str.345, ptr noundef nonnull align 1 dereferenceable(1) %406)
          to label %3707 unwind label %3867

3707:                                             ; preds = %3706
  call void @llvm.lifetime.start.p0(i64 8, ptr %407) #10
  store double 1.000000e+00, ptr %407, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #10
  store double 1.000000e+00, ptr %408, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJddEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull align 8 dereferenceable(8) %407, ptr noundef nonnull align 8 dereferenceable(8) %408)
          to label %3708 unwind label %3871

3708:                                             ; preds = %3707
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %407) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %405) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %409) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %410) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef @.str.346, ptr noundef nonnull align 1 dereferenceable(1) %410)
          to label %3709 unwind label %3876

3709:                                             ; preds = %3708
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA5_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull align 1 dereferenceable(5) @.str.347)
          to label %3710 unwind label %3880

3710:                                             ; preds = %3709
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %410) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %411) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %412) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %412) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef @.str.348, ptr noundef nonnull align 1 dereferenceable(1) %412)
          to label %3711 unwind label %3885

3711:                                             ; preds = %3710
  call void @llvm.lifetime.start.p0(i64 4, ptr %413) #10
  store i32 0, ptr %413, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #10
  store i32 0, ptr %414, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #10
  store i32 0, ptr %415, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #10
  store i32 0, ptr %416, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiiiiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull align 4 dereferenceable(4) %413, ptr noundef nonnull align 4 dereferenceable(4) %414, ptr noundef nonnull align 4 dereferenceable(4) %415, ptr noundef nonnull align 4 dereferenceable(4) %416)
          to label %3712 unwind label %3889

3712:                                             ; preds = %3711
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %412) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %412) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #10
  %3713 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %3714 = load i8, ptr %3713, align 8, !tbaa !9, !range !37, !noundef !38
  %3715 = trunc i8 %3714 to i1
  %3716 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %372, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %3715, i32 noundef %3716)
          to label %3717 unwind label %3836

3717:                                             ; preds = %3712
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %384) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %384) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %375) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %372) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %372) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %371) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %370) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #10
  store i32 0, ptr %17, align 4
  br label %3718

3718:                                             ; preds = %3717, %3619
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #10
  call void @llvm.lifetime.end.p0(i64 1028, ptr %352) #10
  br label %3719

3719:                                             ; preds = %3718, %3419
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #10
  %3720 = load i32, ptr %17, align 4
  switch i32 %3720, label %6497 [
    i32 0, label %3721
    i32 69, label %3722
  ]

3721:                                             ; preds = %3719
  br label %3722

3722:                                             ; preds = %3721, %3719
  %3723 = load i64, ptr %347, align 8, !tbaa !43
  %3724 = add i64 %3723, 1
  store i64 %3724, ptr %347, align 8, !tbaa !43
  br label %3405, !llvm.loop !124

3725:                                             ; preds = %3651, %3647, %3643
  %3726 = landingpad { ptr, i32 }
          cleanup
  %3727 = extractvalue { ptr, i32 } %3726, 0
  store ptr %3727, ptr %5, align 8
  %3728 = extractvalue { ptr, i32 } %3726, 1
  store i32 %3728, ptr %6, align 4
  br label %3900

3729:                                             ; preds = %3654
  %3730 = landingpad { ptr, i32 }
          cleanup
  %3731 = extractvalue { ptr, i32 } %3730, 0
  store ptr %3731, ptr %5, align 8
  %3732 = extractvalue { ptr, i32 } %3730, 1
  store i32 %3732, ptr %6, align 4
  br label %3899

3733:                                             ; preds = %3657
  %3734 = landingpad { ptr, i32 }
          cleanup
  %3735 = extractvalue { ptr, i32 } %3734, 0
  store ptr %3735, ptr %5, align 8
  %3736 = extractvalue { ptr, i32 } %3734, 1
  store i32 %3736, ptr %6, align 4
  br label %3741

3737:                                             ; preds = %3658
  %3738 = landingpad { ptr, i32 }
          cleanup
  %3739 = extractvalue { ptr, i32 } %3738, 0
  store ptr %3739, ptr %5, align 8
  %3740 = extractvalue { ptr, i32 } %3738, 1
  store i32 %3740, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #10
  br label %3741

3741:                                             ; preds = %3737, %3733
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %374) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #10
  br label %3898

3742:                                             ; preds = %3659
  %3743 = landingpad { ptr, i32 }
          cleanup
  %3744 = extractvalue { ptr, i32 } %3743, 0
  store ptr %3744, ptr %5, align 8
  %3745 = extractvalue { ptr, i32 } %3743, 1
  store i32 %3745, ptr %6, align 4
  br label %3750

3746:                                             ; preds = %3660
  %3747 = landingpad { ptr, i32 }
          cleanup
  %3748 = extractvalue { ptr, i32 } %3747, 0
  store ptr %3748, ptr %5, align 8
  %3749 = extractvalue { ptr, i32 } %3747, 1
  store i32 %3749, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #10
  br label %3750

3750:                                             ; preds = %3746, %3742
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #10
  br label %3897

3751:                                             ; preds = %3661
  %3752 = landingpad { ptr, i32 }
          cleanup
  %3753 = extractvalue { ptr, i32 } %3752, 0
  store ptr %3753, ptr %5, align 8
  %3754 = extractvalue { ptr, i32 } %3752, 1
  store i32 %3754, ptr %6, align 4
  br label %3896

3755:                                             ; preds = %3662
  %3756 = landingpad { ptr, i32 }
          cleanup
  %3757 = extractvalue { ptr, i32 } %3756, 0
  store ptr %3757, ptr %5, align 8
  %3758 = extractvalue { ptr, i32 } %3756, 1
  store i32 %3758, ptr %6, align 4
  br label %3763

3759:                                             ; preds = %3663
  %3760 = landingpad { ptr, i32 }
          cleanup
  %3761 = extractvalue { ptr, i32 } %3760, 0
  store ptr %3761, ptr %5, align 8
  %3762 = extractvalue { ptr, i32 } %3760, 1
  store i32 %3762, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #10
  br label %3763

3763:                                             ; preds = %3759, %3755
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %378) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #10
  br label %3896

3764:                                             ; preds = %3664
  %3765 = landingpad { ptr, i32 }
          cleanup
  %3766 = extractvalue { ptr, i32 } %3765, 0
  store ptr %3766, ptr %5, align 8
  %3767 = extractvalue { ptr, i32 } %3765, 1
  store i32 %3767, ptr %6, align 4
  br label %3772

3768:                                             ; preds = %3665
  %3769 = landingpad { ptr, i32 }
          cleanup
  %3770 = extractvalue { ptr, i32 } %3769, 0
  store ptr %3770, ptr %5, align 8
  %3771 = extractvalue { ptr, i32 } %3769, 1
  store i32 %3771, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #10
  br label %3772

3772:                                             ; preds = %3768, %3764
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #10
  br label %3896

3773:                                             ; preds = %3666
  %3774 = landingpad { ptr, i32 }
          cleanup
  %3775 = extractvalue { ptr, i32 } %3774, 0
  store ptr %3775, ptr %5, align 8
  %3776 = extractvalue { ptr, i32 } %3774, 1
  store i32 %3776, ptr %6, align 4
  br label %3781

3777:                                             ; preds = %3667
  %3778 = landingpad { ptr, i32 }
          cleanup
  %3779 = extractvalue { ptr, i32 } %3778, 0
  store ptr %3779, ptr %5, align 8
  %3780 = extractvalue { ptr, i32 } %3778, 1
  store i32 %3780, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #10
  br label %3781

3781:                                             ; preds = %3777, %3773
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #10
  br label %3896

3782:                                             ; preds = %3668
  %3783 = landingpad { ptr, i32 }
          cleanup
  %3784 = extractvalue { ptr, i32 } %3783, 0
  store ptr %3784, ptr %5, align 8
  %3785 = extractvalue { ptr, i32 } %3783, 1
  store i32 %3785, ptr %6, align 4
  br label %3790

3786:                                             ; preds = %3669
  %3787 = landingpad { ptr, i32 }
          cleanup
  %3788 = extractvalue { ptr, i32 } %3787, 0
  store ptr %3788, ptr %5, align 8
  %3789 = extractvalue { ptr, i32 } %3787, 1
  store i32 %3789, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #10
  br label %3790

3790:                                             ; preds = %3786, %3782
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %386) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %386) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #10
  br label %3895

3791:                                             ; preds = %3670
  %3792 = landingpad { ptr, i32 }
          cleanup
  %3793 = extractvalue { ptr, i32 } %3792, 0
  store ptr %3793, ptr %5, align 8
  %3794 = extractvalue { ptr, i32 } %3792, 1
  store i32 %3794, ptr %6, align 4
  br label %3799

3795:                                             ; preds = %3678, %3674, %3671
  %3796 = landingpad { ptr, i32 }
          cleanup
  %3797 = extractvalue { ptr, i32 } %3796, 0
  store ptr %3797, ptr %5, align 8
  %3798 = extractvalue { ptr, i32 } %3796, 1
  store i32 %3798, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #10
  br label %3799

3799:                                             ; preds = %3795, %3791
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #10
  br label %3894

3800:                                             ; preds = %3680
  %3801 = landingpad { ptr, i32 }
          cleanup
  %3802 = extractvalue { ptr, i32 } %3801, 0
  store ptr %3802, ptr %5, align 8
  %3803 = extractvalue { ptr, i32 } %3801, 1
  store i32 %3803, ptr %6, align 4
  br label %3808

3804:                                             ; preds = %3681
  %3805 = landingpad { ptr, i32 }
          cleanup
  %3806 = extractvalue { ptr, i32 } %3805, 0
  store ptr %3806, ptr %5, align 8
  %3807 = extractvalue { ptr, i32 } %3805, 1
  store i32 %3807, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #10
  br label %3808

3808:                                             ; preds = %3804, %3800
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %390) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #10
  br label %3894

3809:                                             ; preds = %3685
  %3810 = landingpad { ptr, i32 }
          cleanup
  %3811 = extractvalue { ptr, i32 } %3810, 0
  store ptr %3811, ptr %5, align 8
  %3812 = extractvalue { ptr, i32 } %3810, 1
  store i32 %3812, ptr %6, align 4
  br label %3817

3813:                                             ; preds = %3693, %3689, %3686
  %3814 = landingpad { ptr, i32 }
          cleanup
  %3815 = extractvalue { ptr, i32 } %3814, 0
  store ptr %3815, ptr %5, align 8
  %3816 = extractvalue { ptr, i32 } %3814, 1
  store i32 %3816, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #10
  br label %3817

3817:                                             ; preds = %3813, %3809
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #10
  br label %3894

3818:                                             ; preds = %3695
  %3819 = landingpad { ptr, i32 }
          cleanup
  %3820 = extractvalue { ptr, i32 } %3819, 0
  store ptr %3820, ptr %5, align 8
  %3821 = extractvalue { ptr, i32 } %3819, 1
  store i32 %3821, ptr %6, align 4
  br label %3826

3822:                                             ; preds = %3696
  %3823 = landingpad { ptr, i32 }
          cleanup
  %3824 = extractvalue { ptr, i32 } %3823, 0
  store ptr %3824, ptr %5, align 8
  %3825 = extractvalue { ptr, i32 } %3823, 1
  store i32 %3825, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #10
  br label %3826

3826:                                             ; preds = %3822, %3818
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #10
  br label %3894

3827:                                             ; preds = %3697
  %3828 = landingpad { ptr, i32 }
          cleanup
  %3829 = extractvalue { ptr, i32 } %3828, 0
  store ptr %3829, ptr %5, align 8
  %3830 = extractvalue { ptr, i32 } %3828, 1
  store i32 %3830, ptr %6, align 4
  br label %3835

3831:                                             ; preds = %3698
  %3832 = landingpad { ptr, i32 }
          cleanup
  %3833 = extractvalue { ptr, i32 } %3832, 0
  store ptr %3833, ptr %5, align 8
  %3834 = extractvalue { ptr, i32 } %3832, 1
  store i32 %3834, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #10
  br label %3835

3835:                                             ; preds = %3831, %3827
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #10
  br label %3894

3836:                                             ; preds = %3712, %3699
  %3837 = landingpad { ptr, i32 }
          cleanup
  %3838 = extractvalue { ptr, i32 } %3837, 0
  store ptr %3838, ptr %5, align 8
  %3839 = extractvalue { ptr, i32 } %3837, 1
  store i32 %3839, ptr %6, align 4
  br label %3894

3840:                                             ; preds = %3700
  %3841 = landingpad { ptr, i32 }
          cleanup
  %3842 = extractvalue { ptr, i32 } %3841, 0
  store ptr %3842, ptr %5, align 8
  %3843 = extractvalue { ptr, i32 } %3841, 1
  store i32 %3843, ptr %6, align 4
  br label %3848

3844:                                             ; preds = %3701
  %3845 = landingpad { ptr, i32 }
          cleanup
  %3846 = extractvalue { ptr, i32 } %3845, 0
  store ptr %3846, ptr %5, align 8
  %3847 = extractvalue { ptr, i32 } %3845, 1
  store i32 %3847, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #10
  br label %3848

3848:                                             ; preds = %3844, %3840
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %398) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %397) #10
  br label %3894

3849:                                             ; preds = %3702
  %3850 = landingpad { ptr, i32 }
          cleanup
  %3851 = extractvalue { ptr, i32 } %3850, 0
  store ptr %3851, ptr %5, align 8
  %3852 = extractvalue { ptr, i32 } %3850, 1
  store i32 %3852, ptr %6, align 4
  br label %3857

3853:                                             ; preds = %3703
  %3854 = landingpad { ptr, i32 }
          cleanup
  %3855 = extractvalue { ptr, i32 } %3854, 0
  store ptr %3855, ptr %5, align 8
  %3856 = extractvalue { ptr, i32 } %3854, 1
  store i32 %3856, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #10
  br label %3857

3857:                                             ; preds = %3853, %3849
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %400) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %399) #10
  br label %3894

3858:                                             ; preds = %3704
  %3859 = landingpad { ptr, i32 }
          cleanup
  %3860 = extractvalue { ptr, i32 } %3859, 0
  store ptr %3860, ptr %5, align 8
  %3861 = extractvalue { ptr, i32 } %3859, 1
  store i32 %3861, ptr %6, align 4
  br label %3866

3862:                                             ; preds = %3705
  %3863 = landingpad { ptr, i32 }
          cleanup
  %3864 = extractvalue { ptr, i32 } %3863, 0
  store ptr %3864, ptr %5, align 8
  %3865 = extractvalue { ptr, i32 } %3863, 1
  store i32 %3865, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %403) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #10
  br label %3866

3866:                                             ; preds = %3862, %3858
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #10
  br label %3894

3867:                                             ; preds = %3706
  %3868 = landingpad { ptr, i32 }
          cleanup
  %3869 = extractvalue { ptr, i32 } %3868, 0
  store ptr %3869, ptr %5, align 8
  %3870 = extractvalue { ptr, i32 } %3868, 1
  store i32 %3870, ptr %6, align 4
  br label %3875

3871:                                             ; preds = %3707
  %3872 = landingpad { ptr, i32 }
          cleanup
  %3873 = extractvalue { ptr, i32 } %3872, 0
  store ptr %3873, ptr %5, align 8
  %3874 = extractvalue { ptr, i32 } %3872, 1
  store i32 %3874, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %407) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #10
  br label %3875

3875:                                             ; preds = %3871, %3867
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %405) #10
  br label %3894

3876:                                             ; preds = %3708
  %3877 = landingpad { ptr, i32 }
          cleanup
  %3878 = extractvalue { ptr, i32 } %3877, 0
  store ptr %3878, ptr %5, align 8
  %3879 = extractvalue { ptr, i32 } %3877, 1
  store i32 %3879, ptr %6, align 4
  br label %3884

3880:                                             ; preds = %3709
  %3881 = landingpad { ptr, i32 }
          cleanup
  %3882 = extractvalue { ptr, i32 } %3881, 0
  store ptr %3882, ptr %5, align 8
  %3883 = extractvalue { ptr, i32 } %3881, 1
  store i32 %3883, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #10
  br label %3884

3884:                                             ; preds = %3880, %3876
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %410) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #10
  br label %3894

3885:                                             ; preds = %3710
  %3886 = landingpad { ptr, i32 }
          cleanup
  %3887 = extractvalue { ptr, i32 } %3886, 0
  store ptr %3887, ptr %5, align 8
  %3888 = extractvalue { ptr, i32 } %3886, 1
  store i32 %3888, ptr %6, align 4
  br label %3893

3889:                                             ; preds = %3711
  %3890 = landingpad { ptr, i32 }
          cleanup
  %3891 = extractvalue { ptr, i32 } %3890, 0
  store ptr %3891, ptr %5, align 8
  %3892 = extractvalue { ptr, i32 } %3890, 1
  store i32 %3892, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %413) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #10
  br label %3893

3893:                                             ; preds = %3889, %3885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %412) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %412) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #10
  br label %3894

3894:                                             ; preds = %3893, %3884, %3875, %3866, %3857, %3848, %3836, %3835, %3826, %3817, %3808, %3799
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %384) #10
  br label %3895

3895:                                             ; preds = %3894, %3790
  call void @llvm.lifetime.end.p0(i64 112, ptr %384) #10
  br label %3896

3896:                                             ; preds = %3895, %3781, %3772, %3763, %3751
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #10
  br label %3897

3897:                                             ; preds = %3896, %3750
  call void @llvm.lifetime.end.p0(i64 32, ptr %375) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %372) #10
  br label %3898

3898:                                             ; preds = %3897, %3741
  call void @llvm.lifetime.end.p0(i64 112, ptr %372) #10
  br label %3899

3899:                                             ; preds = %3898, %3729
  call void @llvm.lifetime.end.p0(i64 4, ptr %371) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %370) #10
  br label %3900

3900:                                             ; preds = %3899, %3725
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #10
  br label %3901

3901:                                             ; preds = %3900, %3642, %3620
  call void @llvm.lifetime.end.p0(i64 8, ptr %364) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #10
  br label %3902

3902:                                             ; preds = %3901, %3588, %3563
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #10
  br label %3903

3903:                                             ; preds = %3902, %3559, %3555
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #10
  br label %3904

3904:                                             ; preds = %3903, %3518, %3493
  call void @llvm.lifetime.end.p0(i64 1028, ptr %352) #10
  br label %3905

3905:                                             ; preds = %3904, %3466, %3420
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #10
  br label %6484

3906:                                             ; preds = %3408
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #10
  br label %3907

3907:                                             ; preds = %3906
  %3908 = load i64, ptr %344, align 8, !tbaa !43
  %3909 = add i64 %3908, 1
  store i64 %3909, ptr %344, align 8, !tbaa !43
  br label %3313, !llvm.loop !125

3910:                                             ; preds = %3321
  call void @llvm.lifetime.start.p0(i64 8, ptr %417) #10
  store i64 0, ptr %417, align 8, !tbaa !43
  br label %3911

3911:                                             ; preds = %4421, %3910
  %3912 = load i64, ptr %417, align 8, !tbaa !43
  %3913 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %3914 = load ptr, ptr %3913, align 8, !tbaa !44
  %3915 = getelementptr inbounds %struct.aiScene, ptr %3914, i32 0, i32 2
  %3916 = load i32, ptr %3915, align 8, !tbaa !45
  %3917 = zext i32 %3916 to i64
  %3918 = icmp ult i64 %3912, %3917
  br i1 %3918, label %3920, label %3919

3919:                                             ; preds = %3911
  store i32 70, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #10
  br label %4428

3920:                                             ; preds = %3911
  call void @llvm.lifetime.start.p0(i64 8, ptr %418) #10
  %3921 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %3922 = load ptr, ptr %3921, align 8, !tbaa !44
  %3923 = getelementptr inbounds %struct.aiScene, ptr %3922, i32 0, i32 3
  %3924 = load ptr, ptr %3923, align 8, !tbaa !48
  %3925 = load i64, ptr %417, align 8, !tbaa !43
  %3926 = getelementptr inbounds ptr, ptr %3924, i64 %3925
  %3927 = load ptr, ptr %3926, align 8, !tbaa !5
  store ptr %3927, ptr %418, align 8, !tbaa !5
  %3928 = load ptr, ptr %418, align 8, !tbaa !5
  %3929 = getelementptr inbounds %struct.aiMesh, ptr %3928, i32 0, i32 15
  %3930 = load i32, ptr %3929, align 8, !tbaa !126
  %3931 = icmp eq i32 %3930, 0
  br i1 %3931, label %3932, label %3933

3932:                                             ; preds = %3920
  store i32 72, ptr %17, align 4
  br label %4418

3933:                                             ; preds = %3920
  call void @llvm.lifetime.start.p0(i64 8, ptr %419) #10
  %3934 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %3935 unwind label %3968

3935:                                             ; preds = %3933
  store i64 %3934, ptr %419, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 112, ptr %420) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %421) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %422) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %422)
          to label %3936 unwind label %3972

3936:                                             ; preds = %3935
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %420, ptr noundef nonnull align 8 dereferenceable(32) %421)
          to label %3937 unwind label %3976

3937:                                             ; preds = %3936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %423) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %424) #10
  %3938 = load ptr, ptr %418, align 8, !tbaa !5
  %3939 = getelementptr inbounds %struct.aiMesh, ptr %3938, i32 0, i32 14
  %3940 = getelementptr inbounds %struct.aiString, ptr %3939, i32 0, i32 1
  %3941 = getelementptr inbounds [1024 x i8], ptr %3940, i64 0, i64 0
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %424, ptr noundef %3941, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %3942 unwind label %3981

3942:                                             ; preds = %3937
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %423, ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef @.str.349)
          to label %3943 unwind label %3985

3943:                                             ; preds = %3942
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %420, ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef nonnull align 8 dereferenceable(32) %423, ptr noundef nonnull align 1 dereferenceable(11) @.str.350)
          to label %3944 unwind label %3989

3944:                                             ; preds = %3943
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %423) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %423) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %425) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %426) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %3945 unwind label %3995

3945:                                             ; preds = %3944
  call void @llvm.lifetime.start.p0(i64 4, ptr %427) #10
  store i32 101, ptr %427, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %420, ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull align 4 dereferenceable(4) %427)
          to label %3946 unwind label %3999

3946:                                             ; preds = %3945
  call void @llvm.lifetime.end.p0(i64 4, ptr %427) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %425) #10
  %3947 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %3948 = load i8, ptr %3947, align 8, !tbaa !9, !range !37, !noundef !38
  %3949 = trunc i8 %3948 to i1
  %3950 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %420, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %3949, i32 noundef %3950)
          to label %3951 unwind label %4004

3951:                                             ; preds = %3946
  %3952 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %3953 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 5
  %3954 = load i64, ptr %417, align 8, !tbaa !43
  %3955 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3953, i64 noundef %3954) #10
  %3956 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3952, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef nonnull align 8 dereferenceable(8) %3955)
          to label %3957 unwind label %4004

3957:                                             ; preds = %3951
  call void @llvm.lifetime.start.p0(i64 24, ptr %428) #10
  %3958 = load i64, ptr %417, align 8, !tbaa !43
  %3959 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %3958) #10
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %428, ptr noundef nonnull align 8 dereferenceable(24) %3959)
          to label %3960 unwind label %4008

3960:                                             ; preds = %3957
  call void @llvm.lifetime.start.p0(i64 4, ptr %429) #10
  store i32 0, ptr %429, align 4, !tbaa !39
  br label %3961

3961:                                             ; preds = %4322, %3960
  %3962 = load i32, ptr %429, align 4, !tbaa !39
  %3963 = load ptr, ptr %418, align 8, !tbaa !5
  %3964 = getelementptr inbounds %struct.aiMesh, ptr %3963, i32 0, i32 15
  %3965 = load i32, ptr %3964, align 8, !tbaa !126
  %3966 = icmp ult i32 %3962, %3965
  br i1 %3966, label %4012, label %3967

3967:                                             ; preds = %3961
  store i32 73, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %429) #10
  br label %4417

3968:                                             ; preds = %3933
  %3969 = landingpad { ptr, i32 }
          cleanup
  %3970 = extractvalue { ptr, i32 } %3969, 0
  store ptr %3970, ptr %5, align 8
  %3971 = extractvalue { ptr, i32 } %3969, 1
  store i32 %3971, ptr %6, align 4
  br label %4427

3972:                                             ; preds = %3935
  %3973 = landingpad { ptr, i32 }
          cleanup
  %3974 = extractvalue { ptr, i32 } %3973, 0
  store ptr %3974, ptr %5, align 8
  %3975 = extractvalue { ptr, i32 } %3973, 1
  store i32 %3975, ptr %6, align 4
  br label %3980

3976:                                             ; preds = %3936
  %3977 = landingpad { ptr, i32 }
          cleanup
  %3978 = extractvalue { ptr, i32 } %3977, 0
  store ptr %3978, ptr %5, align 8
  %3979 = extractvalue { ptr, i32 } %3977, 1
  store i32 %3979, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #10
  br label %3980

3980:                                             ; preds = %3976, %3972
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #10
  br label %4426

3981:                                             ; preds = %3937
  %3982 = landingpad { ptr, i32 }
          cleanup
  %3983 = extractvalue { ptr, i32 } %3982, 0
  store ptr %3983, ptr %5, align 8
  %3984 = extractvalue { ptr, i32 } %3982, 1
  store i32 %3984, ptr %6, align 4
  br label %3994

3985:                                             ; preds = %3942
  %3986 = landingpad { ptr, i32 }
          cleanup
  %3987 = extractvalue { ptr, i32 } %3986, 0
  store ptr %3987, ptr %5, align 8
  %3988 = extractvalue { ptr, i32 } %3986, 1
  store i32 %3988, ptr %6, align 4
  br label %3993

3989:                                             ; preds = %3943
  %3990 = landingpad { ptr, i32 }
          cleanup
  %3991 = extractvalue { ptr, i32 } %3990, 0
  store ptr %3991, ptr %5, align 8
  %3992 = extractvalue { ptr, i32 } %3990, 1
  store i32 %3992, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %423) #10
  br label %3993

3993:                                             ; preds = %3989, %3985
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #10
  br label %3994

3994:                                             ; preds = %3993, %3981
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %423) #10
  br label %4425

3995:                                             ; preds = %3944
  %3996 = landingpad { ptr, i32 }
          cleanup
  %3997 = extractvalue { ptr, i32 } %3996, 0
  store ptr %3997, ptr %5, align 8
  %3998 = extractvalue { ptr, i32 } %3996, 1
  store i32 %3998, ptr %6, align 4
  br label %4003

3999:                                             ; preds = %3945
  %4000 = landingpad { ptr, i32 }
          cleanup
  %4001 = extractvalue { ptr, i32 } %4000, 0
  store ptr %4001, ptr %5, align 8
  %4002 = extractvalue { ptr, i32 } %4000, 1
  store i32 %4002, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %427) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #10
  br label %4003

4003:                                             ; preds = %3999, %3995
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %425) #10
  br label %4425

4004:                                             ; preds = %3951, %3946
  %4005 = landingpad { ptr, i32 }
          cleanup
  %4006 = extractvalue { ptr, i32 } %4005, 0
  store ptr %4006, ptr %5, align 8
  %4007 = extractvalue { ptr, i32 } %4005, 1
  store i32 %4007, ptr %6, align 4
  br label %4425

4008:                                             ; preds = %3957
  %4009 = landingpad { ptr, i32 }
          cleanup
  %4010 = extractvalue { ptr, i32 } %4009, 0
  store ptr %4010, ptr %5, align 8
  %4011 = extractvalue { ptr, i32 } %4009, 1
  store i32 %4011, ptr %6, align 4
  br label %4424

4012:                                             ; preds = %3961
  call void @llvm.lifetime.start.p0(i64 8, ptr %430) #10
  %4013 = load ptr, ptr %418, align 8, !tbaa !5
  %4014 = getelementptr inbounds %struct.aiMesh, ptr %4013, i32 0, i32 16
  %4015 = load ptr, ptr %4014, align 8, !tbaa !127
  %4016 = load i32, ptr %429, align 4, !tbaa !39
  %4017 = zext i32 %4016 to i64
  %4018 = getelementptr inbounds ptr, ptr %4015, i64 %4017
  %4019 = load ptr, ptr %4018, align 8, !tbaa !5
  store ptr %4019, ptr %430, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %431) #10
  %4020 = load ptr, ptr %430, align 8, !tbaa !5
  %4021 = getelementptr inbounds %struct.aiAnimMesh, ptr %4020, i32 0, i32 0
  %4022 = getelementptr inbounds %struct.aiString, ptr %4021, i32 0, i32 1
  %4023 = getelementptr inbounds [1024 x i8], ptr %4022, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 1, ptr %432) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef %4023, ptr noundef nonnull align 1 dereferenceable(1) %432)
          to label %4024 unwind label %4070

4024:                                             ; preds = %4012
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %432) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %433) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %434) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %435) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef @.str.185, ptr noundef nonnull align 1 dereferenceable(1) %435)
          to label %4025 unwind label %4074

4025:                                             ; preds = %4024
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(32) %434)
          to label %4026 unwind label %4078

4026:                                             ; preds = %4025
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %435) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %436) #10
  %4027 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %4028 unwind label %4083

4028:                                             ; preds = %4026
  store i64 %4027, ptr %436, align 8, !tbaa !43
  %4029 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 5
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %4029, ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %4030 unwind label %4083

4030:                                             ; preds = %4028
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(8) %436)
          to label %4031 unwind label %4083

4031:                                             ; preds = %4030
  call void @llvm.lifetime.start.p0(i64 32, ptr %437) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %438) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %438, ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %4032 unwind label %4087

4032:                                             ; preds = %4031
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %437, ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef @.str.185)
          to label %4033 unwind label %4091

4033:                                             ; preds = %4032
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(32) %437)
          to label %4034 unwind label %4095

4034:                                             ; preds = %4033
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %437) #10
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA6_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 1 dereferenceable(6) @.str.351)
          to label %4035 unwind label %4083

4035:                                             ; preds = %4034
  call void @llvm.lifetime.start.p0(i64 32, ptr %439) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %440) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %4036 unwind label %4101

4036:                                             ; preds = %4035
  call void @llvm.lifetime.start.p0(i64 4, ptr %441) #10
  store i32 100, ptr %441, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 4 dereferenceable(4) %441)
          to label %4037 unwind label %4105

4037:                                             ; preds = %4036
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #10
  %4038 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4039 = load i8, ptr %4038, align 8, !tbaa !9, !range !37, !noundef !38
  %4040 = trunc i8 %4039 to i1
  %4041 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4040, i32 noundef %4041)
          to label %4042 unwind label %4083

4042:                                             ; preds = %4037
  %4043 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4044 = load i8, ptr %4043, align 8, !tbaa !9, !range !37, !noundef !38
  %4045 = trunc i8 %4044 to i1
  %4046 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4045, i32 noundef %4046)
          to label %4047 unwind label %4083

4047:                                             ; preds = %4042
  %4048 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4049 = load i8, ptr %4048, align 8, !tbaa !9, !range !37, !noundef !38
  %4050 = trunc i8 %4049 to i1
  %4051 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4050, i32 noundef %4051)
          to label %4052 unwind label %4083

4052:                                             ; preds = %4047
  %4053 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4054 = load i8, ptr %4053, align 8, !tbaa !9, !range !37, !noundef !38
  %4055 = trunc i8 %4054 to i1
  %4056 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4055, i32 noundef %4056)
          to label %4057 unwind label %4083

4057:                                             ; preds = %4052
  %4058 = load i32, ptr %12, align 4, !tbaa !39
  %4059 = add nsw i32 %4058, 1
  store i32 %4059, ptr %12, align 4, !tbaa !39
  %4060 = load ptr, ptr %430, align 8, !tbaa !5
  %4061 = invoke noundef zeroext i1 @_ZNK10aiAnimMesh12HasPositionsEv(ptr noundef nonnull align 8 dereferenceable(1200) %4060)
          to label %4062 unwind label %4083

4062:                                             ; preds = %4057
  br i1 %4061, label %4063, label %4284

4063:                                             ; preds = %4062
  call void @llvm.lifetime.start.p0(i64 24, ptr %442) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %442) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %443) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %443) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %444) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %444) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %445) #10
  store i32 0, ptr %445, align 4, !tbaa !39
  br label %4064

4064:                                             ; preds = %4229, %4063
  %4065 = load i32, ptr %445, align 4, !tbaa !39
  %4066 = zext i32 %4065 to i64
  %4067 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %428) #10
  %4068 = icmp ult i64 %4066, %4067
  br i1 %4068, label %4110, label %4069

4069:                                             ; preds = %4064
  store i32 76, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #10
  br label %4233

4070:                                             ; preds = %4012
  %4071 = landingpad { ptr, i32 }
          cleanup
  %4072 = extractvalue { ptr, i32 } %4071, 0
  store ptr %4072, ptr %5, align 8
  %4073 = extractvalue { ptr, i32 } %4071, 1
  store i32 %4073, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %432) #10
  br label %4416

4074:                                             ; preds = %4024
  %4075 = landingpad { ptr, i32 }
          cleanup
  %4076 = extractvalue { ptr, i32 } %4075, 0
  store ptr %4076, ptr %5, align 8
  %4077 = extractvalue { ptr, i32 } %4075, 1
  store i32 %4077, ptr %6, align 4
  br label %4082

4078:                                             ; preds = %4025
  %4079 = landingpad { ptr, i32 }
          cleanup
  %4080 = extractvalue { ptr, i32 } %4079, 0
  store ptr %4080, ptr %5, align 8
  %4081 = extractvalue { ptr, i32 } %4079, 1
  store i32 %4081, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #10
  br label %4082

4082:                                             ; preds = %4078, %4074
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %435) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #10
  br label %4415

4083:                                             ; preds = %4284, %4057, %4052, %4047, %4042, %4037, %4034, %4030, %4028, %4026
  %4084 = landingpad { ptr, i32 }
          cleanup
  %4085 = extractvalue { ptr, i32 } %4084, 0
  store ptr %4085, ptr %5, align 8
  %4086 = extractvalue { ptr, i32 } %4084, 1
  store i32 %4086, ptr %6, align 4
  br label %4414

4087:                                             ; preds = %4031
  %4088 = landingpad { ptr, i32 }
          cleanup
  %4089 = extractvalue { ptr, i32 } %4088, 0
  store ptr %4089, ptr %5, align 8
  %4090 = extractvalue { ptr, i32 } %4088, 1
  store i32 %4090, ptr %6, align 4
  br label %4100

4091:                                             ; preds = %4032
  %4092 = landingpad { ptr, i32 }
          cleanup
  %4093 = extractvalue { ptr, i32 } %4092, 0
  store ptr %4093, ptr %5, align 8
  %4094 = extractvalue { ptr, i32 } %4092, 1
  store i32 %4094, ptr %6, align 4
  br label %4099

4095:                                             ; preds = %4033
  %4096 = landingpad { ptr, i32 }
          cleanup
  %4097 = extractvalue { ptr, i32 } %4096, 0
  store ptr %4097, ptr %5, align 8
  %4098 = extractvalue { ptr, i32 } %4096, 1
  store i32 %4098, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #10
  br label %4099

4099:                                             ; preds = %4095, %4091
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #10
  br label %4100

4100:                                             ; preds = %4099, %4087
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %437) #10
  br label %4414

4101:                                             ; preds = %4035
  %4102 = landingpad { ptr, i32 }
          cleanup
  %4103 = extractvalue { ptr, i32 } %4102, 0
  store ptr %4103, ptr %5, align 8
  %4104 = extractvalue { ptr, i32 } %4102, 1
  store i32 %4104, ptr %6, align 4
  br label %4109

4105:                                             ; preds = %4036
  %4106 = landingpad { ptr, i32 }
          cleanup
  %4107 = extractvalue { ptr, i32 } %4106, 0
  store ptr %4107, ptr %5, align 8
  %4108 = extractvalue { ptr, i32 } %4106, 1
  store i32 %4108, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #10
  br label %4109

4109:                                             ; preds = %4105, %4101
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #10
  br label %4414

4110:                                             ; preds = %4064
  call void @llvm.lifetime.start.p0(i64 12, ptr %446) #10
  %4111 = load ptr, ptr %430, align 8, !tbaa !5
  %4112 = getelementptr inbounds %struct.aiAnimMesh, ptr %4111, i32 0, i32 1
  %4113 = load ptr, ptr %4112, align 8, !tbaa !128
  %4114 = load i32, ptr %445, align 4, !tbaa !39
  %4115 = zext i32 %4114 to i64
  %4116 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %4115) #10
  %4117 = load i32, ptr %4116, align 4, !tbaa !39
  %4118 = sext i32 %4117 to i64
  %4119 = getelementptr inbounds %class.aiVector3t, ptr %4113, i64 %4118
  %4120 = load ptr, ptr %418, align 8, !tbaa !5
  %4121 = getelementptr inbounds %struct.aiMesh, ptr %4120, i32 0, i32 3
  %4122 = load ptr, ptr %4121, align 8, !tbaa !55
  %4123 = load i32, ptr %445, align 4, !tbaa !39
  %4124 = zext i32 %4123 to i64
  %4125 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %4124) #10
  %4126 = load i32, ptr %4125, align 4, !tbaa !39
  %4127 = sext i32 %4126 to i64
  %4128 = getelementptr inbounds %class.aiVector3t, ptr %4122, i64 %4127
  %4129 = invoke { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12) %4119, ptr noundef nonnull align 4 dereferenceable(12) %4128)
          to label %4130 unwind label %4194

4130:                                             ; preds = %4110
  store { <2 x float>, float } %4129, ptr %447, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %446, ptr align 8 %447, i64 12, i1 false)
  %4131 = invoke noundef float @_ZNK10aiVector3tIfE6LengthEv(ptr noundef nonnull align 4 dereferenceable(12) %446)
          to label %4132 unwind label %4194

4132:                                             ; preds = %4130
  %4133 = fpext float %4131 to double
  %4134 = fcmp ogt double %4133, 1.000000e-08
  br i1 %4134, label %4135, label %4228

4135:                                             ; preds = %4132
  %4136 = load i32, ptr %445, align 4, !tbaa !39
  %4137 = zext i32 %4136 to i64
  %4138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %4137) #10
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %442, ptr noundef nonnull align 4 dereferenceable(4) %4138)
          to label %4139 unwind label %4194

4139:                                             ; preds = %4135
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #10
  %4140 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %446, i32 noundef 0)
          to label %4141 unwind label %4198

4141:                                             ; preds = %4139
  %4142 = load float, ptr %4140, align 4, !tbaa !57
  %4143 = fpext float %4142 to double
  store double %4143, ptr %448, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %443, ptr noundef nonnull align 8 dereferenceable(8) %448)
          to label %4144 unwind label %4198

4144:                                             ; preds = %4141
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #10
  %4145 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %446, i32 noundef 1)
          to label %4146 unwind label %4202

4146:                                             ; preds = %4144
  %4147 = load float, ptr %4145, align 4, !tbaa !57
  %4148 = fpext float %4147 to double
  store double %4148, ptr %449, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %443, ptr noundef nonnull align 8 dereferenceable(8) %449)
          to label %4149 unwind label %4202

4149:                                             ; preds = %4146
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %450) #10
  %4150 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %446, i32 noundef 2)
          to label %4151 unwind label %4206

4151:                                             ; preds = %4149
  %4152 = load float, ptr %4150, align 4, !tbaa !57
  %4153 = fpext float %4152 to double
  store double %4153, ptr %450, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %443, ptr noundef nonnull align 8 dereferenceable(8) %450)
          to label %4154 unwind label %4206

4154:                                             ; preds = %4151
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #10
  %4155 = load ptr, ptr %430, align 8, !tbaa !5
  %4156 = invoke noundef zeroext i1 @_ZNK10aiAnimMesh10HasNormalsEv(ptr noundef nonnull align 8 dereferenceable(1200) %4155)
          to label %4157 unwind label %4194

4157:                                             ; preds = %4154
  br i1 %4156, label %4158, label %4227

4158:                                             ; preds = %4157
  call void @llvm.lifetime.start.p0(i64 12, ptr %451) #10
  %4159 = load ptr, ptr %430, align 8, !tbaa !5
  %4160 = getelementptr inbounds %struct.aiAnimMesh, ptr %4159, i32 0, i32 2
  %4161 = load ptr, ptr %4160, align 8, !tbaa !130
  %4162 = load i32, ptr %445, align 4, !tbaa !39
  %4163 = zext i32 %4162 to i64
  %4164 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %4163) #10
  %4165 = load i32, ptr %4164, align 4, !tbaa !39
  %4166 = sext i32 %4165 to i64
  %4167 = getelementptr inbounds %class.aiVector3t, ptr %4161, i64 %4166
  %4168 = load ptr, ptr %418, align 8, !tbaa !5
  %4169 = getelementptr inbounds %struct.aiMesh, ptr %4168, i32 0, i32 4
  %4170 = load ptr, ptr %4169, align 8, !tbaa !75
  %4171 = load i32, ptr %445, align 4, !tbaa !39
  %4172 = zext i32 %4171 to i64
  %4173 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %428, i64 noundef %4172) #10
  %4174 = load i32, ptr %4173, align 4, !tbaa !39
  %4175 = sext i32 %4174 to i64
  %4176 = getelementptr inbounds %class.aiVector3t, ptr %4170, i64 %4175
  %4177 = invoke { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12) %4167, ptr noundef nonnull align 4 dereferenceable(12) %4176)
          to label %4178 unwind label %4210

4178:                                             ; preds = %4158
  store { <2 x float>, float } %4177, ptr %452, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %451, ptr align 8 %452, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %453) #10
  %4179 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %451, i32 noundef 0)
          to label %4180 unwind label %4214

4180:                                             ; preds = %4178
  %4181 = load float, ptr %4179, align 4, !tbaa !57
  %4182 = fpext float %4181 to double
  store double %4182, ptr %453, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef nonnull align 8 dereferenceable(8) %453)
          to label %4183 unwind label %4214

4183:                                             ; preds = %4180
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #10
  %4184 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %451, i32 noundef 1)
          to label %4185 unwind label %4218

4185:                                             ; preds = %4183
  %4186 = load float, ptr %4184, align 4, !tbaa !57
  %4187 = fpext float %4186 to double
  store double %4187, ptr %454, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef nonnull align 8 dereferenceable(8) %454)
          to label %4188 unwind label %4218

4188:                                             ; preds = %4185
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %455) #10
  %4189 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %451, i32 noundef 2)
          to label %4190 unwind label %4222

4190:                                             ; preds = %4188
  %4191 = load float, ptr %4189, align 4, !tbaa !57
  %4192 = fpext float %4191 to double
  store double %4192, ptr %455, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef nonnull align 8 dereferenceable(8) %455)
          to label %4193 unwind label %4222

4193:                                             ; preds = %4190
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %451) #10
  br label %4227

4194:                                             ; preds = %4154, %4135, %4130, %4110
  %4195 = landingpad { ptr, i32 }
          cleanup
  %4196 = extractvalue { ptr, i32 } %4195, 0
  store ptr %4196, ptr %5, align 8
  %4197 = extractvalue { ptr, i32 } %4195, 1
  store i32 %4197, ptr %6, align 4
  br label %4232

4198:                                             ; preds = %4141, %4139
  %4199 = landingpad { ptr, i32 }
          cleanup
  %4200 = extractvalue { ptr, i32 } %4199, 0
  store ptr %4200, ptr %5, align 8
  %4201 = extractvalue { ptr, i32 } %4199, 1
  store i32 %4201, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #10
  br label %4232

4202:                                             ; preds = %4146, %4144
  %4203 = landingpad { ptr, i32 }
          cleanup
  %4204 = extractvalue { ptr, i32 } %4203, 0
  store ptr %4204, ptr %5, align 8
  %4205 = extractvalue { ptr, i32 } %4203, 1
  store i32 %4205, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #10
  br label %4232

4206:                                             ; preds = %4151, %4149
  %4207 = landingpad { ptr, i32 }
          cleanup
  %4208 = extractvalue { ptr, i32 } %4207, 0
  store ptr %4208, ptr %5, align 8
  %4209 = extractvalue { ptr, i32 } %4207, 1
  store i32 %4209, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #10
  br label %4232

4210:                                             ; preds = %4158
  %4211 = landingpad { ptr, i32 }
          cleanup
  %4212 = extractvalue { ptr, i32 } %4211, 0
  store ptr %4212, ptr %5, align 8
  %4213 = extractvalue { ptr, i32 } %4211, 1
  store i32 %4213, ptr %6, align 4
  br label %4226

4214:                                             ; preds = %4180, %4178
  %4215 = landingpad { ptr, i32 }
          cleanup
  %4216 = extractvalue { ptr, i32 } %4215, 0
  store ptr %4216, ptr %5, align 8
  %4217 = extractvalue { ptr, i32 } %4215, 1
  store i32 %4217, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #10
  br label %4226

4218:                                             ; preds = %4185, %4183
  %4219 = landingpad { ptr, i32 }
          cleanup
  %4220 = extractvalue { ptr, i32 } %4219, 0
  store ptr %4220, ptr %5, align 8
  %4221 = extractvalue { ptr, i32 } %4219, 1
  store i32 %4221, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #10
  br label %4226

4222:                                             ; preds = %4190, %4188
  %4223 = landingpad { ptr, i32 }
          cleanup
  %4224 = extractvalue { ptr, i32 } %4223, 0
  store ptr %4224, ptr %5, align 8
  %4225 = extractvalue { ptr, i32 } %4223, 1
  store i32 %4225, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #10
  br label %4226

4226:                                             ; preds = %4222, %4218, %4214, %4210
  call void @llvm.lifetime.end.p0(i64 12, ptr %451) #10
  br label %4232

4227:                                             ; preds = %4193, %4157
  br label %4228

4228:                                             ; preds = %4227, %4132
  call void @llvm.lifetime.end.p0(i64 12, ptr %446) #10
  br label %4229

4229:                                             ; preds = %4228
  %4230 = load i32, ptr %445, align 4, !tbaa !39
  %4231 = add i32 %4230, 1
  store i32 %4231, ptr %445, align 4, !tbaa !39
  br label %4064, !llvm.loop !131

4232:                                             ; preds = %4226, %4206, %4202, %4198, %4194
  call void @llvm.lifetime.end.p0(i64 12, ptr %446) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %445) #10
  br label %4283

4233:                                             ; preds = %4069
  call void @llvm.lifetime.start.p0(i64 32, ptr %456) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %457) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %457) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef @.str.352, ptr noundef nonnull align 1 dereferenceable(1) %457)
          to label %4234 unwind label %4255

4234:                                             ; preds = %4233
  %4235 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4236 = load i8, ptr %4235, align 8, !tbaa !9, !range !37, !noundef !38
  %4237 = trunc i8 %4236 to i1
  %4238 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(24) %442, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4237, i32 noundef %4238)
          to label %4239 unwind label %4259

4239:                                             ; preds = %4234
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %457) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %457) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %458) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %459) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %459) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %458, ptr noundef @.str.268, ptr noundef nonnull align 1 dereferenceable(1) %459)
          to label %4240 unwind label %4264

4240:                                             ; preds = %4239
  %4241 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4242 = load i8, ptr %4241, align 8, !tbaa !9, !range !37, !noundef !38
  %4243 = trunc i8 %4242 to i1
  %4244 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %458, ptr noundef nonnull align 8 dereferenceable(24) %443, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4243, i32 noundef %4244)
          to label %4245 unwind label %4268

4245:                                             ; preds = %4240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %459) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %459) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %458) #10
  %4246 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %444) #10
  %4247 = icmp ugt i64 %4246, 0
  br i1 %4247, label %4248, label %4282

4248:                                             ; preds = %4245
  call void @llvm.lifetime.start.p0(i64 32, ptr %460) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %461) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %461) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef @.str.277, ptr noundef nonnull align 1 dereferenceable(1) %461)
          to label %4249 unwind label %4273

4249:                                             ; preds = %4248
  %4250 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4251 = load i8, ptr %4250, align 8, !tbaa !9, !range !37, !noundef !38
  %4252 = trunc i8 %4251 to i1
  %4253 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(24) %444, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4252, i32 noundef %4253)
          to label %4254 unwind label %4277

4254:                                             ; preds = %4249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %461) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %461) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %460) #10
  br label %4282

4255:                                             ; preds = %4233
  %4256 = landingpad { ptr, i32 }
          cleanup
  %4257 = extractvalue { ptr, i32 } %4256, 0
  store ptr %4257, ptr %5, align 8
  %4258 = extractvalue { ptr, i32 } %4256, 1
  store i32 %4258, ptr %6, align 4
  br label %4263

4259:                                             ; preds = %4234
  %4260 = landingpad { ptr, i32 }
          cleanup
  %4261 = extractvalue { ptr, i32 } %4260, 0
  store ptr %4261, ptr %5, align 8
  %4262 = extractvalue { ptr, i32 } %4260, 1
  store i32 %4262, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #10
  br label %4263

4263:                                             ; preds = %4259, %4255
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %457) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %457) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #10
  br label %4283

4264:                                             ; preds = %4239
  %4265 = landingpad { ptr, i32 }
          cleanup
  %4266 = extractvalue { ptr, i32 } %4265, 0
  store ptr %4266, ptr %5, align 8
  %4267 = extractvalue { ptr, i32 } %4265, 1
  store i32 %4267, ptr %6, align 4
  br label %4272

4268:                                             ; preds = %4240
  %4269 = landingpad { ptr, i32 }
          cleanup
  %4270 = extractvalue { ptr, i32 } %4269, 0
  store ptr %4270, ptr %5, align 8
  %4271 = extractvalue { ptr, i32 } %4269, 1
  store i32 %4271, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #10
  br label %4272

4272:                                             ; preds = %4268, %4264
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %459) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %459) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %458) #10
  br label %4283

4273:                                             ; preds = %4248
  %4274 = landingpad { ptr, i32 }
          cleanup
  %4275 = extractvalue { ptr, i32 } %4274, 0
  store ptr %4275, ptr %5, align 8
  %4276 = extractvalue { ptr, i32 } %4274, 1
  store i32 %4276, ptr %6, align 4
  br label %4281

4277:                                             ; preds = %4249
  %4278 = landingpad { ptr, i32 }
          cleanup
  %4279 = extractvalue { ptr, i32 } %4278, 0
  store ptr %4279, ptr %5, align 8
  %4280 = extractvalue { ptr, i32 } %4278, 1
  store i32 %4280, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #10
  br label %4281

4281:                                             ; preds = %4277, %4273
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %461) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %461) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %460) #10
  br label %4283

4282:                                             ; preds = %4254, %4245
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %444) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %444) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %443) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %443) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %442) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %442) #10
  br label %4284

4283:                                             ; preds = %4281, %4272, %4263, %4232
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %444) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %444) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %443) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %443) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %442) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %442) #10
  br label %4414

4284:                                             ; preds = %4282, %4062
  %4285 = load i32, ptr %12, align 4, !tbaa !39
  %4286 = add nsw i32 %4285, -1
  store i32 %4286, ptr %12, align 4, !tbaa !39
  %4287 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4288 = load i8, ptr %4287, align 8, !tbaa !9, !range !37, !noundef !38
  %4289 = trunc i8 %4288 to i1
  %4290 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %433, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4289, i32 noundef %4290, i1 noundef zeroext true)
          to label %4291 unwind label %4083

4291:                                             ; preds = %4284
  call void @llvm.lifetime.start.p0(i64 112, ptr %462) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %463) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %464) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %464)
          to label %4292 unwind label %4325

4292:                                             ; preds = %4291
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(32) %463)
          to label %4293 unwind label %4329

4293:                                             ; preds = %4292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %464) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %463) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %465) #10
  %4294 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %4295 unwind label %4334

4295:                                             ; preds = %4293
  store i64 %4294, ptr %465, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %466) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %467) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %467, ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %4296 unwind label %4338

4296:                                             ; preds = %4295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %466, ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef @.str.353)
          to label %4297 unwind label %4342

4297:                                             ; preds = %4296
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA18_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(32) %466, ptr noundef nonnull align 1 dereferenceable(18) @.str.354)
          to label %4298 unwind label %4346

4298:                                             ; preds = %4297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %467) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %468) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %469) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %469)
          to label %4299 unwind label %4352

4299:                                             ; preds = %4298
  call void @llvm.lifetime.start.p0(i64 4, ptr %470) #10
  store i32 100, ptr %470, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(32) %468, ptr noundef nonnull align 4 dereferenceable(4) %470)
          to label %4300 unwind label %4356

4300:                                             ; preds = %4299
  call void @llvm.lifetime.end.p0(i64 4, ptr %470) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %469) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %468) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %471) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %472) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %472) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %471, ptr noundef @.str.355, ptr noundef nonnull align 1 dereferenceable(1) %472)
          to label %4301 unwind label %4361

4301:                                             ; preds = %4300
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #10
  store float 0.000000e+00, ptr %473, align 4, !tbaa !57
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJfEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(32) %471, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %4302 unwind label %4365

4302:                                             ; preds = %4301
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %471) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %472) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %472) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %471) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %474) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %475) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %476) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %476) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %475, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %476)
          to label %4303 unwind label %4370

4303:                                             ; preds = %4302
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %474, ptr noundef nonnull align 8 dereferenceable(32) %475)
          to label %4304 unwind label %4374

4304:                                             ; preds = %4303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %475) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %476) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %476) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %475) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %477) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %478) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %477, ptr noundef @.str.355, ptr noundef nonnull align 1 dereferenceable(1) %478)
          to label %4305 unwind label %4379

4305:                                             ; preds = %4304
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %474, ptr noundef nonnull align 8 dereferenceable(32) %477, double noundef 0.000000e+00)
          to label %4306 unwind label %4383

4306:                                             ; preds = %4305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %478) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %477) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(112) %474)
          to label %4307 unwind label %4388

4307:                                             ; preds = %4306
  call void @llvm.lifetime.start.p0(i64 24, ptr %479) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %479) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %480) #10
  store double 1.000000e+02, ptr %480, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %479, ptr noundef nonnull align 8 dereferenceable(8) %480)
          to label %4308 unwind label %4392

4308:                                             ; preds = %4307
  call void @llvm.lifetime.end.p0(i64 8, ptr %480) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %481) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %482) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %481, ptr noundef @.str.356, ptr noundef nonnull align 1 dereferenceable(1) %482)
          to label %4309 unwind label %4396

4309:                                             ; preds = %4308
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIdSaIdEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(32) %481, ptr noundef nonnull align 8 dereferenceable(24) %479)
          to label %4310 unwind label %4400

4310:                                             ; preds = %4309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %481) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %482) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %481) #10
  %4311 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4312 = load i8, ptr %4311, align 8, !tbaa !9, !range !37, !noundef !38
  %4313 = trunc i8 %4312 to i1
  %4314 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %462, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4313, i32 noundef %4314)
          to label %4315 unwind label %4405

4315:                                             ; preds = %4310
  %4316 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %4317 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %4316, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(8) %419)
          to label %4318 unwind label %4405

4318:                                             ; preds = %4315
  %4319 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %4320 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlRKlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %4319, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull align 8 dereferenceable(8) %465)
          to label %4321 unwind label %4405

4321:                                             ; preds = %4318
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %479) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %479) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %474) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %474) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %462) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %462) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %436) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %433) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %433) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %431) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %430) #10
  br label %4322

4322:                                             ; preds = %4321
  %4323 = load i32, ptr %429, align 4, !tbaa !39
  %4324 = add i32 %4323, 1
  store i32 %4324, ptr %429, align 4, !tbaa !39
  br label %3961, !llvm.loop !132

4325:                                             ; preds = %4291
  %4326 = landingpad { ptr, i32 }
          cleanup
  %4327 = extractvalue { ptr, i32 } %4326, 0
  store ptr %4327, ptr %5, align 8
  %4328 = extractvalue { ptr, i32 } %4326, 1
  store i32 %4328, ptr %6, align 4
  br label %4333

4329:                                             ; preds = %4292
  %4330 = landingpad { ptr, i32 }
          cleanup
  %4331 = extractvalue { ptr, i32 } %4330, 0
  store ptr %4331, ptr %5, align 8
  %4332 = extractvalue { ptr, i32 } %4330, 1
  store i32 %4332, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #10
  br label %4333

4333:                                             ; preds = %4329, %4325
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %464) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %463) #10
  br label %4413

4334:                                             ; preds = %4293
  %4335 = landingpad { ptr, i32 }
          cleanup
  %4336 = extractvalue { ptr, i32 } %4335, 0
  store ptr %4336, ptr %5, align 8
  %4337 = extractvalue { ptr, i32 } %4335, 1
  store i32 %4337, ptr %6, align 4
  br label %4412

4338:                                             ; preds = %4295
  %4339 = landingpad { ptr, i32 }
          cleanup
  %4340 = extractvalue { ptr, i32 } %4339, 0
  store ptr %4340, ptr %5, align 8
  %4341 = extractvalue { ptr, i32 } %4339, 1
  store i32 %4341, ptr %6, align 4
  br label %4351

4342:                                             ; preds = %4296
  %4343 = landingpad { ptr, i32 }
          cleanup
  %4344 = extractvalue { ptr, i32 } %4343, 0
  store ptr %4344, ptr %5, align 8
  %4345 = extractvalue { ptr, i32 } %4343, 1
  store i32 %4345, ptr %6, align 4
  br label %4350

4346:                                             ; preds = %4297
  %4347 = landingpad { ptr, i32 }
          cleanup
  %4348 = extractvalue { ptr, i32 } %4347, 0
  store ptr %4348, ptr %5, align 8
  %4349 = extractvalue { ptr, i32 } %4347, 1
  store i32 %4349, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %466) #10
  br label %4350

4350:                                             ; preds = %4346, %4342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #10
  br label %4351

4351:                                             ; preds = %4350, %4338
  call void @llvm.lifetime.end.p0(i64 32, ptr %467) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %466) #10
  br label %4412

4352:                                             ; preds = %4298
  %4353 = landingpad { ptr, i32 }
          cleanup
  %4354 = extractvalue { ptr, i32 } %4353, 0
  store ptr %4354, ptr %5, align 8
  %4355 = extractvalue { ptr, i32 } %4353, 1
  store i32 %4355, ptr %6, align 4
  br label %4360

4356:                                             ; preds = %4299
  %4357 = landingpad { ptr, i32 }
          cleanup
  %4358 = extractvalue { ptr, i32 } %4357, 0
  store ptr %4358, ptr %5, align 8
  %4359 = extractvalue { ptr, i32 } %4357, 1
  store i32 %4359, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %470) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %468) #10
  br label %4360

4360:                                             ; preds = %4356, %4352
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %469) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %469) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %468) #10
  br label %4412

4361:                                             ; preds = %4300
  %4362 = landingpad { ptr, i32 }
          cleanup
  %4363 = extractvalue { ptr, i32 } %4362, 0
  store ptr %4363, ptr %5, align 8
  %4364 = extractvalue { ptr, i32 } %4362, 1
  store i32 %4364, ptr %6, align 4
  br label %4369

4365:                                             ; preds = %4301
  %4366 = landingpad { ptr, i32 }
          cleanup
  %4367 = extractvalue { ptr, i32 } %4366, 0
  store ptr %4367, ptr %5, align 8
  %4368 = extractvalue { ptr, i32 } %4366, 1
  store i32 %4368, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %471) #10
  br label %4369

4369:                                             ; preds = %4365, %4361
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %472) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %472) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %471) #10
  br label %4412

4370:                                             ; preds = %4302
  %4371 = landingpad { ptr, i32 }
          cleanup
  %4372 = extractvalue { ptr, i32 } %4371, 0
  store ptr %4372, ptr %5, align 8
  %4373 = extractvalue { ptr, i32 } %4371, 1
  store i32 %4373, ptr %6, align 4
  br label %4378

4374:                                             ; preds = %4303
  %4375 = landingpad { ptr, i32 }
          cleanup
  %4376 = extractvalue { ptr, i32 } %4375, 0
  store ptr %4376, ptr %5, align 8
  %4377 = extractvalue { ptr, i32 } %4375, 1
  store i32 %4377, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %475) #10
  br label %4378

4378:                                             ; preds = %4374, %4370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %476) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %476) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %475) #10
  br label %4411

4379:                                             ; preds = %4304
  %4380 = landingpad { ptr, i32 }
          cleanup
  %4381 = extractvalue { ptr, i32 } %4380, 0
  store ptr %4381, ptr %5, align 8
  %4382 = extractvalue { ptr, i32 } %4380, 1
  store i32 %4382, ptr %6, align 4
  br label %4387

4383:                                             ; preds = %4305
  %4384 = landingpad { ptr, i32 }
          cleanup
  %4385 = extractvalue { ptr, i32 } %4384, 0
  store ptr %4385, ptr %5, align 8
  %4386 = extractvalue { ptr, i32 } %4384, 1
  store i32 %4386, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #10
  br label %4387

4387:                                             ; preds = %4383, %4379
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %478) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %477) #10
  br label %4410

4388:                                             ; preds = %4306
  %4389 = landingpad { ptr, i32 }
          cleanup
  %4390 = extractvalue { ptr, i32 } %4389, 0
  store ptr %4390, ptr %5, align 8
  %4391 = extractvalue { ptr, i32 } %4389, 1
  store i32 %4391, ptr %6, align 4
  br label %4410

4392:                                             ; preds = %4307
  %4393 = landingpad { ptr, i32 }
          cleanup
  %4394 = extractvalue { ptr, i32 } %4393, 0
  store ptr %4394, ptr %5, align 8
  %4395 = extractvalue { ptr, i32 } %4393, 1
  store i32 %4395, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %480) #10
  br label %4409

4396:                                             ; preds = %4308
  %4397 = landingpad { ptr, i32 }
          cleanup
  %4398 = extractvalue { ptr, i32 } %4397, 0
  store ptr %4398, ptr %5, align 8
  %4399 = extractvalue { ptr, i32 } %4397, 1
  store i32 %4399, ptr %6, align 4
  br label %4404

4400:                                             ; preds = %4309
  %4401 = landingpad { ptr, i32 }
          cleanup
  %4402 = extractvalue { ptr, i32 } %4401, 0
  store ptr %4402, ptr %5, align 8
  %4403 = extractvalue { ptr, i32 } %4401, 1
  store i32 %4403, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %481) #10
  br label %4404

4404:                                             ; preds = %4400, %4396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %482) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %482) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %481) #10
  br label %4409

4405:                                             ; preds = %4318, %4315, %4310
  %4406 = landingpad { ptr, i32 }
          cleanup
  %4407 = extractvalue { ptr, i32 } %4406, 0
  store ptr %4407, ptr %5, align 8
  %4408 = extractvalue { ptr, i32 } %4406, 1
  store i32 %4408, ptr %6, align 4
  br label %4409

4409:                                             ; preds = %4405, %4404, %4392
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %479) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %479) #10
  br label %4410

4410:                                             ; preds = %4409, %4388, %4387
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %474) #10
  br label %4411

4411:                                             ; preds = %4410, %4378
  call void @llvm.lifetime.end.p0(i64 112, ptr %474) #10
  br label %4412

4412:                                             ; preds = %4411, %4369, %4360, %4351, %4334
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %462) #10
  br label %4413

4413:                                             ; preds = %4412, %4333
  call void @llvm.lifetime.end.p0(i64 112, ptr %462) #10
  br label %4414

4414:                                             ; preds = %4413, %4283, %4109, %4100, %4083
  call void @llvm.lifetime.end.p0(i64 8, ptr %436) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %433) #10
  br label %4415

4415:                                             ; preds = %4414, %4082
  call void @llvm.lifetime.end.p0(i64 112, ptr %433) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #10
  br label %4416

4416:                                             ; preds = %4415, %4070
  call void @llvm.lifetime.end.p0(i64 32, ptr %431) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %430) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %429) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %428) #10
  br label %4424

4417:                                             ; preds = %3967
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %428) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %428) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %420) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %420) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #10
  store i32 0, ptr %17, align 4
  br label %4418

4418:                                             ; preds = %4417, %3932
  call void @llvm.lifetime.end.p0(i64 8, ptr %418) #10
  %4419 = load i32, ptr %17, align 4
  switch i32 %4419, label %6497 [
    i32 0, label %4420
    i32 72, label %4421
  ]

4420:                                             ; preds = %4418
  br label %4421

4421:                                             ; preds = %4420, %4418
  %4422 = load i64, ptr %417, align 8, !tbaa !43
  %4423 = add i64 %4422, 1
  store i64 %4423, ptr %417, align 8, !tbaa !43
  br label %3911, !llvm.loop !133

4424:                                             ; preds = %4416, %4008
  call void @llvm.lifetime.end.p0(i64 24, ptr %428) #10
  br label %4425

4425:                                             ; preds = %4424, %4004, %4003, %3994
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %420) #10
  br label %4426

4426:                                             ; preds = %4425, %3980
  call void @llvm.lifetime.end.p0(i64 112, ptr %420) #10
  br label %4427

4427:                                             ; preds = %4426, %3968
  call void @llvm.lifetime.end.p0(i64 8, ptr %419) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %418) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #10
  br label %6484

4428:                                             ; preds = %3919
  call void @llvm.lifetime.start.p0(i64 24, ptr %483) #10
  %4429 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4430 = load ptr, ptr %4429, align 8, !tbaa !44
  %4431 = getelementptr inbounds %struct.aiScene, ptr %4430, i32 0, i32 2
  %4432 = load i32, ptr %4431, align 8, !tbaa !45
  %4433 = zext i32 %4432 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %484) #10
  call void @_ZNSaISt6vectorIPK6aiNodeSaIS2_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #10
  invoke void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEC2EmRKS5_(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %4433, ptr noundef nonnull align 1 dereferenceable(1) %484)
          to label %4434 unwind label %4443

4434:                                             ; preds = %4428
  call void @_ZNSt15__new_allocatorISt6vectorIPK6aiNodeSaIS3_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %484) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr %485) #10
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %485) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %486) #10
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %487) #10
  store i32 0, ptr %487, align 4, !tbaa !39
  br label %4435

4435:                                             ; preds = %4489, %4434
  %4436 = load i32, ptr %487, align 4, !tbaa !39
  %4437 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4438 = load ptr, ptr %4437, align 8, !tbaa !44
  %4439 = getelementptr inbounds %struct.aiScene, ptr %4438, i32 0, i32 2
  %4440 = load i32, ptr %4439, align 8, !tbaa !45
  %4441 = icmp ult i32 %4436, %4440
  br i1 %4441, label %4447, label %4442

4442:                                             ; preds = %4435
  store i32 79, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #10
  br label %4492

4443:                                             ; preds = %4428
  %4444 = landingpad { ptr, i32 }
          cleanup
  %4445 = extractvalue { ptr, i32 } %4444, 0
  store ptr %4445, ptr %5, align 8
  %4446 = extractvalue { ptr, i32 } %4444, 1
  store i32 %4446, ptr %6, align 4
  call void @_ZNSt15__new_allocatorISt6vectorIPK6aiNodeSaIS3_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %484) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %484) #10
  br label %6483

4447:                                             ; preds = %4435
  call void @llvm.lifetime.start.p0(i64 8, ptr %488) #10
  %4448 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4449 = load ptr, ptr %4448, align 8, !tbaa !44
  %4450 = getelementptr inbounds %struct.aiScene, ptr %4449, i32 0, i32 3
  %4451 = load ptr, ptr %4450, align 8, !tbaa !48
  %4452 = load i32, ptr %487, align 4, !tbaa !39
  %4453 = zext i32 %4452 to i64
  %4454 = getelementptr inbounds ptr, ptr %4451, i64 %4453
  %4455 = load ptr, ptr %4454, align 8, !tbaa !5
  store ptr %4455, ptr %488, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %489) #10
  store i32 0, ptr %489, align 4, !tbaa !39
  br label %4456

4456:                                             ; preds = %4476, %4447
  %4457 = load i32, ptr %489, align 4, !tbaa !39
  %4458 = load ptr, ptr %488, align 8, !tbaa !5
  %4459 = getelementptr inbounds %struct.aiMesh, ptr %4458, i32 0, i32 11
  %4460 = load i32, ptr %4459, align 8, !tbaa !134
  %4461 = icmp ult i32 %4457, %4460
  br i1 %4461, label %4463, label %4462

4462:                                             ; preds = %4456
  store i32 82, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %489) #10
  br label %4488

4463:                                             ; preds = %4456
  call void @llvm.lifetime.start.p0(i64 32, ptr %490) #10
  %4464 = load ptr, ptr %488, align 8, !tbaa !5
  %4465 = getelementptr inbounds %struct.aiMesh, ptr %4464, i32 0, i32 12
  %4466 = load ptr, ptr %4465, align 8, !tbaa !135
  %4467 = load i32, ptr %489, align 4, !tbaa !39
  %4468 = zext i32 %4467 to i64
  %4469 = getelementptr inbounds ptr, ptr %4466, i64 %4468
  %4470 = load ptr, ptr %4469, align 8, !tbaa !5
  %4471 = getelementptr inbounds %struct.aiBone, ptr %4470, i32 0, i32 0
  %4472 = getelementptr inbounds %struct.aiString, ptr %4471, i32 0, i32 1
  %4473 = getelementptr inbounds [1024 x i8], ptr %4472, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 1, ptr %491) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef %4473, ptr noundef nonnull align 1 dereferenceable(1) %491)
          to label %4474 unwind label %4479

4474:                                             ; preds = %4463
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %486, ptr noundef nonnull align 8 dereferenceable(32) %490)
          to label %4475 unwind label %4483

4475:                                             ; preds = %4474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %490) #10
  br label %4476

4476:                                             ; preds = %4475
  %4477 = load i32, ptr %489, align 4, !tbaa !39
  %4478 = add i32 %4477, 1
  store i32 %4478, ptr %489, align 4, !tbaa !39
  br label %4456, !llvm.loop !136

4479:                                             ; preds = %4463
  %4480 = landingpad { ptr, i32 }
          cleanup
  %4481 = extractvalue { ptr, i32 } %4480, 0
  store ptr %4481, ptr %5, align 8
  %4482 = extractvalue { ptr, i32 } %4480, 1
  store i32 %4482, ptr %6, align 4
  br label %4487

4483:                                             ; preds = %4474
  %4484 = landingpad { ptr, i32 }
          cleanup
  %4485 = extractvalue { ptr, i32 } %4484, 0
  store ptr %4485, ptr %5, align 8
  %4486 = extractvalue { ptr, i32 } %4484, 1
  store i32 %4486, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #10
  br label %4487

4487:                                             ; preds = %4483, %4479
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %490) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %489) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %488) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %487) #10
  br label %6482

4488:                                             ; preds = %4462
  call void @llvm.lifetime.end.p0(i64 8, ptr %488) #10
  br label %4489

4489:                                             ; preds = %4488
  %4490 = load i32, ptr %487, align 4, !tbaa !39
  %4491 = add i32 %4490, 1
  store i32 %4491, ptr %487, align 4, !tbaa !39
  br label %4435, !llvm.loop !137

4492:                                             ; preds = %4442
  call void @llvm.lifetime.start.p0(i64 64, ptr %492) #10
  call void @_ZN12aiMatrix4x4tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(64) %492) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %493) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %493) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %494) #10
  store i64 0, ptr %494, align 8, !tbaa !43
  br label %4493

4493:                                             ; preds = %4803, %4492
  %4494 = load i64, ptr %494, align 8, !tbaa !43
  %4495 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4496 = load ptr, ptr %4495, align 8, !tbaa !44
  %4497 = getelementptr inbounds %struct.aiScene, ptr %4496, i32 0, i32 2
  %4498 = load i32, ptr %4497, align 8, !tbaa !45
  %4499 = zext i32 %4498 to i64
  %4500 = icmp ult i64 %4494, %4499
  br i1 %4500, label %4502, label %4501

4501:                                             ; preds = %4493
  store i32 85, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %494) #10
  br label %4811

4502:                                             ; preds = %4493
  call void @llvm.lifetime.start.p0(i64 8, ptr %495) #10
  %4503 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4504 = load ptr, ptr %4503, align 8, !tbaa !44
  %4505 = getelementptr inbounds %struct.aiScene, ptr %4504, i32 0, i32 3
  %4506 = load ptr, ptr %4505, align 8, !tbaa !48
  %4507 = load i64, ptr %494, align 8, !tbaa !43
  %4508 = getelementptr inbounds ptr, ptr %4506, i64 %4507
  %4509 = load ptr, ptr %4508, align 8, !tbaa !5
  store ptr %4509, ptr %495, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %496) #10
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %497) #10
  store i64 0, ptr %497, align 8, !tbaa !43
  br label %4510

4510:                                             ; preds = %4792, %4502
  %4511 = load i64, ptr %497, align 8, !tbaa !43
  %4512 = load ptr, ptr %495, align 8, !tbaa !5
  %4513 = getelementptr inbounds %struct.aiMesh, ptr %4512, i32 0, i32 11
  %4514 = load i32, ptr %4513, align 8, !tbaa !134
  %4515 = zext i32 %4514 to i64
  %4516 = icmp ult i64 %4511, %4515
  br i1 %4516, label %4518, label %4517

4517:                                             ; preds = %4510
  store i32 88, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %497) #10
  br label %4798

4518:                                             ; preds = %4510
  call void @llvm.lifetime.start.p0(i64 8, ptr %498) #10
  %4519 = load ptr, ptr %495, align 8, !tbaa !5
  %4520 = getelementptr inbounds %struct.aiMesh, ptr %4519, i32 0, i32 12
  %4521 = load ptr, ptr %4520, align 8, !tbaa !135
  %4522 = load i64, ptr %497, align 8, !tbaa !43
  %4523 = getelementptr inbounds ptr, ptr %4521, i64 %4522
  %4524 = load ptr, ptr %4523, align 8, !tbaa !5
  store ptr %4524, ptr %498, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %499) #10
  %4525 = load ptr, ptr %498, align 8, !tbaa !5
  %4526 = getelementptr inbounds %struct.aiBone, ptr %4525, i32 0, i32 0
  %4527 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %4526)
          to label %4528 unwind label %4540

4528:                                             ; preds = %4518
  call void @llvm.lifetime.start.p0(i64 1, ptr %500) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %499, ptr noundef %4527, ptr noundef nonnull align 1 dereferenceable(1) %500)
          to label %4529 unwind label %4544

4529:                                             ; preds = %4528
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %500) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %501) #10
  %4530 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %493, ptr noundef nonnull align 8 dereferenceable(32) %499)
          to label %4531 unwind label %4548

4531:                                             ; preds = %4529
  %4532 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.155", ptr %501, i32 0, i32 0
  store ptr %4530, ptr %4532, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %502) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %503) #10
  %4533 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %493) #10
  %4534 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.155", ptr %503, i32 0, i32 0
  store ptr %4533, ptr %4534, align 8
  %4535 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeEESD_(ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef nonnull align 8 dereferenceable(8) %503) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %503) #10
  br i1 %4535, label %4536, label %4552

4536:                                             ; preds = %4531
  %4537 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %501) #10
  %4538 = getelementptr inbounds %"struct.std::pair.156", ptr %4537, i32 0, i32 1
  %4539 = load ptr, ptr %4538, align 8, !tbaa !138
  store ptr %4539, ptr %502, align 8, !tbaa !5
  br label %4611

4540:                                             ; preds = %4518
  %4541 = landingpad { ptr, i32 }
          cleanup
  %4542 = extractvalue { ptr, i32 } %4541, 0
  store ptr %4542, ptr %5, align 8
  %4543 = extractvalue { ptr, i32 } %4541, 1
  store i32 %4543, ptr %6, align 4
  br label %4797

4544:                                             ; preds = %4528
  %4545 = landingpad { ptr, i32 }
          cleanup
  %4546 = extractvalue { ptr, i32 } %4545, 0
  store ptr %4546, ptr %5, align 8
  %4547 = extractvalue { ptr, i32 } %4545, 1
  store i32 %4547, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %500) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %500) #10
  br label %4797

4548:                                             ; preds = %4529
  %4549 = landingpad { ptr, i32 }
          cleanup
  %4550 = extractvalue { ptr, i32 } %4549, 0
  store ptr %4550, ptr %5, align 8
  %4551 = extractvalue { ptr, i32 } %4549, 1
  store i32 %4551, ptr %6, align 4
  br label %4796

4552:                                             ; preds = %4531
  %4553 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4554 = load ptr, ptr %4553, align 8, !tbaa !44
  %4555 = getelementptr inbounds %struct.aiScene, ptr %4554, i32 0, i32 1
  %4556 = load ptr, ptr %4555, align 8, !tbaa !140
  %4557 = load ptr, ptr %498, align 8, !tbaa !5
  %4558 = getelementptr inbounds %struct.aiBone, ptr %4557, i32 0, i32 0
  %4559 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %4556, ptr noundef nonnull align 4 dereferenceable(1028) %4558)
          to label %4560 unwind label %4575

4560:                                             ; preds = %4552
  store ptr %4559, ptr %502, align 8, !tbaa !5
  %4561 = load ptr, ptr %502, align 8, !tbaa !5
  %4562 = icmp ne ptr %4561, null
  br i1 %4562, label %4601, label %4563

4563:                                             ; preds = %4560
  call void @llvm.lifetime.start.p0(i64 392, ptr %504) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %504)
          to label %4564 unwind label %4579

4564:                                             ; preds = %4563
  %4565 = getelementptr inbounds i8, ptr %504, i64 16
  %4566 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4565, ptr noundef @.str.357)
          to label %4567 unwind label %4583

4567:                                             ; preds = %4564
  %4568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %4566, ptr noundef nonnull align 8 dereferenceable(32) %499)
          to label %4569 unwind label %4583

4569:                                             ; preds = %4567
  %4570 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4568, ptr noundef @.str.332)
          to label %4571 unwind label %4583

4571:                                             ; preds = %4569
  store i1 true, ptr %506, align 1
  %4572 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %505) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %505, ptr noundef nonnull align 8 dereferenceable(128) %504)
          to label %4573 unwind label %4587

4573:                                             ; preds = %4571
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %4572, ptr noundef nonnull align 8 dereferenceable(32) %505)
          to label %4574 unwind label %4591

4574:                                             ; preds = %4573
  store i1 false, ptr %506, align 1
  invoke void @__cxa_throw(ptr %4572, ptr @_ZTI17DeadlyExportError, ptr @_ZNSt13runtime_errorD2Ev) #11
          to label %6497 unwind label %4591

4575:                                             ; preds = %4611, %4604, %4601, %4552
  %4576 = landingpad { ptr, i32 }
          cleanup
  %4577 = extractvalue { ptr, i32 } %4576, 0
  store ptr %4577, ptr %5, align 8
  %4578 = extractvalue { ptr, i32 } %4576, 1
  store i32 %4578, ptr %6, align 4
  br label %4795

4579:                                             ; preds = %4563
  %4580 = landingpad { ptr, i32 }
          cleanup
  %4581 = extractvalue { ptr, i32 } %4580, 0
  store ptr %4581, ptr %5, align 8
  %4582 = extractvalue { ptr, i32 } %4580, 1
  store i32 %4582, ptr %6, align 4
  br label %4600

4583:                                             ; preds = %4569, %4567, %4564
  %4584 = landingpad { ptr, i32 }
          cleanup
  %4585 = extractvalue { ptr, i32 } %4584, 0
  store ptr %4585, ptr %5, align 8
  %4586 = extractvalue { ptr, i32 } %4584, 1
  store i32 %4586, ptr %6, align 4
  br label %4599

4587:                                             ; preds = %4571
  %4588 = landingpad { ptr, i32 }
          cleanup
  %4589 = extractvalue { ptr, i32 } %4588, 0
  store ptr %4589, ptr %5, align 8
  %4590 = extractvalue { ptr, i32 } %4588, 1
  store i32 %4590, ptr %6, align 4
  br label %4595

4591:                                             ; preds = %4574, %4573
  %4592 = landingpad { ptr, i32 }
          cleanup
  %4593 = extractvalue { ptr, i32 } %4592, 0
  store ptr %4593, ptr %5, align 8
  %4594 = extractvalue { ptr, i32 } %4592, 1
  store i32 %4594, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %505) #10
  br label %4595

4595:                                             ; preds = %4591, %4587
  call void @llvm.lifetime.end.p0(i64 32, ptr %505) #10
  %4596 = load i1, ptr %506, align 1
  br i1 %4596, label %4597, label %4598

4597:                                             ; preds = %4595
  call void @__cxa_free_exception(ptr %4572) #10
  br label %4598

4598:                                             ; preds = %4597, %4595
  br label %4599

4599:                                             ; preds = %4598, %4583
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %504) #10
  br label %4600

4600:                                             ; preds = %4599, %4579
  call void @llvm.lifetime.end.p0(i64 392, ptr %504) #10
  br label %4795

4601:                                             ; preds = %4560
  %4602 = load ptr, ptr %502, align 8, !tbaa !5
  %4603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %493, ptr noundef nonnull align 8 dereferenceable(32) %499)
          to label %4604 unwind label %4575

4604:                                             ; preds = %4601
  store ptr %4602, ptr %4603, align 8, !tbaa !5
  %4605 = invoke { ptr, i8 } @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %485, ptr noundef nonnull align 8 dereferenceable(8) %502)
          to label %4606 unwind label %4575

4606:                                             ; preds = %4604
  %4607 = getelementptr inbounds { ptr, i8 }, ptr %507, i32 0, i32 0
  %4608 = extractvalue { ptr, i8 } %4605, 0
  store ptr %4608, ptr %4607, align 8
  %4609 = getelementptr inbounds { ptr, i8 }, ptr %507, i32 0, i32 1
  %4610 = extractvalue { ptr, i8 } %4605, 1
  store i8 %4610, ptr %4609, align 8
  br label %4611

4611:                                             ; preds = %4606, %4536
  invoke void @_ZNSt6vectorIPK6aiNodeSaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %496, ptr noundef nonnull align 8 dereferenceable(8) %502)
          to label %4612 unwind label %4575

4612:                                             ; preds = %4611
  call void @llvm.lifetime.start.p0(i64 8, ptr %508) #10
  %4613 = load ptr, ptr %502, align 8, !tbaa !5
  %4614 = getelementptr inbounds %struct.aiNode, ptr %4613, i32 0, i32 2
  %4615 = load ptr, ptr %4614, align 8, !tbaa !141
  store ptr %4615, ptr %508, align 8, !tbaa !5
  br label %4616

4616:                                             ; preds = %4784, %4612
  %4617 = load ptr, ptr %508, align 8, !tbaa !5
  %4618 = icmp ne ptr %4617, null
  br i1 %4618, label %4619, label %4626

4619:                                             ; preds = %4616
  %4620 = load ptr, ptr %508, align 8, !tbaa !5
  %4621 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4622 = load ptr, ptr %4621, align 8, !tbaa !44
  %4623 = getelementptr inbounds %struct.aiScene, ptr %4622, i32 0, i32 1
  %4624 = load ptr, ptr %4623, align 8, !tbaa !140
  %4625 = icmp ne ptr %4620, %4624
  br label %4626

4626:                                             ; preds = %4619, %4616
  %4627 = phi i1 [ false, %4616 ], [ %4625, %4619 ]
  br i1 %4627, label %4629, label %4628

4628:                                             ; preds = %4626
  store i32 91, ptr %17, align 4
  br label %4789

4629:                                             ; preds = %4626
  call void @llvm.lifetime.start.p0(i64 8, ptr %509) #10
  %4630 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  %4631 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %510, i32 0, i32 0
  store ptr %4630, ptr %4631, align 8
  %4632 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  %4633 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %511, i32 0, i32 0
  store ptr %4632, ptr %4633, align 8
  %4634 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %510, i32 0, i32 0
  %4635 = load ptr, ptr %4634, align 8
  %4636 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %511, i32 0, i32 0
  %4637 = load ptr, ptr %4636, align 8
  %4638 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS4_SaIS4_EEEES4_ET_SA_SA_RKT0_(ptr %4635, ptr %4637, ptr noundef nonnull align 8 dereferenceable(8) %508)
          to label %4639 unwind label %4645

4639:                                             ; preds = %4629
  %4640 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %509, i32 0, i32 0
  store ptr %4638, ptr %4640, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %512) #10
  %4641 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  %4642 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %512, i32 0, i32 0
  store ptr %4641, ptr %4642, align 8
  %4643 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull align 8 dereferenceable(8) %512) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %512) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %509) #10
  br i1 %4643, label %4644, label %4649

4644:                                             ; preds = %4639
  store i32 91, ptr %17, align 4
  br label %4789

4645:                                             ; preds = %4629
  %4646 = landingpad { ptr, i32 }
          cleanup
  %4647 = extractvalue { ptr, i32 } %4646, 0
  store ptr %4647, ptr %5, align 8
  %4648 = extractvalue { ptr, i32 } %4646, 1
  store i32 %4648, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %509) #10
  br label %4790

4649:                                             ; preds = %4639
  call void @llvm.lifetime.start.p0(i64 32, ptr %513) #10
  %4650 = load ptr, ptr %508, align 8, !tbaa !5
  %4651 = getelementptr inbounds %struct.aiNode, ptr %4650, i32 0, i32 0
  %4652 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %4651)
          to label %4653 unwind label %4658

4653:                                             ; preds = %4649
  call void @llvm.lifetime.start.p0(i64 1, ptr %514) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef %4652, ptr noundef nonnull align 1 dereferenceable(1) %514)
          to label %4654 unwind label %4662

4654:                                             ; preds = %4653
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %514) #10
  %4655 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL14MAGIC_NODE_TAGB5cxx11E, i64 noundef 0) #10
  %4656 = icmp ne i64 %4655, -1
  br i1 %4656, label %4657, label %4666

4657:                                             ; preds = %4654
  store i32 93, ptr %17, align 4
  br label %4781

4658:                                             ; preds = %4649
  %4659 = landingpad { ptr, i32 }
          cleanup
  %4660 = extractvalue { ptr, i32 } %4659, 0
  store ptr %4660, ptr %5, align 8
  %4661 = extractvalue { ptr, i32 } %4659, 1
  store i32 %4661, ptr %6, align 4
  br label %4788

4662:                                             ; preds = %4653
  %4663 = landingpad { ptr, i32 }
          cleanup
  %4664 = extractvalue { ptr, i32 } %4663, 0
  store ptr %4664, ptr %5, align 8
  %4665 = extractvalue { ptr, i32 } %4663, 1
  store i32 %4665, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %514) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %514) #10
  br label %4788

4666:                                             ; preds = %4654
  call void @llvm.lifetime.start.p0(i64 8, ptr %515) #10
  %4667 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  %4668 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %516, i32 0, i32 0
  store ptr %4667, ptr %4668, align 8
  %4669 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  %4670 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %517, i32 0, i32 0
  store ptr %4669, ptr %4670, align 8
  %4671 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %516, i32 0, i32 0
  %4672 = load ptr, ptr %4671, align 8
  %4673 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %517, i32 0, i32 0
  %4674 = load ptr, ptr %4673, align 8
  %4675 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %4672, ptr %4674, ptr noundef nonnull align 8 dereferenceable(32) %513)
          to label %4676 unwind label %4689

4676:                                             ; preds = %4666
  %4677 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %515, i32 0, i32 0
  store ptr %4675, ptr %4677, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %518) #10
  %4678 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  %4679 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.163", ptr %518, i32 0, i32 0
  store ptr %4678, ptr %4679, align 8
  %4680 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %515, ptr noundef nonnull align 8 dereferenceable(8) %518) #10
  br i1 %4680, label %4681, label %4686

4681:                                             ; preds = %4676
  %4682 = load ptr, ptr %508, align 8, !tbaa !5
  %4683 = getelementptr inbounds %struct.aiNode, ptr %4682, i32 0, i32 1
  %4684 = invoke noundef zeroext i1 @_ZNK12aiMatrix4x4tIfEeqERKS0_(ptr noundef nonnull align 4 dereferenceable(64) %4683, ptr noundef nonnull align 4 dereferenceable(64) %492)
          to label %4685 unwind label %4693

4685:                                             ; preds = %4681
  br label %4686

4686:                                             ; preds = %4685, %4676
  %4687 = phi i1 [ false, %4676 ], [ %4684, %4685 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %515) #10
  br i1 %4687, label %4688, label %4698

4688:                                             ; preds = %4686
  store i32 93, ptr %17, align 4
  br label %4781

4689:                                             ; preds = %4666
  %4690 = landingpad { ptr, i32 }
          cleanup
  %4691 = extractvalue { ptr, i32 } %4690, 0
  store ptr %4691, ptr %5, align 8
  %4692 = extractvalue { ptr, i32 } %4690, 1
  store i32 %4692, ptr %6, align 4
  br label %4697

4693:                                             ; preds = %4681
  %4694 = landingpad { ptr, i32 }
          cleanup
  %4695 = extractvalue { ptr, i32 } %4694, 0
  store ptr %4695, ptr %5, align 8
  %4696 = extractvalue { ptr, i32 } %4694, 1
  store i32 %4696, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %518) #10
  br label %4697

4697:                                             ; preds = %4693, %4689
  call void @llvm.lifetime.end.p0(i64 8, ptr %515) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #10
  br label %4788

4698:                                             ; preds = %4686
  call void @llvm.lifetime.start.p0(i64 1, ptr %519) #10
  store i8 0, ptr %519, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %520) #10
  store i64 0, ptr %520, align 8, !tbaa !43
  br label %4699

4699:                                             ; preds = %4719, %4698
  %4700 = load i64, ptr %520, align 8, !tbaa !43
  %4701 = load ptr, ptr %508, align 8, !tbaa !5
  %4702 = getelementptr inbounds %struct.aiNode, ptr %4701, i32 0, i32 5
  %4703 = load i32, ptr %4702, align 8, !tbaa !144
  %4704 = zext i32 %4703 to i64
  %4705 = icmp ult i64 %4700, %4704
  br i1 %4705, label %4707, label %4706

4706:                                             ; preds = %4699
  store i32 94, ptr %17, align 4
  br label %4722

4707:                                             ; preds = %4699
  %4708 = load ptr, ptr %508, align 8, !tbaa !5
  %4709 = getelementptr inbounds %struct.aiNode, ptr %4708, i32 0, i32 6
  %4710 = load ptr, ptr %4709, align 8, !tbaa !145
  %4711 = load i64, ptr %520, align 8, !tbaa !43
  %4712 = getelementptr inbounds i32, ptr %4710, i64 %4711
  %4713 = load i32, ptr %4712, align 4, !tbaa !39
  %4714 = zext i32 %4713 to i64
  %4715 = load i64, ptr %494, align 8, !tbaa !43
  %4716 = icmp eq i64 %4714, %4715
  br i1 %4716, label %4717, label %4718

4717:                                             ; preds = %4707
  store i8 1, ptr %519, align 1, !tbaa !42
  store i32 94, ptr %17, align 4
  br label %4722

4718:                                             ; preds = %4707
  br label %4719

4719:                                             ; preds = %4718
  %4720 = load i64, ptr %520, align 8, !tbaa !43
  %4721 = add i64 %4720, 1
  store i64 %4721, ptr %520, align 8, !tbaa !43
  br label %4699, !llvm.loop !146

4722:                                             ; preds = %4717, %4706
  call void @llvm.lifetime.end.p0(i64 8, ptr %520) #10
  br label %4723

4723:                                             ; preds = %4722
  call void @llvm.lifetime.start.p0(i64 8, ptr %521) #10
  store i64 0, ptr %521, align 8, !tbaa !43
  br label %4724

4724:                                             ; preds = %4771, %4723
  %4725 = load i64, ptr %521, align 8, !tbaa !43
  %4726 = load ptr, ptr %508, align 8, !tbaa !5
  %4727 = getelementptr inbounds %struct.aiNode, ptr %4726, i32 0, i32 3
  %4728 = load i32, ptr %4727, align 8, !tbaa !147
  %4729 = zext i32 %4728 to i64
  %4730 = icmp ult i64 %4725, %4729
  br i1 %4730, label %4732, label %4731

4731:                                             ; preds = %4724
  store i32 97, ptr %17, align 4
  br label %4774

4732:                                             ; preds = %4724
  call void @llvm.lifetime.start.p0(i64 8, ptr %522) #10
  %4733 = load ptr, ptr %508, align 8, !tbaa !5
  %4734 = getelementptr inbounds %struct.aiNode, ptr %4733, i32 0, i32 4
  %4735 = load ptr, ptr %4734, align 8, !tbaa !148
  %4736 = load i64, ptr %521, align 8, !tbaa !43
  %4737 = getelementptr inbounds ptr, ptr %4735, i64 %4736
  %4738 = load ptr, ptr %4737, align 8, !tbaa !5
  store ptr %4738, ptr %522, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %523) #10
  store i64 0, ptr %523, align 8, !tbaa !43
  br label %4739

4739:                                             ; preds = %4759, %4732
  %4740 = load i64, ptr %523, align 8, !tbaa !43
  %4741 = load ptr, ptr %522, align 8, !tbaa !5
  %4742 = getelementptr inbounds %struct.aiNode, ptr %4741, i32 0, i32 5
  %4743 = load i32, ptr %4742, align 8, !tbaa !144
  %4744 = zext i32 %4743 to i64
  %4745 = icmp ult i64 %4740, %4744
  br i1 %4745, label %4747, label %4746

4746:                                             ; preds = %4739
  store i32 100, ptr %17, align 4
  br label %4762

4747:                                             ; preds = %4739
  %4748 = load ptr, ptr %522, align 8, !tbaa !5
  %4749 = getelementptr inbounds %struct.aiNode, ptr %4748, i32 0, i32 6
  %4750 = load ptr, ptr %4749, align 8, !tbaa !145
  %4751 = load i64, ptr %523, align 8, !tbaa !43
  %4752 = getelementptr inbounds i32, ptr %4750, i64 %4751
  %4753 = load i32, ptr %4752, align 4, !tbaa !39
  %4754 = zext i32 %4753 to i64
  %4755 = load i64, ptr %494, align 8, !tbaa !43
  %4756 = icmp eq i64 %4754, %4755
  br i1 %4756, label %4757, label %4758

4757:                                             ; preds = %4747
  store i8 1, ptr %519, align 1, !tbaa !42
  store i32 100, ptr %17, align 4
  br label %4762

4758:                                             ; preds = %4747
  br label %4759

4759:                                             ; preds = %4758
  %4760 = load i64, ptr %523, align 8, !tbaa !43
  %4761 = add i64 %4760, 1
  store i64 %4761, ptr %523, align 8, !tbaa !43
  br label %4739, !llvm.loop !149

4762:                                             ; preds = %4757, %4746
  call void @llvm.lifetime.end.p0(i64 8, ptr %523) #10
  br label %4763

4763:                                             ; preds = %4762
  %4764 = load i8, ptr %519, align 1, !tbaa !42, !range !37, !noundef !38
  %4765 = trunc i8 %4764 to i1
  br i1 %4765, label %4766, label %4767

4766:                                             ; preds = %4763
  store i32 97, ptr %17, align 4
  br label %4768

4767:                                             ; preds = %4763
  store i32 0, ptr %17, align 4
  br label %4768

4768:                                             ; preds = %4767, %4766
  call void @llvm.lifetime.end.p0(i64 8, ptr %522) #10
  %4769 = load i32, ptr %17, align 4
  switch i32 %4769, label %4774 [
    i32 0, label %4770
  ]

4770:                                             ; preds = %4768
  br label %4771

4771:                                             ; preds = %4770
  %4772 = load i64, ptr %521, align 8, !tbaa !43
  %4773 = add i64 %4772, 1
  store i64 %4773, ptr %521, align 8, !tbaa !43
  br label %4724, !llvm.loop !150

4774:                                             ; preds = %4768, %4731
  call void @llvm.lifetime.end.p0(i64 8, ptr %521) #10
  br label %4775

4775:                                             ; preds = %4774
  %4776 = load i8, ptr %519, align 1, !tbaa !42, !range !37, !noundef !38
  %4777 = trunc i8 %4776 to i1
  br i1 %4777, label %4778, label %4779

4778:                                             ; preds = %4775
  store i32 91, ptr %17, align 4
  br label %4780

4779:                                             ; preds = %4775
  store i32 0, ptr %17, align 4
  br label %4780

4780:                                             ; preds = %4779, %4778
  call void @llvm.lifetime.end.p0(i64 1, ptr %519) #10
  br label %4781

4781:                                             ; preds = %4780, %4688, %4657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %513) #10
  %4782 = load i32, ptr %17, align 4
  switch i32 %4782, label %4789 [
    i32 0, label %4783
    i32 93, label %4784
  ]

4783:                                             ; preds = %4781
  br label %4784

4784:                                             ; preds = %4783, %4781
  %4785 = load ptr, ptr %508, align 8, !tbaa !5
  %4786 = getelementptr inbounds %struct.aiNode, ptr %4785, i32 0, i32 2
  %4787 = load ptr, ptr %4786, align 8, !tbaa !141
  store ptr %4787, ptr %508, align 8, !tbaa !5
  br label %4616, !llvm.loop !151

4788:                                             ; preds = %4697, %4662, %4658
  call void @llvm.lifetime.end.p0(i64 32, ptr %513) #10
  br label %4790

4789:                                             ; preds = %4781, %4644, %4628
  call void @llvm.lifetime.end.p0(i64 8, ptr %508) #10
  br label %4791

4790:                                             ; preds = %4788, %4645
  call void @llvm.lifetime.end.p0(i64 8, ptr %508) #10
  br label %4795

4791:                                             ; preds = %4789
  call void @llvm.lifetime.end.p0(i64 8, ptr %502) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %501) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %499) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %499) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %498) #10
  br label %4792

4792:                                             ; preds = %4791
  %4793 = load i64, ptr %497, align 8, !tbaa !43
  %4794 = add i64 %4793, 1
  store i64 %4794, ptr %497, align 8, !tbaa !43
  br label %4510, !llvm.loop !152

4795:                                             ; preds = %4790, %4600, %4575
  call void @llvm.lifetime.end.p0(i64 8, ptr %502) #10
  br label %4796

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

4797:                                             ; preds = %4796, %4544, %4540
  call void @llvm.lifetime.end.p0(i64 32, ptr %499) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %498) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %497) #10
  br label %4810

4798:                                             ; preds = %4517
  %4799 = load i64, ptr %494, align 8, !tbaa !43
  %4800 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %4799) #10
  %4801 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4800, ptr noundef nonnull align 8 dereferenceable(24) %496)
          to label %4802 unwind label %4806

4802:                                             ; preds = %4798
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %496) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %495) #10
  br label %4803

4803:                                             ; preds = %4802
  %4804 = load i64, ptr %494, align 8, !tbaa !43
  %4805 = add i64 %4804, 1
  store i64 %4805, ptr %494, align 8, !tbaa !43
  br label %4493, !llvm.loop !153

4806:                                             ; preds = %4798
  %4807 = landingpad { ptr, i32 }
          cleanup
  %4808 = extractvalue { ptr, i32 } %4807, 0
  store ptr %4808, ptr %5, align 8
  %4809 = extractvalue { ptr, i32 } %4807, 1
  store i32 %4809, ptr %6, align 4
  br label %4810

4810:                                             ; preds = %4806, %4797
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %496) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %496) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %495) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %494) #10
  br label %6481

4811:                                             ; preds = %4501
  call void @llvm.lifetime.start.p0(i64 8, ptr %524) #10
  store i64 0, ptr %524, align 8, !tbaa !43
  br label %4812

4812:                                             ; preds = %4859, %4811
  %4813 = load i64, ptr %524, align 8, !tbaa !43
  %4814 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4815 = load ptr, ptr %4814, align 8, !tbaa !44
  %4816 = getelementptr inbounds %struct.aiScene, ptr %4815, i32 0, i32 2
  %4817 = load i32, ptr %4816, align 8, !tbaa !45
  %4818 = zext i32 %4817 to i64
  %4819 = icmp ult i64 %4813, %4818
  br i1 %4819, label %4821, label %4820

4820:                                             ; preds = %4812
  store i32 103, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %524) #10
  br label %4862

4821:                                             ; preds = %4812
  call void @llvm.lifetime.start.p0(i64 8, ptr %525) #10
  %4822 = load i64, ptr %524, align 8, !tbaa !43
  %4823 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %4822) #10
  store ptr %4823, ptr %525, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %526) #10
  %4824 = load ptr, ptr %525, align 8, !tbaa !5
  store ptr %4824, ptr %526, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %527) #10
  %4825 = load ptr, ptr %526, align 8, !tbaa !5
  %4826 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4825) #10
  %4827 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %527, i32 0, i32 0
  store ptr %4826, ptr %4827, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %528) #10
  %4828 = load ptr, ptr %526, align 8, !tbaa !5
  %4829 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4828) #10
  %4830 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.43", ptr %528, i32 0, i32 0
  store ptr %4829, ptr %4830, align 8
  br label %4831

4831:                                             ; preds = %4856, %4821
  %4832 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef nonnull align 8 dereferenceable(8) %528) #10
  br i1 %4832, label %4834, label %4833

4833:                                             ; preds = %4831
  store i32 106, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %528) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %527) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %526) #10
  br label %4858

4834:                                             ; preds = %4831
  call void @llvm.lifetime.start.p0(i64 8, ptr %529) #10
  %4835 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  %4836 = load ptr, ptr %4835, align 8, !tbaa !5
  store ptr %4836, ptr %529, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %530) #10
  %4837 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %4838 = invoke ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %4837, ptr noundef nonnull align 8 dereferenceable(8) %529)
          to label %4839 unwind label %4851

4839:                                             ; preds = %4834
  %4840 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.164", ptr %530, i32 0, i32 0
  store ptr %4838, ptr %4840, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %531) #10
  %4841 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %4842 = call ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %4841) #10
  %4843 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.164", ptr %531, i32 0, i32 0
  store ptr %4842, ptr %4843, align 8
  %4844 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKPK6aiNodelEES8_(ptr noundef nonnull align 8 dereferenceable(8) %530, ptr noundef nonnull align 8 dereferenceable(8) %531) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %531) #10
  br i1 %4844, label %4845, label %4855

4845:                                             ; preds = %4839
  %4846 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %4847 unwind label %4851

4847:                                             ; preds = %4845
  %4848 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %4849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %4848, ptr noundef nonnull align 8 dereferenceable(8) %529)
          to label %4850 unwind label %4851

4850:                                             ; preds = %4847
  store i64 %4846, ptr %4849, align 8, !tbaa !43
  br label %4855

4851:                                             ; preds = %4847, %4845, %4834
  %4852 = landingpad { ptr, i32 }
          cleanup
  %4853 = extractvalue { ptr, i32 } %4852, 0
  store ptr %4853, ptr %5, align 8
  %4854 = extractvalue { ptr, i32 } %4852, 1
  store i32 %4854, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %530) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %529) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %528) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %527) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %526) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %525) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %524) #10
  br label %6481

4855:                                             ; preds = %4850, %4839
  call void @llvm.lifetime.end.p0(i64 8, ptr %530) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %529) #10
  br label %4856

4856:                                             ; preds = %4855
  %4857 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %527) #10
  br label %4831

4858:                                             ; preds = %4833
  call void @llvm.lifetime.end.p0(i64 8, ptr %525) #10
  br label %4859

4859:                                             ; preds = %4858
  %4860 = load i64, ptr %524, align 8, !tbaa !43
  %4861 = add i64 %4860, 1
  store i64 %4861, ptr %524, align 8, !tbaa !43
  br label %4812, !llvm.loop !154

4862:                                             ; preds = %4820
  call void @llvm.lifetime.start.p0(i64 8, ptr %532) #10
  store i64 0, ptr %532, align 8, !tbaa !43
  br label %4863

4863:                                             ; preds = %5404, %4862
  %4864 = load i64, ptr %532, align 8, !tbaa !43
  %4865 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4866 = load ptr, ptr %4865, align 8, !tbaa !44
  %4867 = getelementptr inbounds %struct.aiScene, ptr %4866, i32 0, i32 2
  %4868 = load i32, ptr %4867, align 8, !tbaa !45
  %4869 = zext i32 %4868 to i64
  %4870 = icmp ult i64 %4864, %4869
  br i1 %4870, label %4872, label %4871

4871:                                             ; preds = %4863
  store i32 108, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %532) #10
  br label %5414

4872:                                             ; preds = %4863
  call void @llvm.lifetime.start.p0(i64 8, ptr %533) #10
  %4873 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4874 = load ptr, ptr %4873, align 8, !tbaa !44
  %4875 = getelementptr inbounds %struct.aiScene, ptr %4874, i32 0, i32 3
  %4876 = load ptr, ptr %4875, align 8, !tbaa !48
  %4877 = load i64, ptr %532, align 8, !tbaa !43
  %4878 = getelementptr inbounds ptr, ptr %4876, i64 %4877
  %4879 = load ptr, ptr %4878, align 8, !tbaa !5
  store ptr %4879, ptr %533, align 8, !tbaa !5
  %4880 = load ptr, ptr %533, align 8, !tbaa !5
  %4881 = invoke noundef zeroext i1 @_ZNK6aiMesh8HasBonesEv(ptr noundef nonnull align 8 dereferenceable(1320) %4880)
          to label %4882 unwind label %4884

4882:                                             ; preds = %4872
  br i1 %4881, label %4888, label %4883

4883:                                             ; preds = %4882
  store i32 110, ptr %17, align 4
  br label %5401

4884:                                             ; preds = %4872
  %4885 = landingpad { ptr, i32 }
          cleanup
  %4886 = extractvalue { ptr, i32 } %4885, 0
  store ptr %4886, ptr %5, align 8
  %4887 = extractvalue { ptr, i32 } %4885, 1
  store i32 %4887, ptr %6, align 4
  br label %5413

4888:                                             ; preds = %4882
  call void @llvm.lifetime.start.p0(i64 8, ptr %534) #10
  %4889 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %4890 unwind label %4938

4890:                                             ; preds = %4888
  store i64 %4889, ptr %534, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 112, ptr %535) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %536) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %537) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %537)
          to label %4891 unwind label %4942

4891:                                             ; preds = %4890
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(32) %536)
          to label %4892 unwind label %4946

4892:                                             ; preds = %4891
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %537) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %536) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %538) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %538, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef @.str.261)
          to label %4893 unwind label %4951

4893:                                             ; preds = %4892
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA5_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 1 dereferenceable(5) @.str.358)
          to label %4894 unwind label %4955

4894:                                             ; preds = %4893
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %538) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %538) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %539) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %540) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %540)
          to label %4895 unwind label %4960

4895:                                             ; preds = %4894
  call void @llvm.lifetime.start.p0(i64 4, ptr %541) #10
  store i32 101, ptr %541, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef nonnull align 4 dereferenceable(4) %541)
          to label %4896 unwind label %4964

4896:                                             ; preds = %4895
  call void @llvm.lifetime.end.p0(i64 4, ptr %541) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %540) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %539) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %542) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %543) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef @.str.359, ptr noundef nonnull align 1 dereferenceable(1) %543)
          to label %4897 unwind label %4969

4897:                                             ; preds = %4896
  call void @llvm.lifetime.start.p0(i64 8, ptr %544) #10
  store double 5.000000e+01, ptr %544, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJdEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef nonnull align 8 dereferenceable(8) %544)
          to label %4898 unwind label %4973

4898:                                             ; preds = %4897
  call void @llvm.lifetime.end.p0(i64 8, ptr %544) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %543) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %545) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %546) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %545, ptr noundef @.str.360, ptr noundef nonnull align 1 dereferenceable(1) %546)
          to label %4899 unwind label %4978

4899:                                             ; preds = %4898
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA7_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(32) %545, ptr noundef nonnull align 1 dereferenceable(7) @.str.361)
          to label %4900 unwind label %4982

4900:                                             ; preds = %4899
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %545) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %546) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %545) #10
  %4901 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %4902 = load i8, ptr %4901, align 8, !tbaa !9, !range !37, !noundef !38
  %4903 = trunc i8 %4902 to i1
  %4904 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %535, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %4903, i32 noundef %4904)
          to label %4905 unwind label %4987

4905:                                             ; preds = %4900
  %4906 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %4907 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 5
  %4908 = load i64, ptr %532, align 8, !tbaa !43
  %4909 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4907, i64 noundef %4908) #10
  %4910 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %4906, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef nonnull align 8 dereferenceable(8) %4909)
          to label %4911 unwind label %4987

4911:                                             ; preds = %4905
  call void @llvm.lifetime.start.p0(i64 8, ptr %547) #10
  %4912 = load i64, ptr %532, align 8, !tbaa !43
  %4913 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %4912) #10
  store ptr %4913, ptr %547, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %548) #10
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %549) #10
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %550) #10
  %4914 = load i64, ptr %532, align 8, !tbaa !43
  %4915 = trunc i64 %4914 to i32
  %4916 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4917 = load ptr, ptr %4916, align 8, !tbaa !44
  %4918 = getelementptr inbounds %struct.aiScene, ptr %4917, i32 0, i32 1
  %4919 = load ptr, ptr %4918, align 8, !tbaa !140
  %4920 = invoke noundef ptr @_Z17get_node_for_meshjP6aiNode(i32 noundef %4915, ptr noundef %4919)
          to label %4921 unwind label %4991

4921:                                             ; preds = %4911
  store ptr %4920, ptr %550, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %551) #10
  %4922 = load ptr, ptr %550, align 8, !tbaa !5
  %4923 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %4924 = load ptr, ptr %4923, align 8, !tbaa !44
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind writable sret(%class.aiMatrix4x4t) align 4 %551, ptr noundef %4922, ptr noundef %4924)
          to label %4925 unwind label %4995

4925:                                             ; preds = %4921
  call void @llvm.lifetime.start.p0(i64 8, ptr %552) #10
  %4926 = load i64, ptr %532, align 8, !tbaa !43
  %4927 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %483, i64 noundef %4926) #10
  store ptr %4927, ptr %552, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %553) #10
  %4928 = load ptr, ptr %552, align 8, !tbaa !5
  store ptr %4928, ptr %553, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %554) #10
  %4929 = load ptr, ptr %553, align 8, !tbaa !5
  %4930 = call ptr @_ZNKSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4929) #10
  %4931 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.175", ptr %554, i32 0, i32 0
  store ptr %4930, ptr %4931, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %555) #10
  %4932 = load ptr, ptr %553, align 8, !tbaa !5
  %4933 = call ptr @_ZNKSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4932) #10
  %4934 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.175", ptr %555, i32 0, i32 0
  store ptr %4933, ptr %4934, align 8
  br label %4935

4935:                                             ; preds = %5243, %4925
  %4936 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %554, ptr noundef nonnull align 8 dereferenceable(8) %555) #10
  br i1 %4936, label %4999, label %4937

4937:                                             ; preds = %4935
  store i32 111, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %555) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %554) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %553) #10
  br label %5283

4938:                                             ; preds = %4888
  %4939 = landingpad { ptr, i32 }
          cleanup
  %4940 = extractvalue { ptr, i32 } %4939, 0
  store ptr %4940, ptr %5, align 8
  %4941 = extractvalue { ptr, i32 } %4939, 1
  store i32 %4941, ptr %6, align 4
  br label %5412

4942:                                             ; preds = %4890
  %4943 = landingpad { ptr, i32 }
          cleanup
  %4944 = extractvalue { ptr, i32 } %4943, 0
  store ptr %4944, ptr %5, align 8
  %4945 = extractvalue { ptr, i32 } %4943, 1
  store i32 %4945, ptr %6, align 4
  br label %4950

4946:                                             ; preds = %4891
  %4947 = landingpad { ptr, i32 }
          cleanup
  %4948 = extractvalue { ptr, i32 } %4947, 0
  store ptr %4948, ptr %5, align 8
  %4949 = extractvalue { ptr, i32 } %4947, 1
  store i32 %4949, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #10
  br label %4950

4950:                                             ; preds = %4946, %4942
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %537) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %537) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %536) #10
  br label %5411

4951:                                             ; preds = %4892
  %4952 = landingpad { ptr, i32 }
          cleanup
  %4953 = extractvalue { ptr, i32 } %4952, 0
  store ptr %4953, ptr %5, align 8
  %4954 = extractvalue { ptr, i32 } %4952, 1
  store i32 %4954, ptr %6, align 4
  br label %4959

4955:                                             ; preds = %4893
  %4956 = landingpad { ptr, i32 }
          cleanup
  %4957 = extractvalue { ptr, i32 } %4956, 0
  store ptr %4957, ptr %5, align 8
  %4958 = extractvalue { ptr, i32 } %4956, 1
  store i32 %4958, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %538) #10
  br label %4959

4959:                                             ; preds = %4955, %4951
  call void @llvm.lifetime.end.p0(i64 32, ptr %538) #10
  br label %5410

4960:                                             ; preds = %4894
  %4961 = landingpad { ptr, i32 }
          cleanup
  %4962 = extractvalue { ptr, i32 } %4961, 0
  store ptr %4962, ptr %5, align 8
  %4963 = extractvalue { ptr, i32 } %4961, 1
  store i32 %4963, ptr %6, align 4
  br label %4968

4964:                                             ; preds = %4895
  %4965 = landingpad { ptr, i32 }
          cleanup
  %4966 = extractvalue { ptr, i32 } %4965, 0
  store ptr %4966, ptr %5, align 8
  %4967 = extractvalue { ptr, i32 } %4965, 1
  store i32 %4967, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %541) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #10
  br label %4968

4968:                                             ; preds = %4964, %4960
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %540) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %539) #10
  br label %5410

4969:                                             ; preds = %4896
  %4970 = landingpad { ptr, i32 }
          cleanup
  %4971 = extractvalue { ptr, i32 } %4970, 0
  store ptr %4971, ptr %5, align 8
  %4972 = extractvalue { ptr, i32 } %4970, 1
  store i32 %4972, ptr %6, align 4
  br label %4977

4973:                                             ; preds = %4897
  %4974 = landingpad { ptr, i32 }
          cleanup
  %4975 = extractvalue { ptr, i32 } %4974, 0
  store ptr %4975, ptr %5, align 8
  %4976 = extractvalue { ptr, i32 } %4974, 1
  store i32 %4976, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %544) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #10
  br label %4977

4977:                                             ; preds = %4973, %4969
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %543) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #10
  br label %5410

4978:                                             ; preds = %4898
  %4979 = landingpad { ptr, i32 }
          cleanup
  %4980 = extractvalue { ptr, i32 } %4979, 0
  store ptr %4980, ptr %5, align 8
  %4981 = extractvalue { ptr, i32 } %4979, 1
  store i32 %4981, ptr %6, align 4
  br label %4986

4982:                                             ; preds = %4899
  %4983 = landingpad { ptr, i32 }
          cleanup
  %4984 = extractvalue { ptr, i32 } %4983, 0
  store ptr %4984, ptr %5, align 8
  %4985 = extractvalue { ptr, i32 } %4983, 1
  store i32 %4985, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %545) #10
  br label %4986

4986:                                             ; preds = %4982, %4978
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %546) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %545) #10
  br label %5410

4987:                                             ; preds = %4905, %4900
  %4988 = landingpad { ptr, i32 }
          cleanup
  %4989 = extractvalue { ptr, i32 } %4988, 0
  store ptr %4989, ptr %5, align 8
  %4990 = extractvalue { ptr, i32 } %4988, 1
  store i32 %4990, ptr %6, align 4
  br label %5410

4991:                                             ; preds = %4911
  %4992 = landingpad { ptr, i32 }
          cleanup
  %4993 = extractvalue { ptr, i32 } %4992, 0
  store ptr %4993, ptr %5, align 8
  %4994 = extractvalue { ptr, i32 } %4992, 1
  store i32 %4994, ptr %6, align 4
  br label %5409

4995:                                             ; preds = %4921
  %4996 = landingpad { ptr, i32 }
          cleanup
  %4997 = extractvalue { ptr, i32 } %4996, 0
  store ptr %4997, ptr %5, align 8
  %4998 = extractvalue { ptr, i32 } %4996, 1
  store i32 %4998, ptr %6, align 4
  br label %5408

4999:                                             ; preds = %4935
  call void @llvm.lifetime.start.p0(i64 8, ptr %556) #10
  %5000 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  %5001 = load ptr, ptr %5000, align 8, !tbaa !5
  store ptr %5001, ptr %556, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %557) #10
  store ptr null, ptr %557, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %558) #10
  store i64 0, ptr %558, align 8, !tbaa !43
  br label %5002

5002:                                             ; preds = %5049, %4999
  %5003 = load i64, ptr %558, align 8, !tbaa !43
  %5004 = load ptr, ptr %533, align 8, !tbaa !5
  %5005 = getelementptr inbounds %struct.aiMesh, ptr %5004, i32 0, i32 11
  %5006 = load i32, ptr %5005, align 8, !tbaa !134
  %5007 = zext i32 %5006 to i64
  %5008 = icmp ult i64 %5003, %5007
  br i1 %5008, label %5010, label %5009

5009:                                             ; preds = %5002
  store i32 113, ptr %17, align 4
  br label %5053

5010:                                             ; preds = %5002
  call void @llvm.lifetime.start.p0(i64 32, ptr %559) #10
  %5011 = load ptr, ptr %533, align 8, !tbaa !5
  %5012 = getelementptr inbounds %struct.aiMesh, ptr %5011, i32 0, i32 12
  %5013 = load ptr, ptr %5012, align 8, !tbaa !135
  %5014 = load i64, ptr %558, align 8, !tbaa !43
  %5015 = getelementptr inbounds ptr, ptr %5013, i64 %5014
  %5016 = load ptr, ptr %5015, align 8, !tbaa !5
  %5017 = getelementptr inbounds %struct.aiBone, ptr %5016, i32 0, i32 0
  %5018 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5017)
          to label %5019 unwind label %5033

5019:                                             ; preds = %5010
  call void @llvm.lifetime.start.p0(i64 1, ptr %560) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %559, ptr noundef %5018, ptr noundef nonnull align 1 dereferenceable(1) %560)
          to label %5020 unwind label %5037

5020:                                             ; preds = %5019
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %560) #10
  %5021 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %493, ptr noundef nonnull align 8 dereferenceable(32) %559)
          to label %5022 unwind label %5041

5022:                                             ; preds = %5020
  %5023 = load ptr, ptr %5021, align 8, !tbaa !5
  %5024 = load ptr, ptr %556, align 8, !tbaa !5
  %5025 = icmp eq ptr %5023, %5024
  br i1 %5025, label %5026, label %5045

5026:                                             ; preds = %5022
  %5027 = load ptr, ptr %533, align 8, !tbaa !5
  %5028 = getelementptr inbounds %struct.aiMesh, ptr %5027, i32 0, i32 12
  %5029 = load ptr, ptr %5028, align 8, !tbaa !135
  %5030 = load i64, ptr %558, align 8, !tbaa !43
  %5031 = getelementptr inbounds ptr, ptr %5029, i64 %5030
  %5032 = load ptr, ptr %5031, align 8, !tbaa !5
  store ptr %5032, ptr %557, align 8, !tbaa !5
  store i32 113, ptr %17, align 4
  br label %5046

5033:                                             ; preds = %5010
  %5034 = landingpad { ptr, i32 }
          cleanup
  %5035 = extractvalue { ptr, i32 } %5034, 0
  store ptr %5035, ptr %5, align 8
  %5036 = extractvalue { ptr, i32 } %5034, 1
  store i32 %5036, ptr %6, align 4
  br label %5052

5037:                                             ; preds = %5019
  %5038 = landingpad { ptr, i32 }
          cleanup
  %5039 = extractvalue { ptr, i32 } %5038, 0
  store ptr %5039, ptr %5, align 8
  %5040 = extractvalue { ptr, i32 } %5038, 1
  store i32 %5040, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %560) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %560) #10
  br label %5052

5041:                                             ; preds = %5020
  %5042 = landingpad { ptr, i32 }
          cleanup
  %5043 = extractvalue { ptr, i32 } %5042, 0
  store ptr %5043, ptr %5, align 8
  %5044 = extractvalue { ptr, i32 } %5042, 1
  store i32 %5044, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %559) #10
  br label %5052

5045:                                             ; preds = %5022
  store i32 0, ptr %17, align 4
  br label %5046

5046:                                             ; preds = %5045, %5026
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %559) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %559) #10
  %5047 = load i32, ptr %17, align 4
  switch i32 %5047, label %5053 [
    i32 0, label %5048
  ]

5048:                                             ; preds = %5046
  br label %5049

5049:                                             ; preds = %5048
  %5050 = load i64, ptr %558, align 8, !tbaa !43
  %5051 = add i64 %5050, 1
  store i64 %5051, ptr %558, align 8, !tbaa !43
  br label %5002, !llvm.loop !155

5052:                                             ; preds = %5041, %5037, %5033
  call void @llvm.lifetime.end.p0(i64 32, ptr %559) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %558) #10
  br label %5282

5053:                                             ; preds = %5046, %5009
  call void @llvm.lifetime.end.p0(i64 8, ptr %558) #10
  br label %5054

5054:                                             ; preds = %5053
  %5055 = load ptr, ptr %557, align 8, !tbaa !5
  %5056 = icmp ne ptr %5055, null
  br i1 %5056, label %5068, label %5057

5057:                                             ; preds = %5054
  %5058 = invoke { ptr, i8 } @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %549, ptr noundef nonnull align 8 dereferenceable(8) %556)
          to label %5059 unwind label %5064

5059:                                             ; preds = %5057
  %5060 = getelementptr inbounds { ptr, i8 }, ptr %561, i32 0, i32 0
  %5061 = extractvalue { ptr, i8 } %5058, 0
  store ptr %5061, ptr %5060, align 8
  %5062 = getelementptr inbounds { ptr, i8 }, ptr %561, i32 0, i32 1
  %5063 = extractvalue { ptr, i8 } %5058, 1
  store i8 %5063, ptr %5062, align 8
  br label %5068

5064:                                             ; preds = %5057
  %5065 = landingpad { ptr, i32 }
          cleanup
  %5066 = extractvalue { ptr, i32 } %5065, 0
  store ptr %5066, ptr %5, align 8
  %5067 = extractvalue { ptr, i32 } %5065, 1
  store i32 %5067, ptr %6, align 4
  br label %5282

5068:                                             ; preds = %5059, %5054
  call void @llvm.lifetime.start.p0(i64 8, ptr %562) #10
  %5069 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5070 unwind label %5090

5070:                                             ; preds = %5068
  store i64 %5069, ptr %562, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 112, ptr %563) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %564) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %565) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %564, ptr noundef @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %565)
          to label %5071 unwind label %5094

5071:                                             ; preds = %5070
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %564)
          to label %5072 unwind label %5098

5072:                                             ; preds = %5071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %564) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %565) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %564) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %566) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %566, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef @.str.353)
          to label %5073 unwind label %5103

5073:                                             ; preds = %5072
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA8_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull align 1 dereferenceable(8) @.str.362)
          to label %5074 unwind label %5107

5074:                                             ; preds = %5073
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %566) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %567) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %568) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %567, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %568)
          to label %5075 unwind label %5112

5075:                                             ; preds = %5074
  call void @llvm.lifetime.start.p0(i64 4, ptr %569) #10
  store i32 100, ptr %569, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %567, ptr noundef nonnull align 4 dereferenceable(4) %569)
          to label %5076 unwind label %5116

5076:                                             ; preds = %5075
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %568) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %567) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %570) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %571) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef @.str.363, ptr noundef nonnull align 1 dereferenceable(1) %571)
          to label %5077 unwind label %5121

5077:                                             ; preds = %5076
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA1_KcS5_EEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull align 1 dereferenceable(1) @.str.67, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %5078 unwind label %5125

5078:                                             ; preds = %5077
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %571) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %570) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %572) #10
  call void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %572) #10
  %5079 = load ptr, ptr %557, align 8, !tbaa !5
  %5080 = icmp ne ptr %5079, null
  br i1 %5080, label %5081, label %5217

5081:                                             ; preds = %5078
  call void @llvm.lifetime.start.p0(i64 24, ptr %573) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %573) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %574) #10
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %574) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %575) #10
  store i32 -1, ptr %575, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 8, ptr %576) #10
  store i64 0, ptr %576, align 8, !tbaa !43
  br label %5082

5082:                                             ; preds = %5181, %5081
  %5083 = load i64, ptr %576, align 8, !tbaa !43
  %5084 = load ptr, ptr %557, align 8, !tbaa !5
  %5085 = getelementptr inbounds %struct.aiBone, ptr %5084, i32 0, i32 1
  %5086 = load i32, ptr %5085, align 4, !tbaa !156
  %5087 = zext i32 %5086 to i64
  %5088 = icmp ult i64 %5083, %5087
  br i1 %5088, label %5130, label %5089

5089:                                             ; preds = %5082
  store i32 116, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #10
  br label %5193

5090:                                             ; preds = %5068
  %5091 = landingpad { ptr, i32 }
          cleanup
  %5092 = extractvalue { ptr, i32 } %5091, 0
  store ptr %5092, ptr %5, align 8
  %5093 = extractvalue { ptr, i32 } %5091, 1
  store i32 %5093, ptr %6, align 4
  br label %5281

5094:                                             ; preds = %5070
  %5095 = landingpad { ptr, i32 }
          cleanup
  %5096 = extractvalue { ptr, i32 } %5095, 0
  store ptr %5096, ptr %5, align 8
  %5097 = extractvalue { ptr, i32 } %5095, 1
  store i32 %5097, ptr %6, align 4
  br label %5102

5098:                                             ; preds = %5071
  %5099 = landingpad { ptr, i32 }
          cleanup
  %5100 = extractvalue { ptr, i32 } %5099, 0
  store ptr %5100, ptr %5, align 8
  %5101 = extractvalue { ptr, i32 } %5099, 1
  store i32 %5101, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %564) #10
  br label %5102

5102:                                             ; preds = %5098, %5094
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %565) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %564) #10
  br label %5280

5103:                                             ; preds = %5072
  %5104 = landingpad { ptr, i32 }
          cleanup
  %5105 = extractvalue { ptr, i32 } %5104, 0
  store ptr %5105, ptr %5, align 8
  %5106 = extractvalue { ptr, i32 } %5104, 1
  store i32 %5106, ptr %6, align 4
  br label %5111

5107:                                             ; preds = %5073
  %5108 = landingpad { ptr, i32 }
          cleanup
  %5109 = extractvalue { ptr, i32 } %5108, 0
  store ptr %5109, ptr %5, align 8
  %5110 = extractvalue { ptr, i32 } %5108, 1
  store i32 %5110, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #10
  br label %5111

5111:                                             ; preds = %5107, %5103
  call void @llvm.lifetime.end.p0(i64 32, ptr %566) #10
  br label %5279

5112:                                             ; preds = %5074
  %5113 = landingpad { ptr, i32 }
          cleanup
  %5114 = extractvalue { ptr, i32 } %5113, 0
  store ptr %5114, ptr %5, align 8
  %5115 = extractvalue { ptr, i32 } %5113, 1
  store i32 %5115, ptr %6, align 4
  br label %5120

5116:                                             ; preds = %5075
  %5117 = landingpad { ptr, i32 }
          cleanup
  %5118 = extractvalue { ptr, i32 } %5117, 0
  store ptr %5118, ptr %5, align 8
  %5119 = extractvalue { ptr, i32 } %5117, 1
  store i32 %5119, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #10
  br label %5120

5120:                                             ; preds = %5116, %5112
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %568) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %567) #10
  br label %5279

5121:                                             ; preds = %5076
  %5122 = landingpad { ptr, i32 }
          cleanup
  %5123 = extractvalue { ptr, i32 } %5122, 0
  store ptr %5123, ptr %5, align 8
  %5124 = extractvalue { ptr, i32 } %5122, 1
  store i32 %5124, ptr %6, align 4
  br label %5129

5125:                                             ; preds = %5077
  %5126 = landingpad { ptr, i32 }
          cleanup
  %5127 = extractvalue { ptr, i32 } %5126, 0
  store ptr %5127, ptr %5, align 8
  %5128 = extractvalue { ptr, i32 } %5126, 1
  store i32 %5128, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #10
  br label %5129

5129:                                             ; preds = %5125, %5121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %571) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %570) #10
  br label %5279

5130:                                             ; preds = %5082
  call void @llvm.lifetime.start.p0(i64 4, ptr %577) #10
  %5131 = load ptr, ptr %547, align 8, !tbaa !5
  %5132 = load ptr, ptr %557, align 8, !tbaa !5
  %5133 = getelementptr inbounds %struct.aiBone, ptr %5132, i32 0, i32 4
  %5134 = load ptr, ptr %5133, align 8, !tbaa !158
  %5135 = load i64, ptr %576, align 8, !tbaa !43
  %5136 = getelementptr inbounds %struct.aiVertexWeight, ptr %5134, i64 %5135
  %5137 = getelementptr inbounds %struct.aiVertexWeight, ptr %5136, i32 0, i32 0
  %5138 = load i32, ptr %5137, align 4, !tbaa !159
  %5139 = zext i32 %5138 to i64
  %5140 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5131, i64 noundef %5139) #10
  %5141 = load i32, ptr %5140, align 4, !tbaa !39
  store i32 %5141, ptr %577, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 1, ptr %578) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %579) #10
  %5142 = invoke ptr @_ZNSt3setIiSt4lessIiESaIiEE4findERKi(ptr noundef nonnull align 8 dereferenceable(48) %572, ptr noundef nonnull align 4 dereferenceable(4) %577)
          to label %5143 unwind label %5156

5143:                                             ; preds = %5130
  %5144 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.186", ptr %579, i32 0, i32 0
  store ptr %5142, ptr %5144, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %580) #10
  %5145 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %572) #10
  %5146 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.186", ptr %580, i32 0, i32 0
  store ptr %5145, ptr %5146, align 8
  %5147 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %579, ptr noundef nonnull align 8 dereferenceable(8) %580) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %580) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #10
  %5148 = zext i1 %5147 to i8
  store i8 %5148, ptr %578, align 1, !tbaa !42
  %5149 = load i32, ptr %577, align 4, !tbaa !39
  %5150 = load i32, ptr %575, align 4, !tbaa !39
  %5151 = icmp eq i32 %5149, %5150
  br i1 %5151, label %5155, label %5152

5152:                                             ; preds = %5143
  %5153 = load i8, ptr %578, align 1, !tbaa !42, !range !37, !noundef !38
  %5154 = trunc i8 %5153 to i1
  br i1 %5154, label %5155, label %5160

5155:                                             ; preds = %5152, %5143
  store i32 118, ptr %17, align 4
  br label %5178

5156:                                             ; preds = %5130
  %5157 = landingpad { ptr, i32 }
          cleanup
  %5158 = extractvalue { ptr, i32 } %5157, 0
  store ptr %5158, ptr %5, align 8
  %5159 = extractvalue { ptr, i32 } %5157, 1
  store i32 %5159, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %579) #10
  br label %5192

5160:                                             ; preds = %5152
  %5161 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %572, ptr noundef nonnull align 4 dereferenceable(4) %577)
          to label %5162 unwind label %5184

5162:                                             ; preds = %5160
  %5163 = getelementptr inbounds { ptr, i8 }, ptr %581, i32 0, i32 0
  %5164 = extractvalue { ptr, i8 } %5161, 0
  store ptr %5164, ptr %5163, align 8
  %5165 = getelementptr inbounds { ptr, i8 }, ptr %581, i32 0, i32 1
  %5166 = extractvalue { ptr, i8 } %5161, 1
  store i8 %5166, ptr %5165, align 8
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %573, ptr noundef nonnull align 4 dereferenceable(4) %577)
          to label %5167 unwind label %5184

5167:                                             ; preds = %5162
  call void @llvm.lifetime.start.p0(i64 8, ptr %582) #10
  %5168 = load ptr, ptr %557, align 8, !tbaa !5
  %5169 = getelementptr inbounds %struct.aiBone, ptr %5168, i32 0, i32 4
  %5170 = load ptr, ptr %5169, align 8, !tbaa !158
  %5171 = load i64, ptr %576, align 8, !tbaa !43
  %5172 = getelementptr inbounds %struct.aiVertexWeight, ptr %5170, i64 %5171
  %5173 = getelementptr inbounds %struct.aiVertexWeight, ptr %5172, i32 0, i32 1
  %5174 = load float, ptr %5173, align 4, !tbaa !161
  %5175 = fpext float %5174 to double
  store double %5175, ptr %582, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %574, ptr noundef nonnull align 8 dereferenceable(8) %582)
          to label %5176 unwind label %5188

5176:                                             ; preds = %5167
  call void @llvm.lifetime.end.p0(i64 8, ptr %582) #10
  %5177 = load i32, ptr %577, align 4, !tbaa !39
  store i32 %5177, ptr %575, align 4, !tbaa !39
  store i32 0, ptr %17, align 4
  br label %5178

5178:                                             ; preds = %5176, %5155
  call void @llvm.lifetime.end.p0(i64 1, ptr %578) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %577) #10
  %5179 = load i32, ptr %17, align 4
  switch i32 %5179, label %6497 [
    i32 0, label %5180
    i32 118, label %5181
  ]

5180:                                             ; preds = %5178
  br label %5181

5181:                                             ; preds = %5180, %5178
  %5182 = load i64, ptr %576, align 8, !tbaa !43
  %5183 = add i64 %5182, 1
  store i64 %5183, ptr %576, align 8, !tbaa !43
  br label %5082, !llvm.loop !162

5184:                                             ; preds = %5162, %5160
  %5185 = landingpad { ptr, i32 }
          cleanup
  %5186 = extractvalue { ptr, i32 } %5185, 0
  store ptr %5186, ptr %5, align 8
  %5187 = extractvalue { ptr, i32 } %5185, 1
  store i32 %5187, ptr %6, align 4
  br label %5192

5188:                                             ; preds = %5167
  %5189 = landingpad { ptr, i32 }
          cleanup
  %5190 = extractvalue { ptr, i32 } %5189, 0
  store ptr %5190, ptr %5, align 8
  %5191 = extractvalue { ptr, i32 } %5189, 1
  store i32 %5191, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %582) #10
  br label %5192

5192:                                             ; preds = %5188, %5184, %5156
  call void @llvm.lifetime.end.p0(i64 1, ptr %578) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %577) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %576) #10
  br label %5216

5193:                                             ; preds = %5089
  call void @llvm.lifetime.start.p0(i64 32, ptr %583) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %584) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %584) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %583, ptr noundef @.str.352, ptr noundef nonnull align 1 dereferenceable(1) %584)
          to label %5194 unwind label %5198

5194:                                             ; preds = %5193
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIiSaIiEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %583, ptr noundef nonnull align 8 dereferenceable(24) %573)
          to label %5195 unwind label %5202

5195:                                             ; preds = %5194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %583) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %584) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %584) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %583) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %585) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %586) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %585, ptr noundef @.str.364, ptr noundef nonnull align 1 dereferenceable(1) %586)
          to label %5196 unwind label %5207

5196:                                             ; preds = %5195
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIdSaIdEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %585, ptr noundef nonnull align 8 dereferenceable(24) %574)
          to label %5197 unwind label %5211

5197:                                             ; preds = %5196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %586) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %585) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %575) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %574) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %574) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %573) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %573) #10
  br label %5217

5198:                                             ; preds = %5193
  %5199 = landingpad { ptr, i32 }
          cleanup
  %5200 = extractvalue { ptr, i32 } %5199, 0
  store ptr %5200, ptr %5, align 8
  %5201 = extractvalue { ptr, i32 } %5199, 1
  store i32 %5201, ptr %6, align 4
  br label %5206

5202:                                             ; preds = %5194
  %5203 = landingpad { ptr, i32 }
          cleanup
  %5204 = extractvalue { ptr, i32 } %5203, 0
  store ptr %5204, ptr %5, align 8
  %5205 = extractvalue { ptr, i32 } %5203, 1
  store i32 %5205, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %583) #10
  br label %5206

5206:                                             ; preds = %5202, %5198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %584) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %584) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %583) #10
  br label %5216

5207:                                             ; preds = %5195
  %5208 = landingpad { ptr, i32 }
          cleanup
  %5209 = extractvalue { ptr, i32 } %5208, 0
  store ptr %5209, ptr %5, align 8
  %5210 = extractvalue { ptr, i32 } %5208, 1
  store i32 %5210, ptr %6, align 4
  br label %5215

5211:                                             ; preds = %5196
  %5212 = landingpad { ptr, i32 }
          cleanup
  %5213 = extractvalue { ptr, i32 } %5212, 0
  store ptr %5213, ptr %5, align 8
  %5214 = extractvalue { ptr, i32 } %5212, 1
  store i32 %5214, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #10
  br label %5215

5215:                                             ; preds = %5211, %5207
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %586) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %585) #10
  br label %5216

5216:                                             ; preds = %5215, %5206, %5192
  call void @llvm.lifetime.end.p0(i64 4, ptr %575) #10
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %574) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %574) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %573) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %573) #10
  br label %5278

5217:                                             ; preds = %5197, %5078
  call void @llvm.lifetime.start.p0(i64 64, ptr %587) #10
  %5218 = load ptr, ptr %556, align 8, !tbaa !5
  %5219 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5220 = load ptr, ptr %5219, align 8, !tbaa !44
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind writable sret(%class.aiMatrix4x4t) align 4 %587, ptr noundef %5218, ptr noundef %5220)
          to label %5221 unwind label %5245

5221:                                             ; preds = %5217
  call void @llvm.lifetime.start.p0(i64 64, ptr %588) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %588, ptr align 4 %587, i64 64, i1 false), !tbaa.struct !163
  %5222 = invoke noundef nonnull align 4 dereferenceable(64) ptr @_ZN12aiMatrix4x4tIfE7InverseEv(ptr noundef nonnull align 4 dereferenceable(64) %588)
          to label %5223 unwind label %5249

5223:                                             ; preds = %5221
  call void @llvm.lifetime.start.p0(i64 64, ptr %589) #10
  invoke void @_ZNK12aiMatrix4x4tIfEmlERKS0_(ptr dead_on_unwind writable sret(%class.aiMatrix4x4t) align 4 %589, ptr noundef nonnull align 4 dereferenceable(64) %588, ptr noundef nonnull align 4 dereferenceable(64) %551)
          to label %5224 unwind label %5253

5224:                                             ; preds = %5223
  call void @llvm.lifetime.start.p0(i64 32, ptr %590) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %591) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %591) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef @.str.365, ptr noundef nonnull align 1 dereferenceable(1) %591)
          to label %5225 unwind label %5257

5225:                                             ; preds = %5224
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJR12aiMatrix4x4tIfEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef nonnull align 4 dereferenceable(64) %589)
          to label %5226 unwind label %5261

5226:                                             ; preds = %5225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %590) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %591) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %591) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %590) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %592) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %593) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %593) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %592, ptr noundef @.str.366, ptr noundef nonnull align 1 dereferenceable(1) %593)
          to label %5227 unwind label %5266

5227:                                             ; preds = %5226
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJR12aiMatrix4x4tIfEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(32) %592, ptr noundef nonnull align 4 dereferenceable(64) %587)
          to label %5228 unwind label %5270

5228:                                             ; preds = %5227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %592) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %593) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %593) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %592) #10
  %5229 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %5230 = load i8, ptr %5229, align 8, !tbaa !9, !range !37, !noundef !38
  %5231 = trunc i8 %5230 to i1
  %5232 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %563, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %5231, i32 noundef %5232)
          to label %5233 unwind label %5253

5233:                                             ; preds = %5228
  %5234 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %5235 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5234, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef nonnull align 8 dereferenceable(8) %534)
          to label %5236 unwind label %5253

5236:                                             ; preds = %5233
  %5237 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %5238 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %5239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %5238, ptr noundef nonnull align 8 dereferenceable(8) %556)
          to label %5240 unwind label %5253

5240:                                             ; preds = %5236
  %5241 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlRKlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5237, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %5239, ptr noundef nonnull align 8 dereferenceable(8) %562)
          to label %5242 unwind label %5253

5242:                                             ; preds = %5240
  call void @llvm.lifetime.end.p0(i64 64, ptr %589) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %588) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %587) #10
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %572) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %572) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %563) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %563) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %562) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %557) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %556) #10
  br label %5243

5243:                                             ; preds = %5242
  %5244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %554) #10
  br label %4935

5245:                                             ; preds = %5217
  %5246 = landingpad { ptr, i32 }
          cleanup
  %5247 = extractvalue { ptr, i32 } %5246, 0
  store ptr %5247, ptr %5, align 8
  %5248 = extractvalue { ptr, i32 } %5246, 1
  store i32 %5248, ptr %6, align 4
  br label %5277

5249:                                             ; preds = %5221
  %5250 = landingpad { ptr, i32 }
          cleanup
  %5251 = extractvalue { ptr, i32 } %5250, 0
  store ptr %5251, ptr %5, align 8
  %5252 = extractvalue { ptr, i32 } %5250, 1
  store i32 %5252, ptr %6, align 4
  br label %5276

5253:                                             ; preds = %5240, %5236, %5233, %5228, %5223
  %5254 = landingpad { ptr, i32 }
          cleanup
  %5255 = extractvalue { ptr, i32 } %5254, 0
  store ptr %5255, ptr %5, align 8
  %5256 = extractvalue { ptr, i32 } %5254, 1
  store i32 %5256, ptr %6, align 4
  br label %5275

5257:                                             ; preds = %5224
  %5258 = landingpad { ptr, i32 }
          cleanup
  %5259 = extractvalue { ptr, i32 } %5258, 0
  store ptr %5259, ptr %5, align 8
  %5260 = extractvalue { ptr, i32 } %5258, 1
  store i32 %5260, ptr %6, align 4
  br label %5265

5261:                                             ; preds = %5225
  %5262 = landingpad { ptr, i32 }
          cleanup
  %5263 = extractvalue { ptr, i32 } %5262, 0
  store ptr %5263, ptr %5, align 8
  %5264 = extractvalue { ptr, i32 } %5262, 1
  store i32 %5264, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %590) #10
  br label %5265

5265:                                             ; preds = %5261, %5257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %591) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %591) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %590) #10
  br label %5275

5266:                                             ; preds = %5226
  %5267 = landingpad { ptr, i32 }
          cleanup
  %5268 = extractvalue { ptr, i32 } %5267, 0
  store ptr %5268, ptr %5, align 8
  %5269 = extractvalue { ptr, i32 } %5267, 1
  store i32 %5269, ptr %6, align 4
  br label %5274

5270:                                             ; preds = %5227
  %5271 = landingpad { ptr, i32 }
          cleanup
  %5272 = extractvalue { ptr, i32 } %5271, 0
  store ptr %5272, ptr %5, align 8
  %5273 = extractvalue { ptr, i32 } %5271, 1
  store i32 %5273, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %592) #10
  br label %5274

5274:                                             ; preds = %5270, %5266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %593) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %593) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %592) #10
  br label %5275

5275:                                             ; preds = %5274, %5265, %5253
  call void @llvm.lifetime.end.p0(i64 64, ptr %589) #10
  br label %5276

5276:                                             ; preds = %5275, %5249
  call void @llvm.lifetime.end.p0(i64 64, ptr %588) #10
  br label %5277

5277:                                             ; preds = %5276, %5245
  call void @llvm.lifetime.end.p0(i64 64, ptr %587) #10
  br label %5278

5278:                                             ; preds = %5277, %5216
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %572) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %572) #10
  br label %5279

5279:                                             ; preds = %5278, %5129, %5120, %5111
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %563) #10
  br label %5280

5280:                                             ; preds = %5279, %5102
  call void @llvm.lifetime.end.p0(i64 112, ptr %563) #10
  br label %5281

5281:                                             ; preds = %5280, %5090
  call void @llvm.lifetime.end.p0(i64 8, ptr %562) #10
  br label %5282

5282:                                             ; preds = %5281, %5064, %5052
  call void @llvm.lifetime.end.p0(i64 8, ptr %557) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %556) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %555) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %554) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %553) #10
  br label %5407

5283:                                             ; preds = %4937
  %5284 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  %5285 = icmp ne i64 %5284, 0
  br i1 %5285, label %5286, label %5400

5286:                                             ; preds = %5283
  %5287 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  %5288 = icmp ne i64 %5287, 0
  br i1 %5288, label %5289, label %5400

5289:                                             ; preds = %5286
  call void @llvm.lifetime.start.p0(i64 392, ptr %594) #10
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %594)
          to label %5290 unwind label %5329

5290:                                             ; preds = %5289
  %5291 = getelementptr inbounds i8, ptr %594, i64 16
  %5292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5291, ptr noundef @.str.367)
          to label %5293 unwind label %5333

5293:                                             ; preds = %5290
  %5294 = getelementptr inbounds i8, ptr %594, i64 16
  %5295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5294, ptr noundef @.str.368)
          to label %5296 unwind label %5333

5296:                                             ; preds = %5293
  %5297 = load i64, ptr %532, align 8, !tbaa !43
  %5298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %5295, i64 noundef %5297)
          to label %5299 unwind label %5333

5299:                                             ; preds = %5296
  %5300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5298, ptr noundef @.str.369)
          to label %5301 unwind label %5333

5301:                                             ; preds = %5299
  %5302 = getelementptr inbounds i8, ptr %594, i64 16
  %5303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5302, ptr noundef @.str.370)
          to label %5304 unwind label %5333

5304:                                             ; preds = %5301
  %5305 = getelementptr inbounds i8, ptr %594, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr %595) #10
  %5306 = call ptr @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  %5307 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.190", ptr %595, i32 0, i32 0
  store ptr %5306, ptr %5307, align 8
  %5308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK6aiBoneEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %595) #10
  %5309 = load ptr, ptr %5308, align 8, !tbaa !5
  %5310 = getelementptr inbounds %struct.aiBone, ptr %5309, i32 0, i32 0
  %5311 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5310)
          to label %5312 unwind label %5337

5312:                                             ; preds = %5304
  %5313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5305, ptr noundef %5311)
          to label %5314 unwind label %5337

5314:                                             ; preds = %5312
  %5315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5313, ptr noundef @.str.332)
          to label %5316 unwind label %5337

5316:                                             ; preds = %5314
  call void @llvm.lifetime.end.p0(i64 8, ptr %595) #10
  %5317 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  %5318 = icmp ugt i64 %5317, 1
  br i1 %5318, label %5319, label %5341

5319:                                             ; preds = %5316
  %5320 = getelementptr inbounds i8, ptr %594, i64 16
  %5321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5320, ptr noundef @.str.371)
          to label %5322 unwind label %5333

5322:                                             ; preds = %5319
  %5323 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  %5324 = sub i64 %5323, 1
  %5325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %5321, i64 noundef %5324)
          to label %5326 unwind label %5333

5326:                                             ; preds = %5322
  %5327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5325, ptr noundef @.str.372)
          to label %5328 unwind label %5333

5328:                                             ; preds = %5326
  br label %5341

5329:                                             ; preds = %5289
  %5330 = landingpad { ptr, i32 }
          cleanup
  %5331 = extractvalue { ptr, i32 } %5330, 0
  store ptr %5331, ptr %5, align 8
  %5332 = extractvalue { ptr, i32 } %5330, 1
  store i32 %5332, ptr %6, align 4
  br label %5399

5333:                                             ; preds = %5379, %5376, %5369, %5365, %5362, %5344, %5341, %5326, %5322, %5319, %5301, %5299, %5296, %5293, %5290
  %5334 = landingpad { ptr, i32 }
          cleanup
  %5335 = extractvalue { ptr, i32 } %5334, 0
  store ptr %5335, ptr %5, align 8
  %5336 = extractvalue { ptr, i32 } %5334, 1
  store i32 %5336, ptr %6, align 4
  br label %5398

5337:                                             ; preds = %5314, %5312, %5304
  %5338 = landingpad { ptr, i32 }
          cleanup
  %5339 = extractvalue { ptr, i32 } %5338, 0
  store ptr %5339, ptr %5, align 8
  %5340 = extractvalue { ptr, i32 } %5338, 1
  store i32 %5340, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %595) #10
  br label %5398

5341:                                             ; preds = %5328, %5316
  %5342 = getelementptr inbounds i8, ptr %594, i64 16
  %5343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5342, ptr noundef @.str.373)
          to label %5344 unwind label %5333

5344:                                             ; preds = %5341
  %5345 = getelementptr inbounds i8, ptr %594, i64 16
  %5346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5345, ptr noundef @.str.374)
          to label %5347 unwind label %5333

5347:                                             ; preds = %5344
  %5348 = getelementptr inbounds i8, ptr %594, i64 16
  call void @llvm.lifetime.start.p0(i64 8, ptr %596) #10
  %5349 = call ptr @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  %5350 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.178", ptr %596, i32 0, i32 0
  store ptr %5349, ptr %5350, align 8
  %5351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK6aiNodeEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %596) #10
  %5352 = load ptr, ptr %5351, align 8, !tbaa !5
  %5353 = getelementptr inbounds %struct.aiNode, ptr %5352, i32 0, i32 0
  %5354 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5353)
          to label %5355 unwind label %5372

5355:                                             ; preds = %5347
  %5356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5348, ptr noundef %5354)
          to label %5357 unwind label %5372

5357:                                             ; preds = %5355
  %5358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5356, ptr noundef @.str.332)
          to label %5359 unwind label %5372

5359:                                             ; preds = %5357
  call void @llvm.lifetime.end.p0(i64 8, ptr %596) #10
  %5360 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  %5361 = icmp ugt i64 %5360, 1
  br i1 %5361, label %5362, label %5376

5362:                                             ; preds = %5359
  %5363 = getelementptr inbounds i8, ptr %594, i64 16
  %5364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5363, ptr noundef @.str.371)
          to label %5365 unwind label %5333

5365:                                             ; preds = %5362
  %5366 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  %5367 = sub i64 %5366, 1
  %5368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %5364, i64 noundef %5367)
          to label %5369 unwind label %5333

5369:                                             ; preds = %5365
  %5370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5368, ptr noundef @.str.372)
          to label %5371 unwind label %5333

5371:                                             ; preds = %5369
  br label %5376

5372:                                             ; preds = %5357, %5355, %5347
  %5373 = landingpad { ptr, i32 }
          cleanup
  %5374 = extractvalue { ptr, i32 } %5373, 0
  store ptr %5374, ptr %5, align 8
  %5375 = extractvalue { ptr, i32 } %5373, 1
  store i32 %5375, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %596) #10
  br label %5398

5376:                                             ; preds = %5371, %5359
  %5377 = getelementptr inbounds i8, ptr %594, i64 16
  %5378 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5377, ptr noundef @.str.375)
          to label %5379 unwind label %5333

5379:                                             ; preds = %5376
  %5380 = getelementptr inbounds i8, ptr %594, i64 16
  %5381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5380, ptr noundef @.str.376)
          to label %5382 unwind label %5333

5382:                                             ; preds = %5379
  store i1 true, ptr %598, align 1
  %5383 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %597) #10
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %597, ptr noundef nonnull align 8 dereferenceable(128) %594)
          to label %5384 unwind label %5386

5384:                                             ; preds = %5382
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %5383, ptr noundef nonnull align 8 dereferenceable(32) %597)
          to label %5385 unwind label %5390

5385:                                             ; preds = %5384
  store i1 false, ptr %598, align 1
  invoke void @__cxa_throw(ptr %5383, ptr @_ZTI17DeadlyExportError, ptr @_ZNSt13runtime_errorD2Ev) #11
          to label %6497 unwind label %5390

5386:                                             ; preds = %5382
  %5387 = landingpad { ptr, i32 }
          cleanup
  %5388 = extractvalue { ptr, i32 } %5387, 0
  store ptr %5388, ptr %5, align 8
  %5389 = extractvalue { ptr, i32 } %5387, 1
  store i32 %5389, ptr %6, align 4
  br label %5394

5390:                                             ; preds = %5385, %5384
  %5391 = landingpad { ptr, i32 }
          cleanup
  %5392 = extractvalue { ptr, i32 } %5391, 0
  store ptr %5392, ptr %5, align 8
  %5393 = extractvalue { ptr, i32 } %5391, 1
  store i32 %5393, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %597) #10
  br label %5394

5394:                                             ; preds = %5390, %5386
  call void @llvm.lifetime.end.p0(i64 32, ptr %597) #10
  %5395 = load i1, ptr %598, align 1
  br i1 %5395, label %5396, label %5397

5396:                                             ; preds = %5394
  call void @__cxa_free_exception(ptr %5383) #10
  br label %5397

5397:                                             ; preds = %5396, %5394
  br label %5398

5398:                                             ; preds = %5397, %5372, %5337, %5333
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %594) #10
  br label %5399

5399:                                             ; preds = %5398, %5329
  call void @llvm.lifetime.end.p0(i64 392, ptr %594) #10
  br label %5407

5400:                                             ; preds = %5286, %5283
  call void @llvm.lifetime.end.p0(i64 8, ptr %552) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %551) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #10
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %549) #10
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %548) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %535) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %535) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %534) #10
  store i32 0, ptr %17, align 4
  br label %5401

5401:                                             ; preds = %5400, %4883
  call void @llvm.lifetime.end.p0(i64 8, ptr %533) #10
  %5402 = load i32, ptr %17, align 4
  switch i32 %5402, label %6497 [
    i32 0, label %5403
    i32 110, label %5404
  ]

5403:                                             ; preds = %5401
  br label %5404

5404:                                             ; preds = %5403, %5401
  %5405 = load i64, ptr %532, align 8, !tbaa !43
  %5406 = add i64 %5405, 1
  store i64 %5406, ptr %532, align 8, !tbaa !43
  br label %4863, !llvm.loop !164

5407:                                             ; preds = %5399, %5282
  call void @llvm.lifetime.end.p0(i64 8, ptr %552) #10
  br label %5408

5408:                                             ; preds = %5407, %4995
  call void @llvm.lifetime.end.p0(i64 64, ptr %551) #10
  br label %5409

5409:                                             ; preds = %5408, %4991
  call void @llvm.lifetime.end.p0(i64 8, ptr %550) #10
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %549) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %549) #10
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %548) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %548) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %547) #10
  br label %5410

5410:                                             ; preds = %5409, %4987, %4986, %4977, %4968, %4959
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %535) #10
  br label %5411

5411:                                             ; preds = %5410, %4950
  call void @llvm.lifetime.end.p0(i64 112, ptr %535) #10
  br label %5412

5412:                                             ; preds = %5411, %4938
  call void @llvm.lifetime.end.p0(i64 8, ptr %534) #10
  br label %5413

5413:                                             ; preds = %5412, %4884
  call void @llvm.lifetime.end.p0(i64 8, ptr %533) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %532) #10
  br label %6481

5414:                                             ; preds = %4871
  store i32 1, ptr %12, align 4, !tbaa !39
  %5415 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %5415) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %599) #10
  store i64 0, ptr %599, align 8, !tbaa !43
  br label %5416

5416:                                             ; preds = %5614, %5414
  %5417 = load i64, ptr %599, align 8, !tbaa !43
  %5418 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5419 = load ptr, ptr %5418, align 8, !tbaa !44
  %5420 = getelementptr inbounds %struct.aiScene, ptr %5419, i32 0, i32 10
  %5421 = load i32, ptr %5420, align 8, !tbaa !165
  %5422 = zext i32 %5421 to i64
  %5423 = icmp ult i64 %5417, %5422
  br i1 %5423, label %5425, label %5424

5424:                                             ; preds = %5416
  store i32 119, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #10
  br label %5678

5425:                                             ; preds = %5416
  call void @llvm.lifetime.start.p0(i64 8, ptr %600) #10
  %5426 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5427 = load ptr, ptr %5426, align 8, !tbaa !44
  %5428 = getelementptr inbounds %struct.aiScene, ptr %5427, i32 0, i32 11
  %5429 = load ptr, ptr %5428, align 8, !tbaa !166
  %5430 = load i64, ptr %599, align 8, !tbaa !43
  %5431 = getelementptr inbounds ptr, ptr %5429, i64 %5430
  %5432 = load ptr, ptr %5431, align 8, !tbaa !5
  store ptr %5432, ptr %600, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %601) #10
  %5433 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5434 unwind label %5468

5434:                                             ; preds = %5425
  store i64 %5433, ptr %601, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %602) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %603) #10
  %5435 = load ptr, ptr %600, align 8, !tbaa !5
  %5436 = getelementptr inbounds %struct.aiLight, ptr %5435, i32 0, i32 0
  %5437 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5436)
          to label %5438 unwind label %5472

5438:                                             ; preds = %5434
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %603, ptr noundef %5437, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %5439 unwind label %5472

5439:                                             ; preds = %5438
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %602, ptr noundef nonnull align 8 dereferenceable(32) %603, ptr noundef @.str.106)
          to label %5440 unwind label %5476

5440:                                             ; preds = %5439
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %603) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %603) #10
  call void @llvm.lifetime.start.p0(i64 112, ptr %604) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %605) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %606) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %605, ptr noundef @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %606)
          to label %5441 unwind label %5481

5441:                                             ; preds = %5440
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(32) %605)
          to label %5442 unwind label %5485

5442:                                             ; preds = %5441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %605) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %606) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %605) #10
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA6_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(8) %601, ptr noundef nonnull align 8 dereferenceable(32) %602, ptr noundef nonnull align 1 dereferenceable(6) @.str.377)
          to label %5443 unwind label %5490

5443:                                             ; preds = %5442
  call void @llvm.lifetime.start.p0(i64 112, ptr %607) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %608) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %609) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %608, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %609)
          to label %5444 unwind label %5494

5444:                                             ; preds = %5443
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %608)
          to label %5445 unwind label %5498

5445:                                             ; preds = %5444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %608) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %609) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %608) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %610) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %611) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %611) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %610, ptr noundef @.str.99, ptr noundef nonnull align 1 dereferenceable(1) %611)
          to label %5446 unwind label %5503

5446:                                             ; preds = %5445
  %5447 = load ptr, ptr %600, align 8, !tbaa !5
  %5448 = getelementptr inbounds %struct.aiLight, ptr %5447, i32 0, i32 8
  %5449 = getelementptr inbounds %struct.aiColor3D, ptr %5448, i32 0, i32 0
  %5450 = load float, ptr %5449, align 4, !tbaa !167
  %5451 = fpext float %5450 to double
  %5452 = load ptr, ptr %600, align 8, !tbaa !5
  %5453 = getelementptr inbounds %struct.aiLight, ptr %5452, i32 0, i32 8
  %5454 = getelementptr inbounds %struct.aiColor3D, ptr %5453, i32 0, i32 1
  %5455 = load float, ptr %5454, align 4, !tbaa !170
  %5456 = fpext float %5455 to double
  %5457 = load ptr, ptr %600, align 8, !tbaa !5
  %5458 = getelementptr inbounds %struct.aiLight, ptr %5457, i32 0, i32 8
  %5459 = getelementptr inbounds %struct.aiColor3D, ptr %5458, i32 0, i32 2
  %5460 = load float, ptr %5459, align 4, !tbaa !171
  %5461 = fpext float %5460 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %610, double noundef %5451, double noundef %5456, double noundef %5461)
          to label %5462 unwind label %5507

5462:                                             ; preds = %5446
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %610) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %611) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %611) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %610) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %612) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %613) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %613) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %612, ptr noundef @.str.378, ptr noundef nonnull align 1 dereferenceable(1) %613)
          to label %5463 unwind label %5512

5463:                                             ; preds = %5462
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %612, double noundef 1.000000e+03)
          to label %5464 unwind label %5516

5464:                                             ; preds = %5463
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %612) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %613) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %613) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %612) #10
  %5465 = load ptr, ptr %600, align 8, !tbaa !5
  %5466 = getelementptr inbounds %struct.aiLight, ptr %5465, i32 0, i32 1
  %5467 = load i32, ptr %5466, align 4, !tbaa !172
  switch i32 %5467, label %5589 [
    i32 2, label %5521
    i32 1, label %5533
    i32 3, label %5545
  ]

5468:                                             ; preds = %5425
  %5469 = landingpad { ptr, i32 }
          cleanup
  %5470 = extractvalue { ptr, i32 } %5469, 0
  store ptr %5470, ptr %5, align 8
  %5471 = extractvalue { ptr, i32 } %5469, 1
  store i32 %5471, ptr %6, align 4
  br label %5677

5472:                                             ; preds = %5438, %5434
  %5473 = landingpad { ptr, i32 }
          cleanup
  %5474 = extractvalue { ptr, i32 } %5473, 0
  store ptr %5474, ptr %5, align 8
  %5475 = extractvalue { ptr, i32 } %5473, 1
  store i32 %5475, ptr %6, align 4
  br label %5480

5476:                                             ; preds = %5439
  %5477 = landingpad { ptr, i32 }
          cleanup
  %5478 = extractvalue { ptr, i32 } %5477, 0
  store ptr %5478, ptr %5, align 8
  %5479 = extractvalue { ptr, i32 } %5477, 1
  store i32 %5479, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %603) #10
  br label %5480

5480:                                             ; preds = %5476, %5472
  call void @llvm.lifetime.end.p0(i64 32, ptr %603) #10
  br label %5676

5481:                                             ; preds = %5440
  %5482 = landingpad { ptr, i32 }
          cleanup
  %5483 = extractvalue { ptr, i32 } %5482, 0
  store ptr %5483, ptr %5, align 8
  %5484 = extractvalue { ptr, i32 } %5482, 1
  store i32 %5484, ptr %6, align 4
  br label %5489

5485:                                             ; preds = %5441
  %5486 = landingpad { ptr, i32 }
          cleanup
  %5487 = extractvalue { ptr, i32 } %5486, 0
  store ptr %5487, ptr %5, align 8
  %5488 = extractvalue { ptr, i32 } %5486, 1
  store i32 %5488, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %605) #10
  br label %5489

5489:                                             ; preds = %5485, %5481
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %606) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %606) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %605) #10
  br label %5675

5490:                                             ; preds = %5442
  %5491 = landingpad { ptr, i32 }
          cleanup
  %5492 = extractvalue { ptr, i32 } %5491, 0
  store ptr %5492, ptr %5, align 8
  %5493 = extractvalue { ptr, i32 } %5491, 1
  store i32 %5493, ptr %6, align 4
  br label %5674

5494:                                             ; preds = %5443
  %5495 = landingpad { ptr, i32 }
          cleanup
  %5496 = extractvalue { ptr, i32 } %5495, 0
  store ptr %5496, ptr %5, align 8
  %5497 = extractvalue { ptr, i32 } %5495, 1
  store i32 %5497, ptr %6, align 4
  br label %5502

5498:                                             ; preds = %5444
  %5499 = landingpad { ptr, i32 }
          cleanup
  %5500 = extractvalue { ptr, i32 } %5499, 0
  store ptr %5500, ptr %5, align 8
  %5501 = extractvalue { ptr, i32 } %5499, 1
  store i32 %5501, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %608) #10
  br label %5502

5502:                                             ; preds = %5498, %5494
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %609) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %608) #10
  br label %5673

5503:                                             ; preds = %5445
  %5504 = landingpad { ptr, i32 }
          cleanup
  %5505 = extractvalue { ptr, i32 } %5504, 0
  store ptr %5505, ptr %5, align 8
  %5506 = extractvalue { ptr, i32 } %5504, 1
  store i32 %5506, ptr %6, align 4
  br label %5511

5507:                                             ; preds = %5446
  %5508 = landingpad { ptr, i32 }
          cleanup
  %5509 = extractvalue { ptr, i32 } %5508, 0
  store ptr %5509, ptr %5, align 8
  %5510 = extractvalue { ptr, i32 } %5508, 1
  store i32 %5510, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %610) #10
  br label %5511

5511:                                             ; preds = %5507, %5503
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %611) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %611) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %610) #10
  br label %5672

5512:                                             ; preds = %5462
  %5513 = landingpad { ptr, i32 }
          cleanup
  %5514 = extractvalue { ptr, i32 } %5513, 0
  store ptr %5514, ptr %5, align 8
  %5515 = extractvalue { ptr, i32 } %5513, 1
  store i32 %5515, ptr %6, align 4
  br label %5520

5516:                                             ; preds = %5463
  %5517 = landingpad { ptr, i32 }
          cleanup
  %5518 = extractvalue { ptr, i32 } %5517, 0
  store ptr %5518, ptr %5, align 8
  %5519 = extractvalue { ptr, i32 } %5517, 1
  store i32 %5519, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %612) #10
  br label %5520

5520:                                             ; preds = %5516, %5512
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %613) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %613) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %612) #10
  br label %5672

5521:                                             ; preds = %5464
  call void @llvm.lifetime.start.p0(i64 32, ptr %614) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %615) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %614, ptr noundef @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %615)
          to label %5522 unwind label %5524

5522:                                             ; preds = %5521
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %614, i32 noundef 0)
          to label %5523 unwind label %5528

5523:                                             ; preds = %5522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %614) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %615) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %614) #10
  br label %5590

5524:                                             ; preds = %5521
  %5525 = landingpad { ptr, i32 }
          cleanup
  %5526 = extractvalue { ptr, i32 } %5525, 0
  store ptr %5526, ptr %5, align 8
  %5527 = extractvalue { ptr, i32 } %5525, 1
  store i32 %5527, ptr %6, align 4
  br label %5532

5528:                                             ; preds = %5522
  %5529 = landingpad { ptr, i32 }
          cleanup
  %5530 = extractvalue { ptr, i32 } %5529, 0
  store ptr %5530, ptr %5, align 8
  %5531 = extractvalue { ptr, i32 } %5529, 1
  store i32 %5531, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %614) #10
  br label %5532

5532:                                             ; preds = %5528, %5524
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %615) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %615) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %614) #10
  br label %5672

5533:                                             ; preds = %5464
  call void @llvm.lifetime.start.p0(i64 32, ptr %616) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %617) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %616, ptr noundef @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %617)
          to label %5534 unwind label %5536

5534:                                             ; preds = %5533
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %616, i32 noundef 1)
          to label %5535 unwind label %5540

5535:                                             ; preds = %5534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %616) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %617) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %616) #10
  br label %5590

5536:                                             ; preds = %5533
  %5537 = landingpad { ptr, i32 }
          cleanup
  %5538 = extractvalue { ptr, i32 } %5537, 0
  store ptr %5538, ptr %5, align 8
  %5539 = extractvalue { ptr, i32 } %5537, 1
  store i32 %5539, ptr %6, align 4
  br label %5544

5540:                                             ; preds = %5534
  %5541 = landingpad { ptr, i32 }
          cleanup
  %5542 = extractvalue { ptr, i32 } %5541, 0
  store ptr %5542, ptr %5, align 8
  %5543 = extractvalue { ptr, i32 } %5541, 1
  store i32 %5543, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %616) #10
  br label %5544

5544:                                             ; preds = %5540, %5536
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %617) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %617) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %616) #10
  br label %5672

5545:                                             ; preds = %5464
  call void @llvm.lifetime.start.p0(i64 32, ptr %618) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %619) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %619) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %618, ptr noundef @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %619)
          to label %5546 unwind label %5562

5546:                                             ; preds = %5545
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %618, i32 noundef 2)
          to label %5547 unwind label %5566

5547:                                             ; preds = %5546
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %618) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %619) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %619) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %618) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %620) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %621) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %621) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %620, ptr noundef @.str.380, ptr noundef nonnull align 1 dereferenceable(1) %621)
          to label %5548 unwind label %5571

5548:                                             ; preds = %5547
  %5549 = load ptr, ptr %600, align 8, !tbaa !5
  %5550 = getelementptr inbounds %struct.aiLight, ptr %5549, i32 0, i32 11
  %5551 = load float, ptr %5550, align 4, !tbaa !173
  %5552 = fmul float %5551, 0x404CA5DC20000000
  %5553 = fpext float %5552 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %620, double noundef %5553)
          to label %5554 unwind label %5575

5554:                                             ; preds = %5548
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %620) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %621) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %621) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %620) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %622) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %623) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %623) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %622, ptr noundef @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %623)
          to label %5555 unwind label %5580

5555:                                             ; preds = %5554
  %5556 = load ptr, ptr %600, align 8, !tbaa !5
  %5557 = getelementptr inbounds %struct.aiLight, ptr %5556, i32 0, i32 12
  %5558 = load float, ptr %5557, align 4, !tbaa !174
  %5559 = fmul float %5558, 0x404CA5DC20000000
  %5560 = fpext float %5559 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %622, double noundef %5560)
          to label %5561 unwind label %5584

5561:                                             ; preds = %5555
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %622) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %623) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %623) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %622) #10
  br label %5590

5562:                                             ; preds = %5545
  %5563 = landingpad { ptr, i32 }
          cleanup
  %5564 = extractvalue { ptr, i32 } %5563, 0
  store ptr %5564, ptr %5, align 8
  %5565 = extractvalue { ptr, i32 } %5563, 1
  store i32 %5565, ptr %6, align 4
  br label %5570

5566:                                             ; preds = %5546
  %5567 = landingpad { ptr, i32 }
          cleanup
  %5568 = extractvalue { ptr, i32 } %5567, 0
  store ptr %5568, ptr %5, align 8
  %5569 = extractvalue { ptr, i32 } %5567, 1
  store i32 %5569, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %618) #10
  br label %5570

5570:                                             ; preds = %5566, %5562
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %619) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %619) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %618) #10
  br label %5672

5571:                                             ; preds = %5547
  %5572 = landingpad { ptr, i32 }
          cleanup
  %5573 = extractvalue { ptr, i32 } %5572, 0
  store ptr %5573, ptr %5, align 8
  %5574 = extractvalue { ptr, i32 } %5572, 1
  store i32 %5574, ptr %6, align 4
  br label %5579

5575:                                             ; preds = %5548
  %5576 = landingpad { ptr, i32 }
          cleanup
  %5577 = extractvalue { ptr, i32 } %5576, 0
  store ptr %5577, ptr %5, align 8
  %5578 = extractvalue { ptr, i32 } %5576, 1
  store i32 %5578, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %620) #10
  br label %5579

5579:                                             ; preds = %5575, %5571
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %621) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %621) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %620) #10
  br label %5672

5580:                                             ; preds = %5554
  %5581 = landingpad { ptr, i32 }
          cleanup
  %5582 = extractvalue { ptr, i32 } %5581, 0
  store ptr %5582, ptr %5, align 8
  %5583 = extractvalue { ptr, i32 } %5581, 1
  store i32 %5583, ptr %6, align 4
  br label %5588

5584:                                             ; preds = %5555
  %5585 = landingpad { ptr, i32 }
          cleanup
  %5586 = extractvalue { ptr, i32 } %5585, 0
  store ptr %5586, ptr %5, align 8
  %5587 = extractvalue { ptr, i32 } %5585, 1
  store i32 %5587, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %622) #10
  br label %5588

5588:                                             ; preds = %5584, %5580
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %623) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %623) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %622) #10
  br label %5672

5589:                                             ; preds = %5464
  br label %5590

5590:                                             ; preds = %5589, %5561, %5535, %5523
  call void @llvm.lifetime.start.p0(i64 32, ptr %624) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %625) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %624, ptr noundef @.str.382, ptr noundef nonnull align 1 dereferenceable(1) %625)
          to label %5591 unwind label %5617

5591:                                             ; preds = %5590
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %607, ptr noundef nonnull align 8 dereferenceable(32) %624, i32 noundef 0)
          to label %5592 unwind label %5621

5592:                                             ; preds = %5591
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %624) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %625) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %624) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(112) %607)
          to label %5593 unwind label %5626

5593:                                             ; preds = %5592
  call void @llvm.lifetime.start.p0(i64 32, ptr %626) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %627) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %627) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef @.str.383, ptr noundef nonnull align 1 dereferenceable(1) %627)
          to label %5594 unwind label %5630

5594:                                             ; preds = %5593
  call void @llvm.lifetime.start.p0(i64 32, ptr %628) #10
  invoke void @_ZN6Assimp3FBX17FBXExportPropertyC1EPKcb(ptr noundef nonnull align 8 dereferenceable(32) %628, ptr noundef @.str.377, i1 noundef zeroext false)
          to label %5595 unwind label %5634

5595:                                             ; preds = %5594
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJNS0_17FBXExportPropertyEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(32) %628)
          to label %5596 unwind label %5638

5596:                                             ; preds = %5595
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %628) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %628) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %627) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %627) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %626) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %629) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %630) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %630) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef @.str.270, ptr noundef nonnull align 1 dereferenceable(1) %630)
          to label %5597 unwind label %5644

5597:                                             ; preds = %5596
  call void @llvm.lifetime.start.p0(i64 32, ptr %631) #10
  invoke void @_ZN6Assimp3FBX17FBXExportPropertyC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %631, i32 noundef 124)
          to label %5598 unwind label %5648

5598:                                             ; preds = %5597
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJNS0_17FBXExportPropertyEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(32) %629, ptr noundef nonnull align 8 dereferenceable(32) %631)
          to label %5599 unwind label %5652

5599:                                             ; preds = %5598
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %631) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %631) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %629) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %630) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %630) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %629) #10
  %5600 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %5601 = load i8, ptr %5600, align 8, !tbaa !9, !range !37, !noundef !38
  %5602 = trunc i8 %5601 to i1
  %5603 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %604, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %5602, i32 noundef %5603)
          to label %5604 unwind label %5626

5604:                                             ; preds = %5599
  %5605 = load i64, ptr %601, align 8, !tbaa !43
  %5606 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %632) #10
  %5607 = load ptr, ptr %600, align 8, !tbaa !5
  %5608 = getelementptr inbounds %struct.aiLight, ptr %5607, i32 0, i32 0
  %5609 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5608)
          to label %5610 unwind label %5658

5610:                                             ; preds = %5604
  call void @llvm.lifetime.start.p0(i64 1, ptr %633) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %632, ptr noundef %5609, ptr noundef nonnull align 1 dereferenceable(1) %633)
          to label %5611 unwind label %5662

5611:                                             ; preds = %5610
  %5612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %5606, ptr noundef nonnull align 8 dereferenceable(32) %632)
          to label %5613 unwind label %5666

5613:                                             ; preds = %5611
  store i64 %5605, ptr %5612, align 8, !tbaa !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %633) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %632) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %607) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %607) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %604) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %604) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %602) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %602) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %601) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %600) #10
  br label %5614

5614:                                             ; preds = %5613
  %5615 = load i64, ptr %599, align 8, !tbaa !43
  %5616 = add i64 %5615, 1
  store i64 %5616, ptr %599, align 8, !tbaa !43
  br label %5416, !llvm.loop !175

5617:                                             ; preds = %5590
  %5618 = landingpad { ptr, i32 }
          cleanup
  %5619 = extractvalue { ptr, i32 } %5618, 0
  store ptr %5619, ptr %5, align 8
  %5620 = extractvalue { ptr, i32 } %5618, 1
  store i32 %5620, ptr %6, align 4
  br label %5625

5621:                                             ; preds = %5591
  %5622 = landingpad { ptr, i32 }
          cleanup
  %5623 = extractvalue { ptr, i32 } %5622, 0
  store ptr %5623, ptr %5, align 8
  %5624 = extractvalue { ptr, i32 } %5622, 1
  store i32 %5624, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %624) #10
  br label %5625

5625:                                             ; preds = %5621, %5617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %625) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %625) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %624) #10
  br label %5672

5626:                                             ; preds = %5599, %5592
  %5627 = landingpad { ptr, i32 }
          cleanup
  %5628 = extractvalue { ptr, i32 } %5627, 0
  store ptr %5628, ptr %5, align 8
  %5629 = extractvalue { ptr, i32 } %5627, 1
  store i32 %5629, ptr %6, align 4
  br label %5672

5630:                                             ; preds = %5593
  %5631 = landingpad { ptr, i32 }
          cleanup
  %5632 = extractvalue { ptr, i32 } %5631, 0
  store ptr %5632, ptr %5, align 8
  %5633 = extractvalue { ptr, i32 } %5631, 1
  store i32 %5633, ptr %6, align 4
  br label %5643

5634:                                             ; preds = %5594
  %5635 = landingpad { ptr, i32 }
          cleanup
  %5636 = extractvalue { ptr, i32 } %5635, 0
  store ptr %5636, ptr %5, align 8
  %5637 = extractvalue { ptr, i32 } %5635, 1
  store i32 %5637, ptr %6, align 4
  br label %5642

5638:                                             ; preds = %5595
  %5639 = landingpad { ptr, i32 }
          cleanup
  %5640 = extractvalue { ptr, i32 } %5639, 0
  store ptr %5640, ptr %5, align 8
  %5641 = extractvalue { ptr, i32 } %5639, 1
  store i32 %5641, ptr %6, align 4
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %628) #10
  br label %5642

5642:                                             ; preds = %5638, %5634
  call void @llvm.lifetime.end.p0(i64 32, ptr %628) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #10
  br label %5643

5643:                                             ; preds = %5642, %5630
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %627) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %627) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %626) #10
  br label %5672

5644:                                             ; preds = %5596
  %5645 = landingpad { ptr, i32 }
          cleanup
  %5646 = extractvalue { ptr, i32 } %5645, 0
  store ptr %5646, ptr %5, align 8
  %5647 = extractvalue { ptr, i32 } %5645, 1
  store i32 %5647, ptr %6, align 4
  br label %5657

5648:                                             ; preds = %5597
  %5649 = landingpad { ptr, i32 }
          cleanup
  %5650 = extractvalue { ptr, i32 } %5649, 0
  store ptr %5650, ptr %5, align 8
  %5651 = extractvalue { ptr, i32 } %5649, 1
  store i32 %5651, ptr %6, align 4
  br label %5656

5652:                                             ; preds = %5598
  %5653 = landingpad { ptr, i32 }
          cleanup
  %5654 = extractvalue { ptr, i32 } %5653, 0
  store ptr %5654, ptr %5, align 8
  %5655 = extractvalue { ptr, i32 } %5653, 1
  store i32 %5655, ptr %6, align 4
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %631) #10
  br label %5656

5656:                                             ; preds = %5652, %5648
  call void @llvm.lifetime.end.p0(i64 32, ptr %631) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %629) #10
  br label %5657

5657:                                             ; preds = %5656, %5644
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %630) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %630) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %629) #10
  br label %5672

5658:                                             ; preds = %5604
  %5659 = landingpad { ptr, i32 }
          cleanup
  %5660 = extractvalue { ptr, i32 } %5659, 0
  store ptr %5660, ptr %5, align 8
  %5661 = extractvalue { ptr, i32 } %5659, 1
  store i32 %5661, ptr %6, align 4
  br label %5671

5662:                                             ; preds = %5610
  %5663 = landingpad { ptr, i32 }
          cleanup
  %5664 = extractvalue { ptr, i32 } %5663, 0
  store ptr %5664, ptr %5, align 8
  %5665 = extractvalue { ptr, i32 } %5663, 1
  store i32 %5665, ptr %6, align 4
  br label %5670

5666:                                             ; preds = %5611
  %5667 = landingpad { ptr, i32 }
          cleanup
  %5668 = extractvalue { ptr, i32 } %5667, 0
  store ptr %5668, ptr %5, align 8
  %5669 = extractvalue { ptr, i32 } %5667, 1
  store i32 %5669, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %632) #10
  br label %5670

5670:                                             ; preds = %5666, %5662
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %633) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %633) #10
  br label %5671

5671:                                             ; preds = %5670, %5658
  call void @llvm.lifetime.end.p0(i64 32, ptr %632) #10
  br label %5672

5672:                                             ; preds = %5671, %5657, %5643, %5626, %5625, %5588, %5579, %5570, %5544, %5532, %5520, %5511
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %607) #10
  br label %5673

5673:                                             ; preds = %5672, %5502
  call void @llvm.lifetime.end.p0(i64 112, ptr %607) #10
  br label %5674

5674:                                             ; preds = %5673, %5490
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %604) #10
  br label %5675

5675:                                             ; preds = %5674, %5489
  call void @llvm.lifetime.end.p0(i64 112, ptr %604) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %602) #10
  br label %5676

5676:                                             ; preds = %5675, %5480
  call void @llvm.lifetime.end.p0(i64 32, ptr %602) #10
  br label %5677

5677:                                             ; preds = %5676, %5468
  call void @llvm.lifetime.end.p0(i64 8, ptr %601) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %600) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #10
  br label %6481

5678:                                             ; preds = %5424
  %5679 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5680 = load ptr, ptr %5679, align 8, !tbaa !44
  %5681 = getelementptr inbounds %struct.aiScene, ptr %5680, i32 0, i32 1
  %5682 = load ptr, ptr %5681, align 8, !tbaa !140
  invoke void @_ZN6Assimp11FBXExporter15WriteModelNodesERNS_12StreamWriterILb0ELb0EEEPK6aiNodelRKSt13unordered_setIS6_St4hashIS6_ESt8equal_toIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef %5682, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(56) %485)
          to label %5683 unwind label %5699

5683:                                             ; preds = %5678
  call void @llvm.lifetime.start.p0(i64 24, ptr %634) #10
  %5684 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5685 = load ptr, ptr %5684, align 8, !tbaa !44
  %5686 = getelementptr inbounds %struct.aiScene, ptr %5685, i32 0, i32 6
  %5687 = load i32, ptr %5686, align 8, !tbaa !176
  %5688 = zext i32 %5687 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %635) #10
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %635) #10
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef %5688, ptr noundef nonnull align 1 dereferenceable(1) %635)
          to label %5689 unwind label %5703

5689:                                             ; preds = %5683
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %635) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %635) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %636) #10
  store i64 0, ptr %636, align 8, !tbaa !43
  br label %5690

5690:                                             ; preds = %5758, %5689
  %5691 = load i64, ptr %636, align 8, !tbaa !43
  %5692 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5693 = load ptr, ptr %5692, align 8, !tbaa !44
  %5694 = getelementptr inbounds %struct.aiScene, ptr %5693, i32 0, i32 6
  %5695 = load i32, ptr %5694, align 8, !tbaa !176
  %5696 = zext i32 %5695 to i64
  %5697 = icmp ult i64 %5691, %5696
  br i1 %5697, label %5707, label %5698

5698:                                             ; preds = %5690
  store i32 123, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %636) #10
  br label %5842

5699:                                             ; preds = %5678
  %5700 = landingpad { ptr, i32 }
          cleanup
  %5701 = extractvalue { ptr, i32 } %5700, 0
  store ptr %5701, ptr %5, align 8
  %5702 = extractvalue { ptr, i32 } %5700, 1
  store i32 %5702, ptr %6, align 4
  br label %6481

5703:                                             ; preds = %5683
  %5704 = landingpad { ptr, i32 }
          cleanup
  %5705 = extractvalue { ptr, i32 } %5704, 0
  store ptr %5705, ptr %5, align 8
  %5706 = extractvalue { ptr, i32 } %5704, 1
  store i32 %5706, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %635) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %635) #10
  br label %6480

5707:                                             ; preds = %5690
  call void @llvm.lifetime.start.p0(i64 8, ptr %637) #10
  %5708 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5709 unwind label %5761

5709:                                             ; preds = %5707
  store i64 %5708, ptr %637, align 8, !tbaa !43
  %5710 = load i64, ptr %637, align 8, !tbaa !43
  %5711 = load i64, ptr %636, align 8, !tbaa !43
  %5712 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef %5711) #10
  store i64 %5710, ptr %5712, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %638) #10
  %5713 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5714 = load ptr, ptr %5713, align 8, !tbaa !44
  %5715 = getelementptr inbounds %struct.aiScene, ptr %5714, i32 0, i32 7
  %5716 = load ptr, ptr %5715, align 8, !tbaa !177
  %5717 = load i64, ptr %636, align 8, !tbaa !43
  %5718 = getelementptr inbounds ptr, ptr %5716, i64 %5717
  %5719 = load ptr, ptr %5718, align 8, !tbaa !5
  store ptr %5719, ptr %638, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 112, ptr %639) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %640) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %641) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %641)
          to label %5720 unwind label %5765

5720:                                             ; preds = %5709
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %639, ptr noundef nonnull align 8 dereferenceable(32) %640)
          to label %5721 unwind label %5769

5721:                                             ; preds = %5720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %641) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %640) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %642) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %643) #10
  %5722 = load ptr, ptr %638, align 8, !tbaa !5
  %5723 = getelementptr inbounds %struct.aiAnimation, ptr %5722, i32 0, i32 0
  %5724 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %5723)
          to label %5725 unwind label %5774

5725:                                             ; preds = %5721
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %643, ptr noundef %5724, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %5726 unwind label %5774

5726:                                             ; preds = %5725
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %642, ptr noundef nonnull align 8 dereferenceable(32) %643, ptr noundef @.str.384)
          to label %5727 unwind label %5778

5727:                                             ; preds = %5726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %643) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %643) #10
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %639, ptr noundef nonnull align 8 dereferenceable(8) %637, ptr noundef nonnull align 8 dereferenceable(32) %642, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %5728 unwind label %5783

5728:                                             ; preds = %5727
  call void @llvm.lifetime.start.p0(i64 112, ptr %644) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %645) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %646) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %646)
          to label %5729 unwind label %5787

5729:                                             ; preds = %5728
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %644, ptr noundef nonnull align 8 dereferenceable(32) %645)
          to label %5730 unwind label %5791

5730:                                             ; preds = %5729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %646) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %645) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %647) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %648) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %648) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %647, ptr noundef @.str.87, ptr noundef nonnull align 1 dereferenceable(1) %648)
          to label %5731 unwind label %5796

5731:                                             ; preds = %5730
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %644, ptr noundef nonnull align 8 dereferenceable(32) %647, i64 noundef 0)
          to label %5732 unwind label %5800

5732:                                             ; preds = %5731
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %647) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %648) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %648) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %647) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %649) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %650) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %650) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %649, ptr noundef @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %650)
          to label %5733 unwind label %5805

5733:                                             ; preds = %5732
  %5734 = load ptr, ptr %638, align 8, !tbaa !5
  %5735 = getelementptr inbounds %struct.aiAnimation, ptr %5734, i32 0, i32 1
  %5736 = load double, ptr %5735, align 8, !tbaa !178
  %5737 = load ptr, ptr %638, align 8, !tbaa !5
  %5738 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %5736, ptr noundef %5737)
          to label %5739 unwind label %5809

5739:                                             ; preds = %5733
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %644, ptr noundef nonnull align 8 dereferenceable(32) %649, i64 noundef %5738)
          to label %5740 unwind label %5809

5740:                                             ; preds = %5739
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %649) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %650) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %650) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %649) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %651) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %652) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %652) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %652)
          to label %5741 unwind label %5814

5741:                                             ; preds = %5740
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %644, ptr noundef nonnull align 8 dereferenceable(32) %651, i64 noundef 0)
          to label %5742 unwind label %5818

5742:                                             ; preds = %5741
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %651) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %652) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %652) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %651) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %653) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %654) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %654) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %653, ptr noundef @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %654)
          to label %5743 unwind label %5823

5743:                                             ; preds = %5742
  %5744 = load ptr, ptr %638, align 8, !tbaa !5
  %5745 = getelementptr inbounds %struct.aiAnimation, ptr %5744, i32 0, i32 1
  %5746 = load double, ptr %5745, align 8, !tbaa !178
  %5747 = load ptr, ptr %638, align 8, !tbaa !5
  %5748 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %5746, ptr noundef %5747)
          to label %5749 unwind label %5827

5749:                                             ; preds = %5743
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %644, ptr noundef nonnull align 8 dereferenceable(32) %653, i64 noundef %5748)
          to label %5750 unwind label %5827

5750:                                             ; preds = %5749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %653) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %654) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %654) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %653) #10
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %639, ptr noundef nonnull align 8 dereferenceable(112) %644)
          to label %5751 unwind label %5832

5751:                                             ; preds = %5750
  %5752 = getelementptr inbounds %"class.Assimp::FBX::Node", ptr %639, i32 0, i32 3
  store i8 1, ptr %5752, align 8, !tbaa !180
  %5753 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %5754 = load i8, ptr %5753, align 8, !tbaa !9, !range !37, !noundef !38
  %5755 = trunc i8 %5754 to i1
  %5756 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %639, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %5755, i32 noundef %5756)
          to label %5757 unwind label %5832

5757:                                             ; preds = %5751
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %644) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %644) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %642) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %639) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %639) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %638) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %637) #10
  br label %5758

5758:                                             ; preds = %5757
  %5759 = load i64, ptr %636, align 8, !tbaa !43
  %5760 = add i64 %5759, 1
  store i64 %5760, ptr %636, align 8, !tbaa !43
  br label %5690, !llvm.loop !186

5761:                                             ; preds = %5707
  %5762 = landingpad { ptr, i32 }
          cleanup
  %5763 = extractvalue { ptr, i32 } %5762, 0
  store ptr %5763, ptr %5, align 8
  %5764 = extractvalue { ptr, i32 } %5762, 1
  store i32 %5764, ptr %6, align 4
  br label %5841

5765:                                             ; preds = %5709
  %5766 = landingpad { ptr, i32 }
          cleanup
  %5767 = extractvalue { ptr, i32 } %5766, 0
  store ptr %5767, ptr %5, align 8
  %5768 = extractvalue { ptr, i32 } %5766, 1
  store i32 %5768, ptr %6, align 4
  br label %5773

5769:                                             ; preds = %5720
  %5770 = landingpad { ptr, i32 }
          cleanup
  %5771 = extractvalue { ptr, i32 } %5770, 0
  store ptr %5771, ptr %5, align 8
  %5772 = extractvalue { ptr, i32 } %5770, 1
  store i32 %5772, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %640) #10
  br label %5773

5773:                                             ; preds = %5769, %5765
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %641) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %641) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %640) #10
  br label %5840

5774:                                             ; preds = %5725, %5721
  %5775 = landingpad { ptr, i32 }
          cleanup
  %5776 = extractvalue { ptr, i32 } %5775, 0
  store ptr %5776, ptr %5, align 8
  %5777 = extractvalue { ptr, i32 } %5775, 1
  store i32 %5777, ptr %6, align 4
  br label %5782

5778:                                             ; preds = %5726
  %5779 = landingpad { ptr, i32 }
          cleanup
  %5780 = extractvalue { ptr, i32 } %5779, 0
  store ptr %5780, ptr %5, align 8
  %5781 = extractvalue { ptr, i32 } %5779, 1
  store i32 %5781, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %643) #10
  br label %5782

5782:                                             ; preds = %5778, %5774
  call void @llvm.lifetime.end.p0(i64 32, ptr %643) #10
  br label %5839

5783:                                             ; preds = %5727
  %5784 = landingpad { ptr, i32 }
          cleanup
  %5785 = extractvalue { ptr, i32 } %5784, 0
  store ptr %5785, ptr %5, align 8
  %5786 = extractvalue { ptr, i32 } %5784, 1
  store i32 %5786, ptr %6, align 4
  br label %5838

5787:                                             ; preds = %5728
  %5788 = landingpad { ptr, i32 }
          cleanup
  %5789 = extractvalue { ptr, i32 } %5788, 0
  store ptr %5789, ptr %5, align 8
  %5790 = extractvalue { ptr, i32 } %5788, 1
  store i32 %5790, ptr %6, align 4
  br label %5795

5791:                                             ; preds = %5729
  %5792 = landingpad { ptr, i32 }
          cleanup
  %5793 = extractvalue { ptr, i32 } %5792, 0
  store ptr %5793, ptr %5, align 8
  %5794 = extractvalue { ptr, i32 } %5792, 1
  store i32 %5794, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %645) #10
  br label %5795

5795:                                             ; preds = %5791, %5787
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %646) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %646) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %645) #10
  br label %5837

5796:                                             ; preds = %5730
  %5797 = landingpad { ptr, i32 }
          cleanup
  %5798 = extractvalue { ptr, i32 } %5797, 0
  store ptr %5798, ptr %5, align 8
  %5799 = extractvalue { ptr, i32 } %5797, 1
  store i32 %5799, ptr %6, align 4
  br label %5804

5800:                                             ; preds = %5731
  %5801 = landingpad { ptr, i32 }
          cleanup
  %5802 = extractvalue { ptr, i32 } %5801, 0
  store ptr %5802, ptr %5, align 8
  %5803 = extractvalue { ptr, i32 } %5801, 1
  store i32 %5803, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %647) #10
  br label %5804

5804:                                             ; preds = %5800, %5796
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %648) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %648) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %647) #10
  br label %5836

5805:                                             ; preds = %5732
  %5806 = landingpad { ptr, i32 }
          cleanup
  %5807 = extractvalue { ptr, i32 } %5806, 0
  store ptr %5807, ptr %5, align 8
  %5808 = extractvalue { ptr, i32 } %5806, 1
  store i32 %5808, ptr %6, align 4
  br label %5813

5809:                                             ; preds = %5739, %5733
  %5810 = landingpad { ptr, i32 }
          cleanup
  %5811 = extractvalue { ptr, i32 } %5810, 0
  store ptr %5811, ptr %5, align 8
  %5812 = extractvalue { ptr, i32 } %5810, 1
  store i32 %5812, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %649) #10
  br label %5813

5813:                                             ; preds = %5809, %5805
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %650) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %650) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %649) #10
  br label %5836

5814:                                             ; preds = %5740
  %5815 = landingpad { ptr, i32 }
          cleanup
  %5816 = extractvalue { ptr, i32 } %5815, 0
  store ptr %5816, ptr %5, align 8
  %5817 = extractvalue { ptr, i32 } %5815, 1
  store i32 %5817, ptr %6, align 4
  br label %5822

5818:                                             ; preds = %5741
  %5819 = landingpad { ptr, i32 }
          cleanup
  %5820 = extractvalue { ptr, i32 } %5819, 0
  store ptr %5820, ptr %5, align 8
  %5821 = extractvalue { ptr, i32 } %5819, 1
  store i32 %5821, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %651) #10
  br label %5822

5822:                                             ; preds = %5818, %5814
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %652) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %652) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %651) #10
  br label %5836

5823:                                             ; preds = %5742
  %5824 = landingpad { ptr, i32 }
          cleanup
  %5825 = extractvalue { ptr, i32 } %5824, 0
  store ptr %5825, ptr %5, align 8
  %5826 = extractvalue { ptr, i32 } %5824, 1
  store i32 %5826, ptr %6, align 4
  br label %5831

5827:                                             ; preds = %5749, %5743
  %5828 = landingpad { ptr, i32 }
          cleanup
  %5829 = extractvalue { ptr, i32 } %5828, 0
  store ptr %5829, ptr %5, align 8
  %5830 = extractvalue { ptr, i32 } %5828, 1
  store i32 %5830, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %653) #10
  br label %5831

5831:                                             ; preds = %5827, %5823
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %654) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %654) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %653) #10
  br label %5836

5832:                                             ; preds = %5751, %5750
  %5833 = landingpad { ptr, i32 }
          cleanup
  %5834 = extractvalue { ptr, i32 } %5833, 0
  store ptr %5834, ptr %5, align 8
  %5835 = extractvalue { ptr, i32 } %5833, 1
  store i32 %5835, ptr %6, align 4
  br label %5836

5836:                                             ; preds = %5832, %5831, %5822, %5813, %5804
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %644) #10
  br label %5837

5837:                                             ; preds = %5836, %5795
  call void @llvm.lifetime.end.p0(i64 112, ptr %644) #10
  br label %5838

5838:                                             ; preds = %5837, %5783
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %642) #10
  br label %5839

5839:                                             ; preds = %5838, %5782
  call void @llvm.lifetime.end.p0(i64 32, ptr %642) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %639) #10
  br label %5840

5840:                                             ; preds = %5839, %5773
  call void @llvm.lifetime.end.p0(i64 112, ptr %639) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %638) #10
  br label %5841

5841:                                             ; preds = %5840, %5761
  call void @llvm.lifetime.end.p0(i64 8, ptr %637) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %636) #10
  br label %6479

5842:                                             ; preds = %5698
  call void @llvm.lifetime.start.p0(i64 24, ptr %655) #10
  %5843 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5844 = load ptr, ptr %5843, align 8, !tbaa !44
  %5845 = getelementptr inbounds %struct.aiScene, ptr %5844, i32 0, i32 6
  %5846 = load i32, ptr %5845, align 8, !tbaa !176
  %5847 = zext i32 %5846 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %656) #10
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %656) #10
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %655, i64 noundef %5847, ptr noundef nonnull align 1 dereferenceable(1) %656)
          to label %5848 unwind label %5858

5848:                                             ; preds = %5842
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %656) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %656) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %657) #10
  store i64 0, ptr %657, align 8, !tbaa !43
  br label %5849

5849:                                             ; preds = %5883, %5848
  %5850 = load i64, ptr %657, align 8, !tbaa !43
  %5851 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5852 = load ptr, ptr %5851, align 8, !tbaa !44
  %5853 = getelementptr inbounds %struct.aiScene, ptr %5852, i32 0, i32 6
  %5854 = load i32, ptr %5853, align 8, !tbaa !176
  %5855 = zext i32 %5854 to i64
  %5856 = icmp ult i64 %5850, %5855
  br i1 %5856, label %5862, label %5857

5857:                                             ; preds = %5849
  store i32 126, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %657) #10
  br label %5915

5858:                                             ; preds = %5842
  %5859 = landingpad { ptr, i32 }
          cleanup
  %5860 = extractvalue { ptr, i32 } %5859, 0
  store ptr %5860, ptr %5, align 8
  %5861 = extractvalue { ptr, i32 } %5859, 1
  store i32 %5861, ptr %6, align 4
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %656) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %656) #10
  br label %6478

5862:                                             ; preds = %5849
  call void @llvm.lifetime.start.p0(i64 8, ptr %658) #10
  %5863 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5864 unwind label %5886

5864:                                             ; preds = %5862
  store i64 %5863, ptr %658, align 8, !tbaa !43
  %5865 = load i64, ptr %658, align 8, !tbaa !43
  %5866 = load i64, ptr %657, align 8, !tbaa !43
  %5867 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %655, i64 noundef %5866) #10
  store i64 %5865, ptr %5867, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 112, ptr %659) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %660) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %661) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %661)
          to label %5868 unwind label %5890

5868:                                             ; preds = %5864
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %659, ptr noundef nonnull align 8 dereferenceable(32) %660)
          to label %5869 unwind label %5894

5869:                                             ; preds = %5868
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %662) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %662, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef @.str.385)
          to label %5870 unwind label %5899

5870:                                             ; preds = %5869
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %659, ptr noundef nonnull align 8 dereferenceable(8) %658, ptr noundef nonnull align 8 dereferenceable(32) %662, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %5871 unwind label %5903

5871:                                             ; preds = %5870
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %662) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %662) #10
  %5872 = getelementptr inbounds %"class.Assimp::FBX::Node", ptr %659, i32 0, i32 3
  store i8 1, ptr %5872, align 8, !tbaa !180
  %5873 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %5874 = load i8, ptr %5873, align 8, !tbaa !9, !range !37, !noundef !38
  %5875 = trunc i8 %5874 to i1
  %5876 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %659, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %5875, i32 noundef %5876)
          to label %5877 unwind label %5908

5877:                                             ; preds = %5871
  %5878 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 4
  %5879 = load i64, ptr %657, align 8, !tbaa !43
  %5880 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %634, i64 noundef %5879) #10
  %5881 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5878, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %658, ptr noundef nonnull align 8 dereferenceable(8) %5880)
          to label %5882 unwind label %5908

5882:                                             ; preds = %5877
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %659) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %659) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %658) #10
  br label %5883

5883:                                             ; preds = %5882
  %5884 = load i64, ptr %657, align 8, !tbaa !43
  %5885 = add i64 %5884, 1
  store i64 %5885, ptr %657, align 8, !tbaa !43
  br label %5849, !llvm.loop !187

5886:                                             ; preds = %5862
  %5887 = landingpad { ptr, i32 }
          cleanup
  %5888 = extractvalue { ptr, i32 } %5887, 0
  store ptr %5888, ptr %5, align 8
  %5889 = extractvalue { ptr, i32 } %5887, 1
  store i32 %5889, ptr %6, align 4
  br label %5914

5890:                                             ; preds = %5864
  %5891 = landingpad { ptr, i32 }
          cleanup
  %5892 = extractvalue { ptr, i32 } %5891, 0
  store ptr %5892, ptr %5, align 8
  %5893 = extractvalue { ptr, i32 } %5891, 1
  store i32 %5893, ptr %6, align 4
  br label %5898

5894:                                             ; preds = %5868
  %5895 = landingpad { ptr, i32 }
          cleanup
  %5896 = extractvalue { ptr, i32 } %5895, 0
  store ptr %5896, ptr %5, align 8
  %5897 = extractvalue { ptr, i32 } %5895, 1
  store i32 %5897, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #10
  br label %5898

5898:                                             ; preds = %5894, %5890
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #10
  br label %5913

5899:                                             ; preds = %5869
  %5900 = landingpad { ptr, i32 }
          cleanup
  %5901 = extractvalue { ptr, i32 } %5900, 0
  store ptr %5901, ptr %5, align 8
  %5902 = extractvalue { ptr, i32 } %5900, 1
  store i32 %5902, ptr %6, align 4
  br label %5907

5903:                                             ; preds = %5870
  %5904 = landingpad { ptr, i32 }
          cleanup
  %5905 = extractvalue { ptr, i32 } %5904, 0
  store ptr %5905, ptr %5, align 8
  %5906 = extractvalue { ptr, i32 } %5904, 1
  store i32 %5906, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %662) #10
  br label %5907

5907:                                             ; preds = %5903, %5899
  call void @llvm.lifetime.end.p0(i64 32, ptr %662) #10
  br label %5912

5908:                                             ; preds = %5877, %5871
  %5909 = landingpad { ptr, i32 }
          cleanup
  %5910 = extractvalue { ptr, i32 } %5909, 0
  store ptr %5910, ptr %5, align 8
  %5911 = extractvalue { ptr, i32 } %5909, 1
  store i32 %5911, ptr %6, align 4
  br label %5912

5912:                                             ; preds = %5908, %5907
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %659) #10
  br label %5913

5913:                                             ; preds = %5912, %5898
  call void @llvm.lifetime.end.p0(i64 112, ptr %659) #10
  br label %5914

5914:                                             ; preds = %5913, %5886
  call void @llvm.lifetime.end.p0(i64 8, ptr %658) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %657) #10
  br label %6477

5915:                                             ; preds = %5857
  call void @llvm.lifetime.start.p0(i64 24, ptr %663) #10
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %663) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %664) #10
  store i64 0, ptr %664, align 8, !tbaa !43
  br label %5916

5916:                                             ; preds = %6083, %5915
  %5917 = load i64, ptr %664, align 8, !tbaa !43
  %5918 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5919 = load ptr, ptr %5918, align 8, !tbaa !44
  %5920 = getelementptr inbounds %struct.aiScene, ptr %5919, i32 0, i32 6
  %5921 = load i32, ptr %5920, align 8, !tbaa !176
  %5922 = zext i32 %5921 to i64
  %5923 = icmp ult i64 %5917, %5922
  br i1 %5923, label %5925, label %5924

5924:                                             ; preds = %5916
  store i32 129, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %664) #10
  br label %6091

5925:                                             ; preds = %5916
  call void @llvm.lifetime.start.p0(i64 8, ptr %665) #10
  %5926 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5927 = load ptr, ptr %5926, align 8, !tbaa !44
  %5928 = getelementptr inbounds %struct.aiScene, ptr %5927, i32 0, i32 7
  %5929 = load ptr, ptr %5928, align 8, !tbaa !177
  %5930 = load i64, ptr %664, align 8, !tbaa !43
  %5931 = getelementptr inbounds ptr, ptr %5929, i64 %5930
  %5932 = load ptr, ptr %5931, align 8, !tbaa !5
  store ptr %5932, ptr %665, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %666) #10
  %5933 = load i64, ptr %664, align 8, !tbaa !43
  %5934 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %655, i64 noundef %5933) #10
  %5935 = load i64, ptr %5934, align 8, !tbaa !43
  store i64 %5935, ptr %666, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr %667) #10
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %667) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %668) #10
  store i64 0, ptr %668, align 8, !tbaa !43
  br label %5936

5936:                                             ; preds = %6016, %5925
  %5937 = load i64, ptr %668, align 8, !tbaa !43
  %5938 = load ptr, ptr %665, align 8, !tbaa !5
  %5939 = getelementptr inbounds %struct.aiAnimation, ptr %5938, i32 0, i32 3
  %5940 = load i32, ptr %5939, align 8, !tbaa !188
  %5941 = zext i32 %5940 to i64
  %5942 = icmp ult i64 %5937, %5941
  br i1 %5942, label %5944, label %5943

5943:                                             ; preds = %5936
  store i32 132, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %668) #10
  br label %6081

5944:                                             ; preds = %5936
  call void @llvm.lifetime.start.p0(i64 8, ptr %669) #10
  %5945 = load ptr, ptr %665, align 8, !tbaa !5
  %5946 = getelementptr inbounds %struct.aiAnimation, ptr %5945, i32 0, i32 4
  %5947 = load ptr, ptr %5946, align 8, !tbaa !189
  %5948 = load i64, ptr %668, align 8, !tbaa !43
  %5949 = getelementptr inbounds ptr, ptr %5947, i64 %5948
  %5950 = load ptr, ptr %5949, align 8, !tbaa !5
  store ptr %5950, ptr %669, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %670) #10
  %5951 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5952 = load ptr, ptr %5951, align 8, !tbaa !44
  %5953 = getelementptr inbounds %struct.aiScene, ptr %5952, i32 0, i32 1
  %5954 = load ptr, ptr %5953, align 8, !tbaa !140
  %5955 = load ptr, ptr %669, align 8, !tbaa !5
  %5956 = getelementptr inbounds %struct.aiNodeAnim, ptr %5955, i32 0, i32 0
  %5957 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %5954, ptr noundef nonnull align 4 dereferenceable(1028) %5956)
          to label %5958 unwind label %6019

5958:                                             ; preds = %5944
  store ptr %5957, ptr %670, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %671) #10
  %5959 = load ptr, ptr %670, align 8, !tbaa !5
  %5960 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %5961 = load ptr, ptr %5960, align 8, !tbaa !44
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind writable sret(%class.aiMatrix4x4t) align 4 %671, ptr noundef %5959, ptr noundef %5961)
          to label %5962 unwind label %6023

5962:                                             ; preds = %5958
  call void @llvm.lifetime.start.p0(i64 12, ptr %672) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %672) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %673) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %673) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %674) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %674) #10
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %671, ptr noundef nonnull align 4 dereferenceable(12) %674, ptr noundef nonnull align 4 dereferenceable(12) %673, ptr noundef nonnull align 4 dereferenceable(12) %672)
          to label %5963 unwind label %6027

5963:                                             ; preds = %5962
  call void @llvm.lifetime.start.p0(i64 24, ptr %675) #10
  %5964 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5965 unwind label %6031

5965:                                             ; preds = %5963
  %5966 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 0) #10
  store i64 %5964, ptr %5966, align 8, !tbaa !43
  %5967 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5968 unwind label %6031

5968:                                             ; preds = %5965
  %5969 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 1) #10
  store i64 %5967, ptr %5969, align 8, !tbaa !43
  %5970 = invoke noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %742)
          to label %5971 unwind label %6031

5971:                                             ; preds = %5968
  %5972 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 2) #10
  store i64 %5970, ptr %5972, align 8, !tbaa !43
  %5973 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 0) #10
  %5974 = load i64, ptr %5973, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %676) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %677) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %677)
          to label %5975 unwind label %6035

5975:                                             ; preds = %5971
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %678, ptr align 4 %672, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 32, ptr %679) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %680) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %679, ptr noundef @.str.180, ptr noundef nonnull align 1 dereferenceable(1) %680)
          to label %5976 unwind label %6039

5976:                                             ; preds = %5975
  %5977 = load i64, ptr %666, align 8, !tbaa !43
  %5978 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %5979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %5978, ptr noundef nonnull align 8 dereferenceable(8) %670)
          to label %5980 unwind label %6043

5980:                                             ; preds = %5976
  %5981 = load i64, ptr %5979, align 8, !tbaa !43
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %681, ptr align 4 %678, i64 12, i1 false)
  %5982 = getelementptr inbounds { <2 x float>, float }, ptr %681, i32 0, i32 0
  %5983 = load <2 x float>, ptr %5982, align 4
  %5984 = getelementptr inbounds { <2 x float>, float }, ptr %681, i32 0, i32 1
  %5985 = load float, ptr %5984, align 4
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, i64 noundef %5974, ptr noundef nonnull align 8 dereferenceable(32) %676, <2 x float> %5983, float %5985, ptr noundef nonnull align 8 dereferenceable(32) %679, i64 noundef %5977, i64 noundef %5981)
          to label %5986 unwind label %6043

5986:                                             ; preds = %5980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %679) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %680) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %679) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %677) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %676) #10
  %5987 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 1) #10
  %5988 = load i64, ptr %5987, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %682) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %683) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %682, ptr noundef @.str.387, ptr noundef nonnull align 1 dereferenceable(1) %683)
          to label %5989 unwind label %6049

5989:                                             ; preds = %5986
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %684, ptr align 4 %673, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 32, ptr %685) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %686) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %686) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %685, ptr noundef @.str.181, ptr noundef nonnull align 1 dereferenceable(1) %686)
          to label %5990 unwind label %6053

5990:                                             ; preds = %5989
  %5991 = load i64, ptr %666, align 8, !tbaa !43
  %5992 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %5993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %5992, ptr noundef nonnull align 8 dereferenceable(8) %670)
          to label %5994 unwind label %6057

5994:                                             ; preds = %5990
  %5995 = load i64, ptr %5993, align 8, !tbaa !43
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %687, ptr align 4 %684, i64 12, i1 false)
  %5996 = getelementptr inbounds { <2 x float>, float }, ptr %687, i32 0, i32 0
  %5997 = load <2 x float>, ptr %5996, align 4
  %5998 = getelementptr inbounds { <2 x float>, float }, ptr %687, i32 0, i32 1
  %5999 = load float, ptr %5998, align 4
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, i64 noundef %5988, ptr noundef nonnull align 8 dereferenceable(32) %682, <2 x float> %5997, float %5999, ptr noundef nonnull align 8 dereferenceable(32) %685, i64 noundef %5991, i64 noundef %5995)
          to label %6000 unwind label %6057

6000:                                             ; preds = %5994
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %685) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %686) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %686) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %685) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %683) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %682) #10
  %6001 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %675, i64 noundef 2) #10
  %6002 = load i64, ptr %6001, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %688) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %689) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %688, ptr noundef @.str.388, ptr noundef nonnull align 1 dereferenceable(1) %689)
          to label %6003 unwind label %6063

6003:                                             ; preds = %6000
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %690, ptr align 4 %674, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 32, ptr %691) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %692) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %692) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %691, ptr noundef @.str.389, ptr noundef nonnull align 1 dereferenceable(1) %692)
          to label %6004 unwind label %6067

6004:                                             ; preds = %6003
  %6005 = load i64, ptr %666, align 8, !tbaa !43
  %6006 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 7
  %6007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %6006, ptr noundef nonnull align 8 dereferenceable(8) %670)
          to label %6008 unwind label %6071

6008:                                             ; preds = %6004
  %6009 = load i64, ptr %6007, align 8, !tbaa !43
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %693, ptr align 4 %690, i64 12, i1 false)
  %6010 = getelementptr inbounds { <2 x float>, float }, ptr %693, i32 0, i32 0
  %6011 = load <2 x float>, ptr %6010, align 4
  %6012 = getelementptr inbounds { <2 x float>, float }, ptr %693, i32 0, i32 1
  %6013 = load float, ptr %6012, align 4
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, i64 noundef %6002, ptr noundef nonnull align 8 dereferenceable(32) %688, <2 x float> %6011, float %6013, ptr noundef nonnull align 8 dereferenceable(32) %691, i64 noundef %6005, i64 noundef %6009)
          to label %6014 unwind label %6071

6014:                                             ; preds = %6008
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %691) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %692) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %692) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %691) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %689) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %688) #10
  invoke void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %667, ptr noundef nonnull align 8 dereferenceable(24) %675)
          to label %6015 unwind label %6031

6015:                                             ; preds = %6014
  call void @llvm.lifetime.end.p0(i64 24, ptr %675) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %674) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %673) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %672) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %671) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %670) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %669) #10
  br label %6016

6016:                                             ; preds = %6015
  %6017 = load i64, ptr %668, align 8, !tbaa !43
  %6018 = add i64 %6017, 1
  store i64 %6018, ptr %668, align 8, !tbaa !43
  br label %5936, !llvm.loop !190

6019:                                             ; preds = %5944
  %6020 = landingpad { ptr, i32 }
          cleanup
  %6021 = extractvalue { ptr, i32 } %6020, 0
  store ptr %6021, ptr %5, align 8
  %6022 = extractvalue { ptr, i32 } %6020, 1
  store i32 %6022, ptr %6, align 4
  br label %6080

6023:                                             ; preds = %5958
  %6024 = landingpad { ptr, i32 }
          cleanup
  %6025 = extractvalue { ptr, i32 } %6024, 0
  store ptr %6025, ptr %5, align 8
  %6026 = extractvalue { ptr, i32 } %6024, 1
  store i32 %6026, ptr %6, align 4
  br label %6079

6027:                                             ; preds = %5962
  %6028 = landingpad { ptr, i32 }
          cleanup
  %6029 = extractvalue { ptr, i32 } %6028, 0
  store ptr %6029, ptr %5, align 8
  %6030 = extractvalue { ptr, i32 } %6028, 1
  store i32 %6030, ptr %6, align 4
  br label %6078

6031:                                             ; preds = %6014, %5968, %5965, %5963
  %6032 = landingpad { ptr, i32 }
          cleanup
  %6033 = extractvalue { ptr, i32 } %6032, 0
  store ptr %6033, ptr %5, align 8
  %6034 = extractvalue { ptr, i32 } %6032, 1
  store i32 %6034, ptr %6, align 4
  br label %6077

6035:                                             ; preds = %5971
  %6036 = landingpad { ptr, i32 }
          cleanup
  %6037 = extractvalue { ptr, i32 } %6036, 0
  store ptr %6037, ptr %5, align 8
  %6038 = extractvalue { ptr, i32 } %6036, 1
  store i32 %6038, ptr %6, align 4
  br label %6048

6039:                                             ; preds = %5975
  %6040 = landingpad { ptr, i32 }
          cleanup
  %6041 = extractvalue { ptr, i32 } %6040, 0
  store ptr %6041, ptr %5, align 8
  %6042 = extractvalue { ptr, i32 } %6040, 1
  store i32 %6042, ptr %6, align 4
  br label %6047

6043:                                             ; preds = %5980, %5976
  %6044 = landingpad { ptr, i32 }
          cleanup
  %6045 = extractvalue { ptr, i32 } %6044, 0
  store ptr %6045, ptr %5, align 8
  %6046 = extractvalue { ptr, i32 } %6044, 1
  store i32 %6046, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %679) #10
  br label %6047

6047:                                             ; preds = %6043, %6039
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %680) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %680) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %679) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #10
  br label %6048

6048:                                             ; preds = %6047, %6035
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %677) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %676) #10
  br label %6077

6049:                                             ; preds = %5986
  %6050 = landingpad { ptr, i32 }
          cleanup
  %6051 = extractvalue { ptr, i32 } %6050, 0
  store ptr %6051, ptr %5, align 8
  %6052 = extractvalue { ptr, i32 } %6050, 1
  store i32 %6052, ptr %6, align 4
  br label %6062

6053:                                             ; preds = %5989
  %6054 = landingpad { ptr, i32 }
          cleanup
  %6055 = extractvalue { ptr, i32 } %6054, 0
  store ptr %6055, ptr %5, align 8
  %6056 = extractvalue { ptr, i32 } %6054, 1
  store i32 %6056, ptr %6, align 4
  br label %6061

6057:                                             ; preds = %5994, %5990
  %6058 = landingpad { ptr, i32 }
          cleanup
  %6059 = extractvalue { ptr, i32 } %6058, 0
  store ptr %6059, ptr %5, align 8
  %6060 = extractvalue { ptr, i32 } %6058, 1
  store i32 %6060, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %685) #10
  br label %6061

6061:                                             ; preds = %6057, %6053
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %686) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %686) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %685) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %682) #10
  br label %6062

6062:                                             ; preds = %6061, %6049
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %683) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %683) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %682) #10
  br label %6077

6063:                                             ; preds = %6000
  %6064 = landingpad { ptr, i32 }
          cleanup
  %6065 = extractvalue { ptr, i32 } %6064, 0
  store ptr %6065, ptr %5, align 8
  %6066 = extractvalue { ptr, i32 } %6064, 1
  store i32 %6066, ptr %6, align 4
  br label %6076

6067:                                             ; preds = %6003
  %6068 = landingpad { ptr, i32 }
          cleanup
  %6069 = extractvalue { ptr, i32 } %6068, 0
  store ptr %6069, ptr %5, align 8
  %6070 = extractvalue { ptr, i32 } %6068, 1
  store i32 %6070, ptr %6, align 4
  br label %6075

6071:                                             ; preds = %6008, %6004
  %6072 = landingpad { ptr, i32 }
          cleanup
  %6073 = extractvalue { ptr, i32 } %6072, 0
  store ptr %6073, ptr %5, align 8
  %6074 = extractvalue { ptr, i32 } %6072, 1
  store i32 %6074, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %691) #10
  br label %6075

6075:                                             ; preds = %6071, %6067
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %692) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %692) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %691) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %688) #10
  br label %6076

6076:                                             ; preds = %6075, %6063
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %689) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %689) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %688) #10
  br label %6077

6077:                                             ; preds = %6076, %6062, %6048, %6031
  call void @llvm.lifetime.end.p0(i64 24, ptr %675) #10
  br label %6078

6078:                                             ; preds = %6077, %6027
  call void @llvm.lifetime.end.p0(i64 12, ptr %674) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %673) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %672) #10
  br label %6079

6079:                                             ; preds = %6078, %6023
  call void @llvm.lifetime.end.p0(i64 64, ptr %671) #10
  br label %6080

6080:                                             ; preds = %6079, %6019
  call void @llvm.lifetime.end.p0(i64 8, ptr %670) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %669) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %668) #10
  br label %6090

6081:                                             ; preds = %5943
  invoke void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %663, ptr noundef nonnull align 8 dereferenceable(24) %667)
          to label %6082 unwind label %6086

6082:                                             ; preds = %6081
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %667) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %667) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %666) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %665) #10
  br label %6083

6083:                                             ; preds = %6082
  %6084 = load i64, ptr %664, align 8, !tbaa !43
  %6085 = add i64 %6084, 1
  store i64 %6085, ptr %664, align 8, !tbaa !43
  br label %5916, !llvm.loop !191

6086:                                             ; preds = %6081
  %6087 = landingpad { ptr, i32 }
          cleanup
  %6088 = extractvalue { ptr, i32 } %6087, 0
  store ptr %6088, ptr %5, align 8
  %6089 = extractvalue { ptr, i32 } %6087, 1
  store i32 %6089, ptr %6, align 4
  br label %6090

6090:                                             ; preds = %6086, %6080
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %667) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %667) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %666) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %665) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %664) #10
  br label %6476

6091:                                             ; preds = %5924
  call void @llvm.lifetime.start.p0(i64 8, ptr %694) #10
  store i64 0, ptr %694, align 8, !tbaa !43
  br label %6092

6092:                                             ; preds = %6463, %6091
  %6093 = load i64, ptr %694, align 8, !tbaa !43
  %6094 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %6095 = load ptr, ptr %6094, align 8, !tbaa !44
  %6096 = getelementptr inbounds %struct.aiScene, ptr %6095, i32 0, i32 6
  %6097 = load i32, ptr %6096, align 8, !tbaa !176
  %6098 = zext i32 %6097 to i64
  %6099 = icmp ult i64 %6093, %6098
  br i1 %6099, label %6101, label %6100

6100:                                             ; preds = %6092
  store i32 135, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %694) #10
  br label %6466

6101:                                             ; preds = %6092
  call void @llvm.lifetime.start.p0(i64 8, ptr %695) #10
  %6102 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %6103 = load ptr, ptr %6102, align 8, !tbaa !44
  %6104 = getelementptr inbounds %struct.aiScene, ptr %6103, i32 0, i32 7
  %6105 = load ptr, ptr %6104, align 8, !tbaa !177
  %6106 = load i64, ptr %694, align 8, !tbaa !43
  %6107 = getelementptr inbounds ptr, ptr %6105, i64 %6106
  %6108 = load ptr, ptr %6107, align 8, !tbaa !5
  store ptr %6108, ptr %695, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %696) #10
  store i64 0, ptr %696, align 8, !tbaa !43
  br label %6109

6109:                                             ; preds = %6428, %6101
  %6110 = load i64, ptr %696, align 8, !tbaa !43
  %6111 = load ptr, ptr %695, align 8, !tbaa !5
  %6112 = getelementptr inbounds %struct.aiAnimation, ptr %6111, i32 0, i32 3
  %6113 = load i32, ptr %6112, align 8, !tbaa !188
  %6114 = zext i32 %6113 to i64
  %6115 = icmp ult i64 %6110, %6114
  br i1 %6115, label %6117, label %6116

6116:                                             ; preds = %6109
  store i32 138, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %696) #10
  br label %6462

6117:                                             ; preds = %6109
  call void @llvm.lifetime.start.p0(i64 8, ptr %697) #10
  %6118 = load ptr, ptr %695, align 8, !tbaa !5
  %6119 = getelementptr inbounds %struct.aiAnimation, ptr %6118, i32 0, i32 4
  %6120 = load ptr, ptr %6119, align 8, !tbaa !189
  %6121 = load i64, ptr %696, align 8, !tbaa !43
  %6122 = getelementptr inbounds ptr, ptr %6120, i64 %6121
  %6123 = load ptr, ptr %6122, align 8, !tbaa !5
  store ptr %6123, ptr %697, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %698) #10
  %6124 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %6125 = load ptr, ptr %6124, align 8, !tbaa !44
  %6126 = getelementptr inbounds %struct.aiScene, ptr %6125, i32 0, i32 1
  %6127 = load ptr, ptr %6126, align 8, !tbaa !140
  %6128 = load ptr, ptr %697, align 8, !tbaa !5
  %6129 = getelementptr inbounds %struct.aiNodeAnim, ptr %6128, i32 0, i32 0
  %6130 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %6127, ptr noundef nonnull align 4 dereferenceable(1028) %6129)
          to label %6131 unwind label %6149

6131:                                             ; preds = %6117
  store ptr %6130, ptr %698, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %699) #10
  %6132 = load ptr, ptr %698, align 8, !tbaa !5
  %6133 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 1
  %6134 = load ptr, ptr %6133, align 8, !tbaa !44
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind writable sret(%class.aiMatrix4x4t) align 4 %699, ptr noundef %6132, ptr noundef %6134)
          to label %6135 unwind label %6153

6135:                                             ; preds = %6131
  call void @llvm.lifetime.start.p0(i64 12, ptr %700) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %700) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %701) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %701) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %702) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %702) #10
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %699, ptr noundef nonnull align 4 dereferenceable(12) %702, ptr noundef nonnull align 4 dereferenceable(12) %701, ptr noundef nonnull align 4 dereferenceable(12) %700)
          to label %6136 unwind label %6157

6136:                                             ; preds = %6135
  call void @llvm.lifetime.start.p0(i64 8, ptr %703) #10
  %6137 = load i64, ptr %694, align 8, !tbaa !43
  %6138 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %663, i64 noundef %6137) #10
  %6139 = load i64, ptr %696, align 8, !tbaa !43
  %6140 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6138, i64 noundef %6139) #10
  store ptr %6140, ptr %703, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %704) #10
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %704) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %705) #10
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %705) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %706) #10
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %706) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %707) #10
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %707) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %708) #10
  store i64 0, ptr %708, align 8, !tbaa !43
  br label %6141

6141:                                             ; preds = %6186, %6136
  %6142 = load i64, ptr %708, align 8, !tbaa !43
  %6143 = load ptr, ptr %697, align 8, !tbaa !5
  %6144 = getelementptr inbounds %struct.aiNodeAnim, ptr %6143, i32 0, i32 1
  %6145 = load i32, ptr %6144, align 4, !tbaa !192
  %6146 = zext i32 %6145 to i64
  %6147 = icmp ult i64 %6142, %6146
  br i1 %6147, label %6161, label %6148

6148:                                             ; preds = %6141
  store i32 141, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %708) #10
  br label %6198

6149:                                             ; preds = %6117
  %6150 = landingpad { ptr, i32 }
          cleanup
  %6151 = extractvalue { ptr, i32 } %6150, 0
  store ptr %6151, ptr %5, align 8
  %6152 = extractvalue { ptr, i32 } %6150, 1
  store i32 %6152, ptr %6, align 4
  br label %6461

6153:                                             ; preds = %6131
  %6154 = landingpad { ptr, i32 }
          cleanup
  %6155 = extractvalue { ptr, i32 } %6154, 0
  store ptr %6155, ptr %5, align 8
  %6156 = extractvalue { ptr, i32 } %6154, 1
  store i32 %6156, ptr %6, align 4
  br label %6460

6157:                                             ; preds = %6135
  %6158 = landingpad { ptr, i32 }
          cleanup
  %6159 = extractvalue { ptr, i32 } %6158, 0
  store ptr %6159, ptr %5, align 8
  %6160 = extractvalue { ptr, i32 } %6158, 1
  store i32 %6160, ptr %6, align 4
  br label %6459

6161:                                             ; preds = %6141
  call void @llvm.lifetime.start.p0(i64 8, ptr %709) #10
  %6162 = load ptr, ptr %697, align 8, !tbaa !5
  %6163 = getelementptr inbounds %struct.aiNodeAnim, ptr %6162, i32 0, i32 2
  %6164 = load ptr, ptr %6163, align 8, !tbaa !195
  %6165 = load i64, ptr %708, align 8, !tbaa !43
  %6166 = getelementptr inbounds %struct.aiVectorKey, ptr %6164, i64 %6165
  store ptr %6166, ptr %709, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %710) #10
  %6167 = load ptr, ptr %709, align 8, !tbaa !5
  %6168 = getelementptr inbounds %struct.aiVectorKey, ptr %6167, i32 0, i32 0
  %6169 = load double, ptr %6168, align 8, !tbaa !196
  %6170 = load ptr, ptr %695, align 8, !tbaa !5
  %6171 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %6169, ptr noundef %6170)
          to label %6172 unwind label %6189

6172:                                             ; preds = %6161
  store i64 %6171, ptr %710, align 8, !tbaa !43
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(8) %710)
          to label %6173 unwind label %6189

6173:                                             ; preds = %6172
  call void @llvm.lifetime.end.p0(i64 8, ptr %710) #10
  %6174 = load ptr, ptr %709, align 8, !tbaa !5
  %6175 = getelementptr inbounds %struct.aiVectorKey, ptr %6174, i32 0, i32 1
  %6176 = getelementptr inbounds %class.aiVector3t, ptr %6175, i32 0, i32 0
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %705, ptr noundef nonnull align 4 dereferenceable(4) %6176)
          to label %6177 unwind label %6193

6177:                                             ; preds = %6173
  %6178 = load ptr, ptr %709, align 8, !tbaa !5
  %6179 = getelementptr inbounds %struct.aiVectorKey, ptr %6178, i32 0, i32 1
  %6180 = getelementptr inbounds %class.aiVector3t, ptr %6179, i32 0, i32 1
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %706, ptr noundef nonnull align 4 dereferenceable(4) %6180)
          to label %6181 unwind label %6193

6181:                                             ; preds = %6177
  %6182 = load ptr, ptr %709, align 8, !tbaa !5
  %6183 = getelementptr inbounds %struct.aiVectorKey, ptr %6182, i32 0, i32 1
  %6184 = getelementptr inbounds %class.aiVector3t, ptr %6183, i32 0, i32 2
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %707, ptr noundef nonnull align 4 dereferenceable(4) %6184)
          to label %6185 unwind label %6193

6185:                                             ; preds = %6181
  call void @llvm.lifetime.end.p0(i64 8, ptr %709) #10
  br label %6186

6186:                                             ; preds = %6185
  %6187 = load i64, ptr %708, align 8, !tbaa !43
  %6188 = add i64 %6187, 1
  store i64 %6188, ptr %708, align 8, !tbaa !43
  br label %6141, !llvm.loop !199

6189:                                             ; preds = %6172, %6161
  %6190 = landingpad { ptr, i32 }
          cleanup
  %6191 = extractvalue { ptr, i32 } %6190, 0
  store ptr %6191, ptr %5, align 8
  %6192 = extractvalue { ptr, i32 } %6190, 1
  store i32 %6192, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %710) #10
  br label %6197

6193:                                             ; preds = %6181, %6177, %6173
  %6194 = landingpad { ptr, i32 }
          cleanup
  %6195 = extractvalue { ptr, i32 } %6194, 0
  store ptr %6195, ptr %5, align 8
  %6196 = extractvalue { ptr, i32 } %6194, 1
  store i32 %6196, ptr %6, align 4
  br label %6197

6197:                                             ; preds = %6193, %6189
  call void @llvm.lifetime.end.p0(i64 8, ptr %709) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %708) #10
  br label %6458

6198:                                             ; preds = %6148
  %6199 = getelementptr inbounds %class.aiVector3t, ptr %700, i32 0, i32 0
  %6200 = load float, ptr %6199, align 4, !tbaa !64
  %6201 = fpext float %6200 to double
  %6202 = load ptr, ptr %703, align 8, !tbaa !5
  %6203 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6202, i64 noundef 0) #10
  %6204 = load i64, ptr %6203, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %711) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %712) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %712) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %711, ptr noundef @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %712)
          to label %6205 unwind label %6231

6205:                                             ; preds = %6198
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6201, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %705, i64 noundef %6204, ptr noundef nonnull align 8 dereferenceable(32) %711)
          to label %6206 unwind label %6235

6206:                                             ; preds = %6205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %711) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %712) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %712) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %711) #10
  %6207 = getelementptr inbounds %class.aiVector3t, ptr %700, i32 0, i32 1
  %6208 = load float, ptr %6207, align 4, !tbaa !65
  %6209 = fpext float %6208 to double
  %6210 = load ptr, ptr %703, align 8, !tbaa !5
  %6211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6210, i64 noundef 0) #10
  %6212 = load i64, ptr %6211, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %713) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %714) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %714) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %713, ptr noundef @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %714)
          to label %6213 unwind label %6240

6213:                                             ; preds = %6206
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6209, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %706, i64 noundef %6212, ptr noundef nonnull align 8 dereferenceable(32) %713)
          to label %6214 unwind label %6244

6214:                                             ; preds = %6213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %713) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %714) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %714) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %713) #10
  %6215 = getelementptr inbounds %class.aiVector3t, ptr %700, i32 0, i32 2
  %6216 = load float, ptr %6215, align 4, !tbaa !66
  %6217 = fpext float %6216 to double
  %6218 = load ptr, ptr %703, align 8, !tbaa !5
  %6219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6218, i64 noundef 0) #10
  %6220 = load i64, ptr %6219, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %715) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %716) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %716) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %715, ptr noundef @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %716)
          to label %6221 unwind label %6249

6221:                                             ; preds = %6214
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6217, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %707, i64 noundef %6220, ptr noundef nonnull align 8 dereferenceable(32) %715)
          to label %6222 unwind label %6253

6222:                                             ; preds = %6221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %715) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %716) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %716) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %715) #10
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %704) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %705) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %706) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %707) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %717) #10
  store i64 0, ptr %717, align 8, !tbaa !43
  br label %6223

6223:                                             ; preds = %6284, %6222
  %6224 = load i64, ptr %717, align 8, !tbaa !43
  %6225 = load ptr, ptr %697, align 8, !tbaa !5
  %6226 = getelementptr inbounds %struct.aiNodeAnim, ptr %6225, i32 0, i32 3
  %6227 = load i32, ptr %6226, align 8, !tbaa !200
  %6228 = zext i32 %6227 to i64
  %6229 = icmp ult i64 %6224, %6228
  br i1 %6229, label %6258, label %6230

6230:                                             ; preds = %6223
  store i32 144, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %717) #10
  br label %6306

6231:                                             ; preds = %6198
  %6232 = landingpad { ptr, i32 }
          cleanup
  %6233 = extractvalue { ptr, i32 } %6232, 0
  store ptr %6233, ptr %5, align 8
  %6234 = extractvalue { ptr, i32 } %6232, 1
  store i32 %6234, ptr %6, align 4
  br label %6239

6235:                                             ; preds = %6205
  %6236 = landingpad { ptr, i32 }
          cleanup
  %6237 = extractvalue { ptr, i32 } %6236, 0
  store ptr %6237, ptr %5, align 8
  %6238 = extractvalue { ptr, i32 } %6236, 1
  store i32 %6238, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %711) #10
  br label %6239

6239:                                             ; preds = %6235, %6231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %712) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %712) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %711) #10
  br label %6458

6240:                                             ; preds = %6206
  %6241 = landingpad { ptr, i32 }
          cleanup
  %6242 = extractvalue { ptr, i32 } %6241, 0
  store ptr %6242, ptr %5, align 8
  %6243 = extractvalue { ptr, i32 } %6241, 1
  store i32 %6243, ptr %6, align 4
  br label %6248

6244:                                             ; preds = %6213
  %6245 = landingpad { ptr, i32 }
          cleanup
  %6246 = extractvalue { ptr, i32 } %6245, 0
  store ptr %6246, ptr %5, align 8
  %6247 = extractvalue { ptr, i32 } %6245, 1
  store i32 %6247, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %713) #10
  br label %6248

6248:                                             ; preds = %6244, %6240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %714) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %714) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %713) #10
  br label %6458

6249:                                             ; preds = %6214
  %6250 = landingpad { ptr, i32 }
          cleanup
  %6251 = extractvalue { ptr, i32 } %6250, 0
  store ptr %6251, ptr %5, align 8
  %6252 = extractvalue { ptr, i32 } %6250, 1
  store i32 %6252, ptr %6, align 4
  br label %6257

6253:                                             ; preds = %6221
  %6254 = landingpad { ptr, i32 }
          cleanup
  %6255 = extractvalue { ptr, i32 } %6254, 0
  store ptr %6255, ptr %5, align 8
  %6256 = extractvalue { ptr, i32 } %6254, 1
  store i32 %6256, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %715) #10
  br label %6257

6257:                                             ; preds = %6253, %6249
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %716) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %716) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %715) #10
  br label %6458

6258:                                             ; preds = %6223
  call void @llvm.lifetime.start.p0(i64 8, ptr %718) #10
  %6259 = load ptr, ptr %697, align 8, !tbaa !5
  %6260 = getelementptr inbounds %struct.aiNodeAnim, ptr %6259, i32 0, i32 4
  %6261 = load ptr, ptr %6260, align 8, !tbaa !201
  %6262 = load i64, ptr %717, align 8, !tbaa !43
  %6263 = getelementptr inbounds %struct.aiQuatKey, ptr %6261, i64 %6262
  store ptr %6263, ptr %718, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %719) #10
  %6264 = load ptr, ptr %718, align 8, !tbaa !5
  %6265 = getelementptr inbounds %struct.aiQuatKey, ptr %6264, i32 0, i32 0
  %6266 = load double, ptr %6265, align 8, !tbaa !202
  %6267 = load ptr, ptr %695, align 8, !tbaa !5
  %6268 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %6266, ptr noundef %6267)
          to label %6269 unwind label %6287

6269:                                             ; preds = %6258
  store i64 %6268, ptr %719, align 8, !tbaa !43
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(8) %719)
          to label %6270 unwind label %6287

6270:                                             ; preds = %6269
  call void @llvm.lifetime.end.p0(i64 8, ptr %719) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr %720) #10
  call void @llvm.lifetime.start.p0(i64 36, ptr %721) #10
  %6271 = load ptr, ptr %718, align 8, !tbaa !5
  %6272 = getelementptr inbounds %struct.aiQuatKey, ptr %6271, i32 0, i32 1
  invoke void @_ZNK13aiQuaterniontIfE9GetMatrixEv(ptr dead_on_unwind writable sret(%class.aiMatrix3x3t) align 4 %721, ptr noundef nonnull align 4 dereferenceable(16) %6272)
          to label %6273 unwind label %6291

6273:                                             ; preds = %6270
  invoke void @_ZN12aiMatrix4x4tIfEC2ERK12aiMatrix3x3tIfE(ptr noundef nonnull align 4 dereferenceable(64) %720, ptr noundef nonnull align 4 dereferenceable(36) %721)
          to label %6274 unwind label %6291

6274:                                             ; preds = %6273
  call void @llvm.lifetime.end.p0(i64 36, ptr %721) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %722) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %722) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %723) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %723) #10
  call void @llvm.lifetime.start.p0(i64 12, ptr %724) #10
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %724) #10
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %720, ptr noundef nonnull align 4 dereferenceable(12) %722, ptr noundef nonnull align 4 dereferenceable(12) %723, ptr noundef nonnull align 4 dereferenceable(12) %724)
          to label %6275 unwind label %6295

6275:                                             ; preds = %6274
  call void @llvm.lifetime.start.p0(i64 12, ptr %725) #10
  %6276 = invoke { <2 x float>, float } @_ZmlIfE10aiVector3tIT_ERKS2_S1_(ptr noundef nonnull align 4 dereferenceable(12) %723, float noundef 0x404CA5DC20000000)
          to label %6277 unwind label %6299

6277:                                             ; preds = %6275
  store { <2 x float>, float } %6276, ptr %726, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %725, ptr align 8 %726, i64 12, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %723, ptr align 4 %725, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.end.p0(i64 12, ptr %725) #10
  %6278 = getelementptr inbounds %class.aiVector3t, ptr %723, i32 0, i32 0
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %705, ptr noundef nonnull align 4 dereferenceable(4) %6278)
          to label %6279 unwind label %6295

6279:                                             ; preds = %6277
  %6280 = getelementptr inbounds %class.aiVector3t, ptr %723, i32 0, i32 1
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %706, ptr noundef nonnull align 4 dereferenceable(4) %6280)
          to label %6281 unwind label %6295

6281:                                             ; preds = %6279
  %6282 = getelementptr inbounds %class.aiVector3t, ptr %723, i32 0, i32 2
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %707, ptr noundef nonnull align 4 dereferenceable(4) %6282)
          to label %6283 unwind label %6295

6283:                                             ; preds = %6281
  call void @llvm.lifetime.end.p0(i64 12, ptr %724) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %723) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %722) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %720) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %718) #10
  br label %6284

6284:                                             ; preds = %6283
  %6285 = load i64, ptr %717, align 8, !tbaa !43
  %6286 = add i64 %6285, 1
  store i64 %6286, ptr %717, align 8, !tbaa !43
  br label %6223, !llvm.loop !205

6287:                                             ; preds = %6269, %6258
  %6288 = landingpad { ptr, i32 }
          cleanup
  %6289 = extractvalue { ptr, i32 } %6288, 0
  store ptr %6289, ptr %5, align 8
  %6290 = extractvalue { ptr, i32 } %6288, 1
  store i32 %6290, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %719) #10
  br label %6305

6291:                                             ; preds = %6273, %6270
  %6292 = landingpad { ptr, i32 }
          cleanup
  %6293 = extractvalue { ptr, i32 } %6292, 0
  store ptr %6293, ptr %5, align 8
  %6294 = extractvalue { ptr, i32 } %6292, 1
  store i32 %6294, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 36, ptr %721) #10
  br label %6304

6295:                                             ; preds = %6281, %6279, %6277, %6274
  %6296 = landingpad { ptr, i32 }
          cleanup
  %6297 = extractvalue { ptr, i32 } %6296, 0
  store ptr %6297, ptr %5, align 8
  %6298 = extractvalue { ptr, i32 } %6296, 1
  store i32 %6298, ptr %6, align 4
  br label %6303

6299:                                             ; preds = %6275
  %6300 = landingpad { ptr, i32 }
          cleanup
  %6301 = extractvalue { ptr, i32 } %6300, 0
  store ptr %6301, ptr %5, align 8
  %6302 = extractvalue { ptr, i32 } %6300, 1
  store i32 %6302, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %725) #10
  br label %6303

6303:                                             ; preds = %6299, %6295
  call void @llvm.lifetime.end.p0(i64 12, ptr %724) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %723) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %722) #10
  br label %6304

6304:                                             ; preds = %6303, %6291
  call void @llvm.lifetime.end.p0(i64 64, ptr %720) #10
  br label %6305

6305:                                             ; preds = %6304, %6287
  call void @llvm.lifetime.end.p0(i64 8, ptr %718) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %717) #10
  br label %6458

6306:                                             ; preds = %6230
  %6307 = getelementptr inbounds %class.aiVector3t, ptr %701, i32 0, i32 0
  %6308 = load float, ptr %6307, align 4, !tbaa !64
  %6309 = fpext float %6308 to double
  %6310 = load ptr, ptr %703, align 8, !tbaa !5
  %6311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6310, i64 noundef 1) #10
  %6312 = load i64, ptr %6311, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %727) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %728) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %728) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %727, ptr noundef @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %728)
          to label %6313 unwind label %6339

6313:                                             ; preds = %6306
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6309, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %705, i64 noundef %6312, ptr noundef nonnull align 8 dereferenceable(32) %727)
          to label %6314 unwind label %6343

6314:                                             ; preds = %6313
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %727) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %728) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %728) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %727) #10
  %6315 = getelementptr inbounds %class.aiVector3t, ptr %701, i32 0, i32 1
  %6316 = load float, ptr %6315, align 4, !tbaa !65
  %6317 = fpext float %6316 to double
  %6318 = load ptr, ptr %703, align 8, !tbaa !5
  %6319 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6318, i64 noundef 1) #10
  %6320 = load i64, ptr %6319, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %729) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %730) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %730) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %729, ptr noundef @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %730)
          to label %6321 unwind label %6348

6321:                                             ; preds = %6314
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6317, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %706, i64 noundef %6320, ptr noundef nonnull align 8 dereferenceable(32) %729)
          to label %6322 unwind label %6352

6322:                                             ; preds = %6321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %729) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %730) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %730) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %729) #10
  %6323 = getelementptr inbounds %class.aiVector3t, ptr %701, i32 0, i32 2
  %6324 = load float, ptr %6323, align 4, !tbaa !66
  %6325 = fpext float %6324 to double
  %6326 = load ptr, ptr %703, align 8, !tbaa !5
  %6327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6326, i64 noundef 1) #10
  %6328 = load i64, ptr %6327, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %731) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %732) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %732) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %731, ptr noundef @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %732)
          to label %6329 unwind label %6357

6329:                                             ; preds = %6322
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6325, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %707, i64 noundef %6328, ptr noundef nonnull align 8 dereferenceable(32) %731)
          to label %6330 unwind label %6361

6330:                                             ; preds = %6329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %731) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %732) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %732) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %731) #10
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %704) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %705) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %706) #10
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %707) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %733) #10
  store i64 0, ptr %733, align 8, !tbaa !43
  br label %6331

6331:                                             ; preds = %6391, %6330
  %6332 = load i64, ptr %733, align 8, !tbaa !43
  %6333 = load ptr, ptr %697, align 8, !tbaa !5
  %6334 = getelementptr inbounds %struct.aiNodeAnim, ptr %6333, i32 0, i32 5
  %6335 = load i32, ptr %6334, align 8, !tbaa !206
  %6336 = zext i32 %6335 to i64
  %6337 = icmp ult i64 %6332, %6336
  br i1 %6337, label %6366, label %6338

6338:                                             ; preds = %6331
  store i32 147, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %733) #10
  br label %6403

6339:                                             ; preds = %6306
  %6340 = landingpad { ptr, i32 }
          cleanup
  %6341 = extractvalue { ptr, i32 } %6340, 0
  store ptr %6341, ptr %5, align 8
  %6342 = extractvalue { ptr, i32 } %6340, 1
  store i32 %6342, ptr %6, align 4
  br label %6347

6343:                                             ; preds = %6313
  %6344 = landingpad { ptr, i32 }
          cleanup
  %6345 = extractvalue { ptr, i32 } %6344, 0
  store ptr %6345, ptr %5, align 8
  %6346 = extractvalue { ptr, i32 } %6344, 1
  store i32 %6346, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %727) #10
  br label %6347

6347:                                             ; preds = %6343, %6339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %728) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %728) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %727) #10
  br label %6458

6348:                                             ; preds = %6314
  %6349 = landingpad { ptr, i32 }
          cleanup
  %6350 = extractvalue { ptr, i32 } %6349, 0
  store ptr %6350, ptr %5, align 8
  %6351 = extractvalue { ptr, i32 } %6349, 1
  store i32 %6351, ptr %6, align 4
  br label %6356

6352:                                             ; preds = %6321
  %6353 = landingpad { ptr, i32 }
          cleanup
  %6354 = extractvalue { ptr, i32 } %6353, 0
  store ptr %6354, ptr %5, align 8
  %6355 = extractvalue { ptr, i32 } %6353, 1
  store i32 %6355, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %729) #10
  br label %6356

6356:                                             ; preds = %6352, %6348
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %730) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %730) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %729) #10
  br label %6458

6357:                                             ; preds = %6322
  %6358 = landingpad { ptr, i32 }
          cleanup
  %6359 = extractvalue { ptr, i32 } %6358, 0
  store ptr %6359, ptr %5, align 8
  %6360 = extractvalue { ptr, i32 } %6358, 1
  store i32 %6360, ptr %6, align 4
  br label %6365

6361:                                             ; preds = %6329
  %6362 = landingpad { ptr, i32 }
          cleanup
  %6363 = extractvalue { ptr, i32 } %6362, 0
  store ptr %6363, ptr %5, align 8
  %6364 = extractvalue { ptr, i32 } %6362, 1
  store i32 %6364, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %731) #10
  br label %6365

6365:                                             ; preds = %6361, %6357
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %732) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %732) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %731) #10
  br label %6458

6366:                                             ; preds = %6331
  call void @llvm.lifetime.start.p0(i64 8, ptr %734) #10
  %6367 = load ptr, ptr %697, align 8, !tbaa !5
  %6368 = getelementptr inbounds %struct.aiNodeAnim, ptr %6367, i32 0, i32 6
  %6369 = load ptr, ptr %6368, align 8, !tbaa !207
  %6370 = load i64, ptr %733, align 8, !tbaa !43
  %6371 = getelementptr inbounds %struct.aiVectorKey, ptr %6369, i64 %6370
  store ptr %6371, ptr %734, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %735) #10
  %6372 = load ptr, ptr %734, align 8, !tbaa !5
  %6373 = getelementptr inbounds %struct.aiVectorKey, ptr %6372, i32 0, i32 0
  %6374 = load double, ptr %6373, align 8, !tbaa !196
  %6375 = load ptr, ptr %695, align 8, !tbaa !5
  %6376 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %6374, ptr noundef %6375)
          to label %6377 unwind label %6394

6377:                                             ; preds = %6366
  store i64 %6376, ptr %735, align 8, !tbaa !43
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(8) %735)
          to label %6378 unwind label %6394

6378:                                             ; preds = %6377
  call void @llvm.lifetime.end.p0(i64 8, ptr %735) #10
  %6379 = load ptr, ptr %734, align 8, !tbaa !5
  %6380 = getelementptr inbounds %struct.aiVectorKey, ptr %6379, i32 0, i32 1
  %6381 = getelementptr inbounds %class.aiVector3t, ptr %6380, i32 0, i32 0
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %705, ptr noundef nonnull align 4 dereferenceable(4) %6381)
          to label %6382 unwind label %6398

6382:                                             ; preds = %6378
  %6383 = load ptr, ptr %734, align 8, !tbaa !5
  %6384 = getelementptr inbounds %struct.aiVectorKey, ptr %6383, i32 0, i32 1
  %6385 = getelementptr inbounds %class.aiVector3t, ptr %6384, i32 0, i32 1
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %706, ptr noundef nonnull align 4 dereferenceable(4) %6385)
          to label %6386 unwind label %6398

6386:                                             ; preds = %6382
  %6387 = load ptr, ptr %734, align 8, !tbaa !5
  %6388 = getelementptr inbounds %struct.aiVectorKey, ptr %6387, i32 0, i32 1
  %6389 = getelementptr inbounds %class.aiVector3t, ptr %6388, i32 0, i32 2
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %707, ptr noundef nonnull align 4 dereferenceable(4) %6389)
          to label %6390 unwind label %6398

6390:                                             ; preds = %6386
  call void @llvm.lifetime.end.p0(i64 8, ptr %734) #10
  br label %6391

6391:                                             ; preds = %6390
  %6392 = load i64, ptr %733, align 8, !tbaa !43
  %6393 = add i64 %6392, 1
  store i64 %6393, ptr %733, align 8, !tbaa !43
  br label %6331, !llvm.loop !208

6394:                                             ; preds = %6377, %6366
  %6395 = landingpad { ptr, i32 }
          cleanup
  %6396 = extractvalue { ptr, i32 } %6395, 0
  store ptr %6396, ptr %5, align 8
  %6397 = extractvalue { ptr, i32 } %6395, 1
  store i32 %6397, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %735) #10
  br label %6402

6398:                                             ; preds = %6386, %6382, %6378
  %6399 = landingpad { ptr, i32 }
          cleanup
  %6400 = extractvalue { ptr, i32 } %6399, 0
  store ptr %6400, ptr %5, align 8
  %6401 = extractvalue { ptr, i32 } %6399, 1
  store i32 %6401, ptr %6, align 4
  br label %6402

6402:                                             ; preds = %6398, %6394
  call void @llvm.lifetime.end.p0(i64 8, ptr %734) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %733) #10
  br label %6458

6403:                                             ; preds = %6338
  %6404 = getelementptr inbounds %class.aiVector3t, ptr %702, i32 0, i32 0
  %6405 = load float, ptr %6404, align 4, !tbaa !64
  %6406 = fpext float %6405 to double
  %6407 = load ptr, ptr %703, align 8, !tbaa !5
  %6408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6407, i64 noundef 2) #10
  %6409 = load i64, ptr %6408, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %736) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %737) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %737) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %737)
          to label %6410 unwind label %6431

6410:                                             ; preds = %6403
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6406, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %705, i64 noundef %6409, ptr noundef nonnull align 8 dereferenceable(32) %736)
          to label %6411 unwind label %6435

6411:                                             ; preds = %6410
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %736) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %737) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %737) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %736) #10
  %6412 = getelementptr inbounds %class.aiVector3t, ptr %702, i32 0, i32 1
  %6413 = load float, ptr %6412, align 4, !tbaa !65
  %6414 = fpext float %6413 to double
  %6415 = load ptr, ptr %703, align 8, !tbaa !5
  %6416 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6415, i64 noundef 2) #10
  %6417 = load i64, ptr %6416, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %738) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %739) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %739)
          to label %6418 unwind label %6440

6418:                                             ; preds = %6411
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6414, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %706, i64 noundef %6417, ptr noundef nonnull align 8 dereferenceable(32) %738)
          to label %6419 unwind label %6444

6419:                                             ; preds = %6418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %739) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %738) #10
  %6420 = getelementptr inbounds %class.aiVector3t, ptr %702, i32 0, i32 2
  %6421 = load float, ptr %6420, align 4, !tbaa !66
  %6422 = fpext float %6421 to double
  %6423 = load ptr, ptr %703, align 8, !tbaa !5
  %6424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6423, i64 noundef 2) #10
  %6425 = load i64, ptr %6424, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 32, ptr %740) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %741) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %740, ptr noundef @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %741)
          to label %6426 unwind label %6449

6426:                                             ; preds = %6419
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %742, ptr noundef nonnull align 8 dereferenceable(56) %7, double noundef %6422, ptr noundef nonnull align 8 dereferenceable(24) %704, ptr noundef nonnull align 8 dereferenceable(24) %707, i64 noundef %6425, ptr noundef nonnull align 8 dereferenceable(32) %740)
          to label %6427 unwind label %6453

6427:                                             ; preds = %6426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %740) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %741) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %740) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %707) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %707) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %706) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %706) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %705) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %705) #10
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %704) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %704) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %703) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %702) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %701) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %700) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %699) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %698) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %697) #10
  br label %6428

6428:                                             ; preds = %6427
  %6429 = load i64, ptr %696, align 8, !tbaa !43
  %6430 = add i64 %6429, 1
  store i64 %6430, ptr %696, align 8, !tbaa !43
  br label %6109, !llvm.loop !209

6431:                                             ; preds = %6403
  %6432 = landingpad { ptr, i32 }
          cleanup
  %6433 = extractvalue { ptr, i32 } %6432, 0
  store ptr %6433, ptr %5, align 8
  %6434 = extractvalue { ptr, i32 } %6432, 1
  store i32 %6434, ptr %6, align 4
  br label %6439

6435:                                             ; preds = %6410
  %6436 = landingpad { ptr, i32 }
          cleanup
  %6437 = extractvalue { ptr, i32 } %6436, 0
  store ptr %6437, ptr %5, align 8
  %6438 = extractvalue { ptr, i32 } %6436, 1
  store i32 %6438, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %736) #10
  br label %6439

6439:                                             ; preds = %6435, %6431
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %737) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %737) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %736) #10
  br label %6458

6440:                                             ; preds = %6411
  %6441 = landingpad { ptr, i32 }
          cleanup
  %6442 = extractvalue { ptr, i32 } %6441, 0
  store ptr %6442, ptr %5, align 8
  %6443 = extractvalue { ptr, i32 } %6441, 1
  store i32 %6443, ptr %6, align 4
  br label %6448

6444:                                             ; preds = %6418
  %6445 = landingpad { ptr, i32 }
          cleanup
  %6446 = extractvalue { ptr, i32 } %6445, 0
  store ptr %6446, ptr %5, align 8
  %6447 = extractvalue { ptr, i32 } %6445, 1
  store i32 %6447, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %738) #10
  br label %6448

6448:                                             ; preds = %6444, %6440
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %739) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %739) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %738) #10
  br label %6458

6449:                                             ; preds = %6419
  %6450 = landingpad { ptr, i32 }
          cleanup
  %6451 = extractvalue { ptr, i32 } %6450, 0
  store ptr %6451, ptr %5, align 8
  %6452 = extractvalue { ptr, i32 } %6450, 1
  store i32 %6452, ptr %6, align 4
  br label %6457

6453:                                             ; preds = %6426
  %6454 = landingpad { ptr, i32 }
          cleanup
  %6455 = extractvalue { ptr, i32 } %6454, 0
  store ptr %6455, ptr %5, align 8
  %6456 = extractvalue { ptr, i32 } %6454, 1
  store i32 %6456, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %740) #10
  br label %6457

6457:                                             ; preds = %6453, %6449
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %741) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %741) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %740) #10
  br label %6458

6458:                                             ; preds = %6457, %6448, %6439, %6402, %6365, %6356, %6347, %6305, %6257, %6248, %6239, %6197
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %707) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %707) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %706) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %706) #10
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %705) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %705) #10
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %704) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %704) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %703) #10
  br label %6459

6459:                                             ; preds = %6458, %6157
  call void @llvm.lifetime.end.p0(i64 12, ptr %702) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %701) #10
  call void @llvm.lifetime.end.p0(i64 12, ptr %700) #10
  br label %6460

6460:                                             ; preds = %6459, %6153
  call void @llvm.lifetime.end.p0(i64 64, ptr %699) #10
  br label %6461

6461:                                             ; preds = %6460, %6149
  call void @llvm.lifetime.end.p0(i64 8, ptr %698) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %697) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %696) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %695) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %694) #10
  br label %6476

6462:                                             ; preds = %6116
  call void @llvm.lifetime.end.p0(i64 8, ptr %695) #10
  br label %6463

6463:                                             ; preds = %6462
  %6464 = load i64, ptr %694, align 8, !tbaa !43
  %6465 = add i64 %6464, 1
  store i64 %6465, ptr %694, align 8, !tbaa !43
  br label %6092, !llvm.loop !210

6466:                                             ; preds = %6100
  store i32 0, ptr %12, align 4, !tbaa !39
  %6467 = getelementptr inbounds %"class.Assimp::FBXExporter", ptr %742, i32 0, i32 0
  %6468 = load i8, ptr %6467, align 8, !tbaa !9, !range !37, !noundef !38
  %6469 = trunc i8 %6468 to i1
  %6470 = load i32, ptr %12, align 4, !tbaa !39
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %9, ptr noundef nonnull align 8 dereferenceable(56) %7, i1 noundef zeroext %6469, i32 noundef %6470, i1 noundef zeroext true)
          to label %6471 unwind label %6472

6471:                                             ; preds = %6466
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %663) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %663) #10
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %655) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %655) #10
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %634) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %634) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %493) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %493) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %492) #10
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #10
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %485) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %485) #10
  call void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %483) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %483) #10
  call void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %327) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %327) #10
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %326) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %326) #10
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %268) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %268) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %9) #10
  call void @llvm.lifetime.end.p0(i64 112, ptr %9) #10
  call void @_ZN6Assimp12StreamWriterILb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %7) #10
  ret void

6472:                                             ; preds = %6466
  %6473 = landingpad { ptr, i32 }
          cleanup
  %6474 = extractvalue { ptr, i32 } %6473, 0
  store ptr %6474, ptr %5, align 8
  %6475 = extractvalue { ptr, i32 } %6473, 1
  store i32 %6475, ptr %6, align 4
  br label %6476

6476:                                             ; preds = %6472, %6461, %6090
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %663) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %663) #10
  br label %6477

6477:                                             ; preds = %6476, %5914
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %655) #10
  br label %6478

6478:                                             ; preds = %6477, %5858
  call void @llvm.lifetime.end.p0(i64 24, ptr %655) #10
  br label %6479

6479:                                             ; preds = %6478, %5841
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %634) #10
  br label %6480

6480:                                             ; preds = %6479, %5703
  call void @llvm.lifetime.end.p0(i64 24, ptr %634) #10
  br label %6481

6481:                                             ; preds = %6480, %5699, %5677, %5413, %4851, %4810
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %493) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %493) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %492) #10
  br label %6482

6482:                                             ; preds = %6481, %4487
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %486) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %486) #10
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %485) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %485) #10
  call void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %483) #10
  br label %6483

6483:                                             ; preds = %6482, %4443
  call void @llvm.lifetime.end.p0(i64 24, ptr %483) #10
  br label %6484

6484:                                             ; preds = %6483, %4427, %3905
  call void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %327) #10
  br label %6485

6485:                                             ; preds = %6484, %3392
  call void @llvm.lifetime.end.p0(i64 48, ptr %327) #10
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %326) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %326) #10
  br label %6486

6486:                                             ; preds = %6485, %3278, %2972
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %268) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %268) #10
  br label %6487

6487:                                             ; preds = %6486, %2885, %2285, %819
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #10
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #10
  br label %6488

6488:                                             ; preds = %6487, %815
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #10
  br label %6489

6489:                                             ; preds = %6488, %811
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %9) #10
  br label %6490

6490:                                             ; preds = %6489, %810
  call void @llvm.lifetime.end.p0(i64 112, ptr %9) #10
  call void @_ZN6Assimp12StreamWriterILb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #10
  br label %6491

6491:                                             ; preds = %6490, %798
  call void @llvm.lifetime.end.p0(i64 56, ptr %7) #10
  br label %6492

6492:                                             ; preds = %6491, %757
  %6493 = load ptr, ptr %5, align 8
  %6494 = load i32, ptr %6, align 4
  %6495 = insertvalue { ptr, i32 } poison, ptr %6493, 0
  %6496 = insertvalue { ptr, i32 } %6495, i32 %6494, 1
  resume { ptr, i32 } %6496

6497:                                             ; preds = %5401, %5385, %5178, %4574, %4418, %3719, %3554, %3492
  unreachable
}

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

declare void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

declare void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

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

declare void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

declare void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef, i1 noundef zeroext) #7

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

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

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

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

declare void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef) #7

declare void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #7

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

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

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

declare void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #7

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

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

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

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

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

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

declare void @_ZN6Assimp3FBX4Node10AddP70boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) #7

declare void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) #7

declare void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) #7

declare void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef) #7

declare void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_Z17get_node_for_meshjP6aiNode(i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind noalias writable sret(%class.aiMatrix4x4t) align 4, ptr noundef, ptr noundef) #2

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

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

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

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

declare void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node11AddPropertyIRA5_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(5)) #2 align 2

declare void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) #8 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) #1

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

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

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

declare void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

declare void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) #7

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare i32 @snprintf(ptr noundef, i64 noundef, ptr noundef, ...) #3

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

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

declare noundef ptr @_ZN6Assimp13DefaultLogger3getEv() #7

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) #8 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial3GetEPKcjjR8aiString(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(1028)) #4 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(12)) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #7

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

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

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

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

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

declare void @_ZN6Assimp3FBX4Util12EncodeBase64B5cxx11EPKcm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i64 noundef) #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare i32 @aiGetMaterialFloatArray(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) #8 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node11AddPropertyIRA6_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(6)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZNK10aiVector3tIfE6LengthEv(ptr noundef nonnull align 4 dereferenceable(12)) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144), ptr noundef nonnull align 4 dereferenceable(1028)) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(64) ptr @_ZN12aiMatrix4x4tIfE7InverseEv(ptr noundef nonnull align 4 dereferenceable(64)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK12aiMatrix4x4tIfEmlERKS0_(ptr dead_on_unwind noalias writable sret(%class.aiMatrix4x4t) align 4, ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(64)) #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6Assimp3FBX17FBXExportPropertyC1EPKcb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i1 noundef zeroext) unnamed_addr #7

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

declare void @_ZN6Assimp3FBX17FBXExportPropertyC1Ei(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #7

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef, ptr noundef) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #9 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32), <2 x float>, float, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #6 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(56), double noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK13aiQuaterniontIfE9GetMatrixEv(ptr dead_on_unwind noalias writable sret(%class.aiMatrix3x3t) align 4, ptr noundef nonnull align 4 dereferenceable(16)) #8 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZmlIfE10aiVector3tIT_ERKS2_S1_(ptr noundef nonnull align 4 dereferenceable(12), float noundef) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN6Assimp11FBXExporterE", !11, i64 0, !6, i64 8, !6, i64 16, !12, i64 24, !15, i64 40, !19, i64 64, !19, i64 88, !23, i64 112, !32, i64 160, !31, i64 208}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTSSt10shared_ptrIN6Assimp8IOStreamEE", !13, i64 0}
!13 = !{!"_ZTSSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !14, i64 8}
!14 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!15 = !{!"_ZTSSt6vectorIN6Assimp3FBX4NodeESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIlSaIlEE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE", !24, i64 0}
!24 = !{!"_ZTSSt8_Rb_treeIPK6aiNodeSt4pairIKS2_lESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !25, i64 0}
!25 = !{!"_ZTSNSt8_Rb_treeIPK6aiNodeSt4pairIKS2_lESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !26, i64 0, !28, i64 8}
!26 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPK6aiNodeEE", !27, i64 0}
!27 = !{!"_ZTSSt4lessIPK6aiNodeE"}
!28 = !{!"_ZTSSt15_Rb_tree_header", !29, i64 0, !31, i64 32}
!29 = !{!"_ZTSSt18_Rb_tree_node_base", !30, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!30 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!31 = !{!"long", !7, i64 0}
!32 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE", !33, i64 0}
!33 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_lESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !34, i64 0}
!34 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_lESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !35, i64 0, !28, i64 8}
!35 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !36, i64 0}
!36 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!37 = !{i8 0, i8 2}
!38 = !{}
!39 = !{!40, !40, i64 0}
!40 = !{!"int", !7, i64 0}
!41 = !{!10, !6, i64 16}
!42 = !{!11, !11, i64 0}
!43 = !{!31, !31, i64 0}
!44 = !{!10, !6, i64 8}
!45 = !{!46, !40, i64 16}
!46 = !{!"_ZTS7aiScene", !40, i64 0, !6, i64 8, !40, i64 16, !6, i64 24, !40, i64 32, !6, i64 40, !40, i64 48, !6, i64 56, !40, i64 64, !6, i64 72, !40, i64 80, !6, i64 88, !40, i64 96, !6, i64 104, !6, i64 112, !47, i64 120, !40, i64 1148, !6, i64 1152, !6, i64 1160}
!47 = !{!"_ZTS8aiString", !40, i64 0, !7, i64 4}
!48 = !{!46, !6, i64 24}
!49 = !{!50, !40, i64 4}
!50 = !{!"_ZTS6aiMesh", !40, i64 0, !40, i64 4, !40, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !7, i64 48, !7, i64 112, !7, i64 176, !6, i64 208, !40, i64 216, !6, i64 224, !40, i64 232, !47, i64 236, !40, i64 1264, !6, i64 1272, !51, i64 1280, !52, i64 1284, !6, i64 1312}
!51 = !{!"_ZTS16aiMorphingMethod", !7, i64 0}
!52 = !{!"_ZTS6aiAABB", !53, i64 0, !53, i64 12}
!53 = !{!"_ZTS10aiVector3tIfE", !54, i64 0, !54, i64 4, !54, i64 8}
!54 = !{!"float", !7, i64 0}
!55 = !{!50, !6, i64 16}
!56 = !{i64 0, i64 4, !57, i64 4, i64 4, !57, i64 8, i64 4, !57}
!57 = !{!54, !54, i64 0}
!58 = !{!59, !59, i64 0}
!59 = !{!"double", !7, i64 0}
!60 = !{!61, !31, i64 16}
!61 = !{!"_ZTSSt4pairIK10aiVector3tIfEmE", !53, i64 0, !31, i64 16}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}
!64 = !{!53, !54, i64 0}
!65 = !{!53, !54, i64 4}
!66 = !{!53, !54, i64 8}
!67 = distinct !{!67, !63}
!68 = !{!50, !40, i64 8}
!69 = !{!50, !6, i64 208}
!70 = !{!71, !40, i64 0}
!71 = !{!"_ZTS6aiFace", !40, i64 0, !6, i64 8}
!72 = !{!71, !6, i64 8}
!73 = distinct !{!73, !63}
!74 = distinct !{!74, !63}
!75 = !{!50, !6, i64 24}
!76 = distinct !{!76, !63}
!77 = distinct !{!77, !63}
!78 = !{!79, !54, i64 0}
!79 = !{!"_ZTS9aiColor4tIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12}
!80 = !{!79, !54, i64 4}
!81 = !{!79, !54, i64 8}
!82 = !{!79, !54, i64 12}
!83 = distinct !{!83, !63}
!84 = distinct !{!84, !63}
!85 = distinct !{!85, !63}
!86 = !{!50, !40, i64 236}
!87 = distinct !{!87, !63}
!88 = distinct !{!88, !63}
!89 = distinct !{!89, !63}
!90 = distinct !{!90, !63}
!91 = !{!92, !6, i64 0}
!92 = !{!"_ZTSSt16initializer_listIiE", !6, i64 0, !31, i64 8}
!93 = !{!92, !31, i64 8}
!94 = distinct !{!94, !63}
!95 = distinct !{!95, !63}
!96 = distinct !{!96, !63}
!97 = !{!46, !40, i64 32}
!98 = !{!46, !6, i64 40}
!99 = !{!100, !54, i64 0}
!100 = !{!"_ZTS9aiColor3D", !54, i64 0, !54, i64 4, !54, i64 8}
!101 = !{!100, !54, i64 4}
!102 = !{!100, !54, i64 8}
!103 = distinct !{!103, !63}
!104 = !{!105, !105, i64 0}
!105 = !{!"_ZTS13aiTextureType", !7, i64 0}
!106 = distinct !{!106, !63}
!107 = distinct !{!107, !63}
!108 = distinct !{!108, !63}
!109 = !{!110, !40, i64 32}
!110 = !{!"_ZTS9aiTexture", !40, i64 0, !40, i64 4, !7, i64 8, !6, i64 24, !47, i64 32}
!111 = !{!7, !7, i64 0}
!112 = !{!110, !40, i64 0}
!113 = !{!110, !6, i64 24}
!114 = !{!115, !6, i64 0}
!115 = !{!"_ZTSSt16initializer_listISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !6, i64 0, !31, i64 8}
!116 = !{!115, !31, i64 8}
!117 = !{!118, !31, i64 32}
!118 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElE", !119, i64 0, !31, i64 32}
!119 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !120, i64 0, !31, i64 8, !7, i64 16}
!120 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!121 = !{!122, !54, i64 16}
!122 = !{!"_ZTS13aiUVTransform", !123, i64 0, !123, i64 8, !54, i64 16}
!123 = !{!"_ZTS10aiVector2tIfE", !54, i64 0, !54, i64 4}
!124 = distinct !{!124, !63}
!125 = distinct !{!125, !63}
!126 = !{!50, !40, i64 1264}
!127 = !{!50, !6, i64 1272}
!128 = !{!129, !6, i64 1032}
!129 = !{!"_ZTS10aiAnimMesh", !47, i64 0, !6, i64 1032, !6, i64 1040, !6, i64 1048, !6, i64 1056, !7, i64 1064, !7, i64 1128, !40, i64 1192, !54, i64 1196}
!130 = !{!129, !6, i64 1040}
!131 = distinct !{!131, !63}
!132 = distinct !{!132, !63}
!133 = distinct !{!133, !63}
!134 = !{!50, !40, i64 216}
!135 = !{!50, !6, i64 224}
!136 = distinct !{!136, !63}
!137 = distinct !{!137, !63}
!138 = !{!139, !6, i64 32}
!139 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeE", !119, i64 0, !6, i64 32}
!140 = !{!46, !6, i64 8}
!141 = !{!142, !6, i64 1096}
!142 = !{!"_ZTS6aiNode", !47, i64 0, !143, i64 1028, !6, i64 1096, !40, i64 1104, !6, i64 1112, !40, i64 1120, !6, i64 1128, !6, i64 1136}
!143 = !{!"_ZTS12aiMatrix4x4tIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12, !54, i64 16, !54, i64 20, !54, i64 24, !54, i64 28, !54, i64 32, !54, i64 36, !54, i64 40, !54, i64 44, !54, i64 48, !54, i64 52, !54, i64 56, !54, i64 60}
!144 = !{!142, !40, i64 1120}
!145 = !{!142, !6, i64 1128}
!146 = distinct !{!146, !63}
!147 = !{!142, !40, i64 1104}
!148 = !{!142, !6, i64 1112}
!149 = distinct !{!149, !63}
!150 = distinct !{!150, !63}
!151 = distinct !{!151, !63}
!152 = distinct !{!152, !63}
!153 = distinct !{!153, !63}
!154 = distinct !{!154, !63}
!155 = distinct !{!155, !63}
!156 = !{!157, !40, i64 1028}
!157 = !{!"_ZTS6aiBone", !47, i64 0, !40, i64 1028, !6, i64 1032, !6, i64 1040, !6, i64 1048, !143, i64 1056}
!158 = !{!157, !6, i64 1048}
!159 = !{!160, !40, i64 0}
!160 = !{!"_ZTS14aiVertexWeight", !40, i64 0, !54, i64 4}
!161 = !{!160, !54, i64 4}
!162 = distinct !{!162, !63}
!163 = !{i64 0, i64 4, !57, i64 4, i64 4, !57, i64 8, i64 4, !57, i64 12, i64 4, !57, i64 16, i64 4, !57, i64 20, i64 4, !57, i64 24, i64 4, !57, i64 28, i64 4, !57, i64 32, i64 4, !57, i64 36, i64 4, !57, i64 40, i64 4, !57, i64 44, i64 4, !57, i64 48, i64 4, !57, i64 52, i64 4, !57, i64 56, i64 4, !57, i64 60, i64 4, !57}
!164 = distinct !{!164, !63}
!165 = !{!46, !40, i64 80}
!166 = !{!46, !6, i64 88}
!167 = !{!168, !54, i64 1080}
!168 = !{!"_ZTS7aiLight", !47, i64 0, !169, i64 1028, !53, i64 1032, !53, i64 1044, !53, i64 1056, !54, i64 1068, !54, i64 1072, !54, i64 1076, !100, i64 1080, !100, i64 1092, !100, i64 1104, !54, i64 1116, !54, i64 1120, !123, i64 1124}
!169 = !{!"_ZTS17aiLightSourceType", !7, i64 0}
!170 = !{!168, !54, i64 1084}
!171 = !{!168, !54, i64 1088}
!172 = !{!168, !169, i64 1028}
!173 = !{!168, !54, i64 1116}
!174 = !{!168, !54, i64 1120}
!175 = distinct !{!175, !63}
!176 = !{!46, !40, i64 48}
!177 = !{!46, !6, i64 56}
!178 = !{!179, !59, i64 1032}
!179 = !{!"_ZTS11aiAnimation", !47, i64 0, !59, i64 1032, !59, i64 1040, !40, i64 1048, !6, i64 1056, !40, i64 1064, !6, i64 1072, !40, i64 1080, !6, i64 1088}
!180 = !{!181, !11, i64 80}
!181 = !{!"_ZTSN6Assimp3FBX4NodeE", !119, i64 0, !182, i64 32, !15, i64 56, !11, i64 80, !31, i64 88, !31, i64 96, !31, i64 104}
!182 = !{!"_ZTSSt6vectorIN6Assimp3FBX17FBXExportPropertyESaIS2_EE", !183, i64 0}
!183 = !{!"_ZTSSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE", !184, i64 0}
!184 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE12_Vector_implE", !185, i64 0}
!185 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!186 = distinct !{!186, !63}
!187 = distinct !{!187, !63}
!188 = !{!179, !40, i64 1048}
!189 = !{!179, !6, i64 1056}
!190 = distinct !{!190, !63}
!191 = distinct !{!191, !63}
!192 = !{!193, !40, i64 1028}
!193 = !{!"_ZTS10aiNodeAnim", !47, i64 0, !40, i64 1028, !6, i64 1032, !40, i64 1040, !6, i64 1048, !40, i64 1056, !6, i64 1064, !194, i64 1072, !194, i64 1076}
!194 = !{!"_ZTS15aiAnimBehaviour", !7, i64 0}
!195 = !{!193, !6, i64 1032}
!196 = !{!197, !59, i64 0}
!197 = !{!"_ZTS11aiVectorKey", !59, i64 0, !53, i64 8, !198, i64 20}
!198 = !{!"_ZTS19aiAnimInterpolation", !7, i64 0}
!199 = distinct !{!199, !63}
!200 = !{!193, !40, i64 1040}
!201 = !{!193, !6, i64 1048}
!202 = !{!203, !59, i64 0}
!203 = !{!"_ZTS9aiQuatKey", !59, i64 0, !204, i64 8, !198, i64 24}
!204 = !{!"_ZTS13aiQuaterniontIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12}
!205 = distinct !{!205, !63}
!206 = !{!193, !40, i64 1056}
!207 = !{!193, !6, i64 1064}
!208 = distinct !{!208, !63}
!209 = distinct !{!209, !63}
!210 = distinct !{!210, !63}


; 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::allocator" = type { i8 }
%"class.Assimp::StreamWriter" = type { %"class.std::shared_ptr", i8, %"class.std::vector.23", i64 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Assimp::FBX::Node" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.28", %"class.std::vector", i8, i64, i64, i64 }
%"class.std::vector.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = type { %"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::FBX::FBXExportProperty, std::allocator<Assimp::FBX::FBXExportProperty>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl" }
%"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl" = type { %"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Assimp::FBX::Node, std::allocator<Assimp::FBX::Node>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.70" = type { %"struct.std::_Vector_base.71" }
%"struct.std::_Vector_base.71" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.75" = type { %"struct.std::_Vector_base.76" }
%"struct.std::_Vector_base.76" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.80" = type { %"struct.std::_Vector_base.81" }
%"struct.std::_Vector_base.81" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.85" = type { %"class.std::_Rb_tree.86" }
%"class.std::_Rb_tree.86" = type { %"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, unsigned long>, std::_Select1st<std::pair<const aiVector3t<float>, unsigned long>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, unsigned long>, std::_Select1st<std::pair<const aiVector3t<float>, unsigned long>>, std::less<aiVector3t<float>>>::_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.aiVector3t = type { float, float, float }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::map.94" = type { %"class.std::_Rb_tree.95" }
%"class.std::_Rb_tree.95" = type { %"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, int>, std::_Select1st<std::pair<const aiVector3t<float>, int>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiVector3t<float>, std::pair<const aiVector3t<float>, int>, std::_Select1st<std::pair<const aiVector3t<float>, int>>, std::less<aiVector3t<float>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.99" = type { ptr }
%"class.std::allocator.82" = type { i8 }
%struct.aiColor3D = type { float, float, float }
%struct.aiString = type { i32, [1024 x i8] }
%"class.std::map.11" = type { %"class.std::_Rb_tree.12" }
%"class.std::_Rb_tree.12" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, long>>, 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>, long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, long>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.103" = type { ptr }
%"class.std::map.106" = type { %"class.std::_Rb_tree.107" }
%"class.std::_Rb_tree.107" = type { %"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<const std::pair<unsigned long, unsigned long>, long>, std::_Select1st<std::pair<const std::pair<unsigned long, unsigned long>, long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<const std::pair<unsigned long, unsigned long>, long>, std::_Select1st<std::pair<const std::pair<unsigned long, unsigned long>, long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.112" = type { %"class.std::_Rb_tree.113" }
%"class.std::_Rb_tree.113" = type { %"struct.std::_Rb_tree<aiTextureType, std::pair<const aiTextureType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const aiTextureType, std::__cxx11::basic_string<char>>>, std::less<aiTextureType>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<aiTextureType, std::pair<const aiTextureType, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const aiTextureType, std::__cxx11::basic_string<char>>>, std::less<aiTextureType>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::pair.119" = type { i32, %"class.std::__cxx11::basic_string" }
%"struct.std::less" = type { i8 }
%"class.std::allocator.122" = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%struct.aiUVTransform = type { %class.aiVector2t, %class.aiVector2t, float }
%class.aiVector2t = type { float, float }
%"class.std::vector.125" = type { %"struct.std::_Vector_base.126" }
%"struct.std::_Vector_base.126" = type { %"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<const aiNode *>, std::allocator<std::vector<const aiNode *>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.127" = type { i8 }
%"class.std::unordered_set.130" = type { %"class.std::_Hashtable.131" }
%"class.std::_Hashtable.131" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::vector.17" = type { %"struct.std::_Vector_base.18" }
%"struct.std::_Vector_base.18" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.aiMatrix4x4t = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
%"class.std::map.150" = type { %"class.std::_Rb_tree.151" }
%"class.std::_Rb_tree.151" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, aiNode *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiNode *>>, 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>, aiNode *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiNode *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const aiNode *, std::allocator<const aiNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::_Rb_tree_iterator.155" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.43" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.163" = type { ptr }
%"struct.std::_Rb_tree_iterator.164" = type { ptr }
%"class.std::set" = type { %"class.std::_Rb_tree.165" }
%"class.std::_Rb_tree.165" = type { %"struct.std::_Rb_tree<const aiBone *, const aiBone *, std::_Identity<const aiBone *>, std::less<const aiBone *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const aiBone *, const aiBone *, std::_Identity<const aiBone *>, std::less<const aiBone *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::set.170" = type { %"class.std::_Rb_tree.171" }
%"class.std::_Rb_tree.171" = type { %"struct.std::_Rb_tree<const aiNode *, const aiNode *, std::_Identity<const aiNode *>, std::less<const aiNode *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const aiNode *, const aiNode *, std::_Identity<const aiNode *>, std::less<const aiNode *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator.175" = type { ptr }
%"class.std::set.180" = type { %"class.std::_Rb_tree.181" }
%"class.std::_Rb_tree.181" = type { %"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_const_iterator.186" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.190" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.178" = type { ptr }
%"class.Assimp::FBX::FBXExportProperty" = type { i8, %"class.std::vector.23" }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%"class.std::vector.191" = type { %"struct.std::_Vector_base.192" }
%"struct.std::_Vector_base.192" = type { %"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::array<long, 3>>, std::allocator<std::vector<std::array<long, 3>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = type { %"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<long, 3>, std::allocator<std::array<long, 3>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::array" = type { [3 x i64] }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.aiMatrix3x3t = type { float, float, float, float, float, float, float, float, float }
%struct.aiFace = type { i32, ptr }
%class.aiColor4t = type { float, float, float, float }
%struct.aiVertexWeight = type { i32, float }
%struct.aiVectorKey = type { double, %class.aiVector3t, i32 }
%struct.aiQuatKey = type <{ double, %class.aiQuaterniont, i32, [4 x i8] }>
%class.aiQuaterniont = type { float, float, float, float }

@_ZN6Assimp3FBXL9SEPARATORB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZN6Assimp3FBXL14MAGIC_NODE_TAGB5cxx11E = external hidden global %"class.std::__cxx11::basic_string", align 8
@_ZTI17DeadlyExportError = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.31 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.300 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.301 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.302 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.305 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.306 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.307 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.308 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.309 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.310 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.312 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.313 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.341 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.342 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.368 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.369 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.370 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.371 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.372 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.373 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.374 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.375 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.376 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.377 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp12StreamWriterILb0ELb0EEC2ESt10shared_ptrINS_8IOStreamEEb(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef, i1 noundef zeroext) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp11FBXExporter12WriteObjectsEv(ptr noundef nonnull align 8 dereferenceable(216) %0) local_unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::allocator", align 1
  %4 = alloca %"class.Assimp::StreamWriter", align 8
  %5 = alloca %"class.std::shared_ptr", align 8
  %6 = alloca %"class.Assimp::FBX::Node", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::vector.70", align 8
  %10 = alloca %"class.Assimp::FBX::Node", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::vector.75", align 8
  %16 = alloca %"class.std::vector.80", align 8
  %17 = alloca %"class.std::map.85", align 8
  %18 = alloca i32, align 4
  %19 = alloca %class.aiVector3t, align 4
  %20 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %21 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %"class.std::vector.80", align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.Assimp::FBX::Node", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i32, align 4
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::vector.75", align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.Assimp::FBX::Node", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca i32, align 4
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca [8 x i8], align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::vector.75", align 8
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.Assimp::FBX::Node", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca i32, align 4
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %89 = alloca %"class.std::vector.75", align 8
  %90 = alloca %"class.std::vector.80", align 8
  %91 = alloca %"class.std::map.94", align 8
  %92 = alloca i32, align 4
  %93 = alloca %"struct.std::_Rb_tree_iterator.99", align 8
  %94 = alloca %"struct.std::_Rb_tree_iterator.99", align 8
  %95 = alloca double, align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"class.Assimp::FBX::Node", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator", align 1
  %103 = alloca i32, align 4
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::allocator", align 1
  %106 = alloca i32, align 4
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::allocator", align 1
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::allocator", align 1
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"class.std::vector.80", align 8
  %114 = alloca [1 x i32], align 4
  %115 = alloca %"class.std::allocator.82", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.Assimp::FBX::Node", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca i32, align 4
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::allocator", align 1
  %124 = alloca i32, align 4
  %125 = alloca %"class.Assimp::FBX::Node", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator", align 1
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca i32, align 4
  %133 = alloca %"class.Assimp::FBX::Node", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::allocator", align 1
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca i32, align 4
  %141 = alloca %"class.Assimp::FBX::Node", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::allocator", align 1
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::allocator", align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca i32, align 4
  %149 = alloca %"class.Assimp::FBX::Node", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::allocator", align 1
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::allocator", align 1
  %156 = alloca i32, align 4
  %157 = alloca %"class.Assimp::FBX::Node", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca i32, align 4
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::allocator", align 1
  %163 = alloca i32, align 4
  %164 = alloca %"class.Assimp::FBX::Node", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::allocator", align 1
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::allocator", align 1
  %169 = alloca %"class.std::__cxx11::basic_string", align 8
  %170 = alloca %"class.std::allocator", align 1
  %171 = alloca i32, align 4
  %172 = alloca float, align 4
  %173 = alloca %struct.aiColor3D, align 8
  %174 = alloca %"class.Assimp::FBX::Node", align 8
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::allocator", align 1
  %177 = alloca i64, align 8
  %178 = alloca %struct.aiString, align 4
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::allocator", align 1
  %183 = alloca i32, align 4
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::allocator", align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator", align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::allocator", align 1
  %190 = alloca i32, align 4
  %191 = alloca %"class.Assimp::FBX::Node", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::allocator", align 1
  %196 = alloca %"class.std::__cxx11::basic_string", align 8
  %197 = alloca %"class.std::allocator", align 1
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::allocator", align 1
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::allocator", align 1
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::allocator", align 1
  %206 = alloca %"class.std::__cxx11::basic_string", align 8
  %207 = alloca %"class.std::allocator", align 1
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator", align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator", align 1
  %212 = alloca %"class.std::__cxx11::basic_string", align 8
  %213 = alloca %"class.std::allocator", align 1
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator", align 1
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::allocator", align 1
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::allocator", align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::allocator", align 1
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"class.std::allocator", align 1
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator", align 1
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::allocator", align 1
  %228 = alloca %"class.std::__cxx11::basic_string", align 8
  %229 = alloca %"class.std::allocator", align 1
  %230 = alloca %"class.std::map.11", align 8
  %231 = alloca %struct.aiString, align 4
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::allocator", align 1
  %234 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %235 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %236 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %237 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %238 = alloca %"class.Assimp::FBX::Node", align 8
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::allocator", align 1
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::allocator", align 1
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::__cxx11::basic_string", align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::allocator", align 1
  %247 = alloca %"class.Assimp::FBX::Node", align 8
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::allocator", align 1
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca i32, align 4
  %255 = alloca %"class.std::vector.23", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::allocator", align 1
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator", align 1
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::allocator", align 1
  %265 = alloca %"class.std::__cxx11::basic_string", align 8
  %266 = alloca %"class.std::allocator", align 1
  %267 = alloca %"class.std::__cxx11::basic_string", align 8
  %268 = alloca %"class.std::allocator", align 1
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::allocator", align 1
  %271 = alloca i32, align 4
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.std::allocator", align 1
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"class.std::allocator", align 1
  %276 = alloca %"class.std::map.106", align 8
  %277 = alloca %"class.std::map.112", align 8
  %278 = alloca [10 x %"struct.std::pair.119"], align 8
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca i32, align 4
  %289 = alloca %"struct.std::less", align 1
  %290 = alloca %"class.std::allocator.122", align 1
  %291 = alloca i64, align 8
  %292 = alloca i32, align 4
  %293 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %struct.aiString, align 4
  %296 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::allocator", align 1
  %300 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %301 = alloca %"struct.std::_Rb_tree_iterator.103", align 8
  %302 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca i64, align 8
  %305 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %306 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %307 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca i64, align 8
  %310 = alloca %struct.aiUVTransform, align 4
  %311 = alloca i32, align 4
  %312 = alloca %"class.Assimp::FBX::Node", align 8
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::allocator", align 1
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::__cxx11::basic_string", align 8
  %318 = alloca %"class.std::allocator", align 1
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator", align 1
  %321 = alloca i32, align 4
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::allocator", align 1
  %324 = alloca %"class.Assimp::FBX::Node", align 8
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::allocator", align 1
  %327 = alloca %"class.std::__cxx11::basic_string", align 8
  %328 = alloca %"class.std::allocator", align 1
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::allocator", align 1
  %333 = alloca %"class.std::__cxx11::basic_string", align 8
  %334 = alloca %"class.std::allocator", align 1
  %335 = alloca %"class.std::__cxx11::basic_string", align 8
  %336 = alloca %"class.std::allocator", align 1
  %337 = alloca %"class.std::__cxx11::basic_string", align 8
  %338 = alloca %"class.std::allocator", align 1
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"class.std::allocator", align 1
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::allocator", align 1
  %343 = alloca double, align 8
  %344 = alloca double, align 8
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::allocator", align 1
  %347 = alloca double, align 8
  %348 = alloca double, align 8
  %349 = alloca %"class.std::__cxx11::basic_string", align 8
  %350 = alloca %"class.std::allocator", align 1
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %"class.std::allocator", align 1
  %353 = alloca i32, align 4
  %354 = alloca i32, align 4
  %355 = alloca i32, align 4
  %356 = alloca i32, align 4
  %357 = alloca i64, align 8
  %358 = alloca %"class.Assimp::FBX::Node", align 8
  %359 = alloca %"class.std::__cxx11::basic_string", align 8
  %360 = alloca %"class.std::allocator", align 1
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::allocator", align 1
  %365 = alloca i32, align 4
  %366 = alloca %"class.std::vector.80", align 8
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"class.std::allocator", align 1
  %369 = alloca %"class.Assimp::FBX::Node", align 8
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.std::allocator", align 1
  %372 = alloca i64, align 8
  %373 = alloca %"class.std::__cxx11::basic_string", align 8
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::__cxx11::basic_string", align 8
  %376 = alloca %"class.std::allocator", align 1
  %377 = alloca i32, align 4
  %378 = alloca %"class.std::vector.80", align 8
  %379 = alloca %"class.std::vector.75", align 8
  %380 = alloca %"class.std::vector.75", align 8
  %381 = alloca %class.aiVector3t, align 8
  %382 = alloca double, align 8
  %383 = alloca double, align 8
  %384 = alloca double, align 8
  %385 = alloca %class.aiVector3t, align 8
  %386 = alloca double, align 8
  %387 = alloca double, align 8
  %388 = alloca double, align 8
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::allocator", align 1
  %391 = alloca %"class.std::__cxx11::basic_string", align 8
  %392 = alloca %"class.std::allocator", align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator", align 1
  %395 = alloca %"class.Assimp::FBX::Node", align 8
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %"class.std::allocator", align 1
  %398 = alloca i64, align 8
  %399 = alloca %"class.std::__cxx11::basic_string", align 8
  %400 = alloca %"class.std::__cxx11::basic_string", align 8
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::allocator", align 1
  %403 = alloca i32, align 4
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::allocator", align 1
  %406 = alloca float, align 4
  %407 = alloca %"class.Assimp::FBX::Node", align 8
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::allocator", align 1
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::allocator", align 1
  %412 = alloca %"class.std::vector.75", align 8
  %413 = alloca double, align 8
  %414 = alloca %"class.std::__cxx11::basic_string", align 8
  %415 = alloca %"class.std::allocator", align 1
  %416 = alloca %"class.std::vector.125", align 8
  %417 = alloca %"class.std::allocator.127", align 1
  %418 = alloca %"class.std::unordered_set.130", align 8
  %419 = alloca %"class.std::vector.17", align 8
  %420 = alloca %"class.std::__cxx11::basic_string", align 8
  %421 = alloca %"class.std::allocator", align 1
  %422 = alloca %class.aiMatrix4x4t, align 4
  %423 = alloca %"class.std::map.150", align 8
  %424 = alloca %"class.std::vector.38", align 8
  %425 = alloca %"class.std::__cxx11::basic_string", align 8
  %426 = alloca %"class.std::allocator", align 1
  %427 = alloca %"struct.std::_Rb_tree_iterator.155", align 8
  %428 = alloca ptr, align 8
  %429 = alloca %"struct.std::_Rb_tree_iterator.155", align 8
  %430 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %431 = alloca %"class.std::__cxx11::basic_string", align 8
  %432 = alloca ptr, align 8
  %433 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %434 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %435 = alloca %"class.std::__cxx11::basic_string", align 8
  %436 = alloca %"class.std::allocator", align 1
  %437 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %438 = alloca %"class.__gnu_cxx::__normal_iterator.163", align 8
  %439 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %440 = alloca %"class.__gnu_cxx::__normal_iterator.43", align 8
  %441 = alloca ptr, align 8
  %442 = alloca %"struct.std::_Rb_tree_iterator.164", align 8
  %443 = alloca %"struct.std::_Rb_tree_iterator.164", align 8
  %444 = alloca i64, align 8
  %445 = alloca %"class.Assimp::FBX::Node", align 8
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"class.std::allocator", align 1
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::__cxx11::basic_string", align 8
  %450 = alloca %"class.std::allocator", align 1
  %451 = alloca i32, align 4
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"class.std::allocator", align 1
  %454 = alloca double, align 8
  %455 = alloca %"class.std::__cxx11::basic_string", align 8
  %456 = alloca %"class.std::allocator", align 1
  %457 = alloca %"class.std::set", align 8
  %458 = alloca %"class.std::set.170", align 8
  %459 = alloca %class.aiMatrix4x4t, align 4
  %460 = alloca %"class.__gnu_cxx::__normal_iterator.175", align 8
  %461 = alloca %"class.__gnu_cxx::__normal_iterator.175", align 8
  %462 = alloca ptr, align 8
  %463 = alloca %"class.std::__cxx11::basic_string", align 8
  %464 = alloca %"class.std::allocator", align 1
  %465 = alloca i64, align 8
  %466 = alloca %"class.Assimp::FBX::Node", align 8
  %467 = alloca %"class.std::__cxx11::basic_string", align 8
  %468 = alloca %"class.std::allocator", align 1
  %469 = alloca %"class.std::__cxx11::basic_string", align 8
  %470 = alloca %"class.std::__cxx11::basic_string", align 8
  %471 = alloca %"class.std::allocator", align 1
  %472 = alloca i32, align 4
  %473 = alloca %"class.std::__cxx11::basic_string", align 8
  %474 = alloca %"class.std::allocator", align 1
  %475 = alloca %"class.std::set.180", align 8
  %476 = alloca %"class.std::vector.80", align 8
  %477 = alloca %"class.std::vector.75", align 8
  %478 = alloca i32, align 4
  %479 = alloca %"struct.std::_Rb_tree_const_iterator.186", align 8
  %480 = alloca %"struct.std::_Rb_tree_const_iterator.186", align 8
  %481 = alloca double, align 8
  %482 = alloca %"class.std::__cxx11::basic_string", align 8
  %483 = alloca %"class.std::allocator", align 1
  %484 = alloca %"class.std::__cxx11::basic_string", align 8
  %485 = alloca %"class.std::allocator", align 1
  %486 = alloca %class.aiMatrix4x4t, align 4
  %487 = alloca %class.aiMatrix4x4t, align 4
  %488 = alloca %class.aiMatrix4x4t, align 4
  %489 = alloca %"class.std::__cxx11::basic_string", align 8
  %490 = alloca %"class.std::allocator", align 1
  %491 = alloca %"class.std::__cxx11::basic_string", align 8
  %492 = alloca %"class.std::allocator", align 1
  %493 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %494 = alloca %"struct.std::_Rb_tree_const_iterator.190", align 8
  %495 = alloca %"struct.std::_Rb_tree_const_iterator.178", align 8
  %496 = alloca %"class.std::__cxx11::basic_string", align 8
  %497 = alloca i64, align 8
  %498 = alloca %"class.std::__cxx11::basic_string", align 8
  %499 = alloca %"class.std::__cxx11::basic_string", align 8
  %500 = alloca %"class.Assimp::FBX::Node", align 8
  %501 = alloca %"class.std::__cxx11::basic_string", align 8
  %502 = alloca %"class.std::allocator", align 1
  %503 = alloca %"class.Assimp::FBX::Node", align 8
  %504 = alloca %"class.std::__cxx11::basic_string", align 8
  %505 = alloca %"class.std::allocator", align 1
  %506 = alloca %"class.std::__cxx11::basic_string", align 8
  %507 = alloca %"class.std::allocator", align 1
  %508 = alloca %"class.std::__cxx11::basic_string", align 8
  %509 = alloca %"class.std::allocator", align 1
  %510 = alloca %"class.std::__cxx11::basic_string", align 8
  %511 = alloca %"class.std::allocator", align 1
  %512 = alloca %"class.std::__cxx11::basic_string", align 8
  %513 = alloca %"class.std::allocator", align 1
  %514 = alloca %"class.std::__cxx11::basic_string", align 8
  %515 = alloca %"class.std::allocator", align 1
  %516 = alloca %"class.std::__cxx11::basic_string", align 8
  %517 = alloca %"class.std::allocator", align 1
  %518 = alloca %"class.std::__cxx11::basic_string", align 8
  %519 = alloca %"class.std::allocator", align 1
  %520 = alloca %"class.std::__cxx11::basic_string", align 8
  %521 = alloca %"class.std::allocator", align 1
  %522 = alloca %"class.std::__cxx11::basic_string", align 8
  %523 = alloca %"class.std::allocator", align 1
  %524 = alloca %"class.Assimp::FBX::FBXExportProperty", align 8
  %525 = alloca %"class.std::__cxx11::basic_string", align 8
  %526 = alloca %"class.std::allocator", align 1
  %527 = alloca %"class.Assimp::FBX::FBXExportProperty", align 8
  %528 = alloca %"class.std::__cxx11::basic_string", align 8
  %529 = alloca %"class.std::allocator", align 1
  %530 = alloca %"class.std::vector.3", align 8
  %531 = alloca %"class.std::allocator.5", align 1
  %532 = alloca i64, align 8
  %533 = alloca %"class.Assimp::FBX::Node", align 8
  %534 = alloca %"class.std::__cxx11::basic_string", align 8
  %535 = alloca %"class.std::allocator", align 1
  %536 = alloca %"class.std::__cxx11::basic_string", align 8
  %537 = alloca %"class.std::__cxx11::basic_string", align 8
  %538 = alloca %"class.Assimp::FBX::Node", align 8
  %539 = alloca %"class.std::__cxx11::basic_string", align 8
  %540 = alloca %"class.std::allocator", align 1
  %541 = alloca %"class.std::__cxx11::basic_string", align 8
  %542 = alloca %"class.std::allocator", align 1
  %543 = alloca %"class.std::__cxx11::basic_string", align 8
  %544 = alloca %"class.std::allocator", align 1
  %545 = alloca %"class.std::__cxx11::basic_string", align 8
  %546 = alloca %"class.std::allocator", align 1
  %547 = alloca %"class.std::__cxx11::basic_string", align 8
  %548 = alloca %"class.std::allocator", align 1
  %549 = alloca %"class.std::vector.3", align 8
  %550 = alloca %"class.std::allocator.5", align 1
  %551 = alloca i64, align 8
  %552 = alloca %"class.Assimp::FBX::Node", align 8
  %553 = alloca %"class.std::__cxx11::basic_string", align 8
  %554 = alloca %"class.std::allocator", align 1
  %555 = alloca %"class.std::__cxx11::basic_string", align 8
  %556 = alloca %"class.std::vector.191", align 8
  %557 = alloca %"class.std::vector.196", align 8
  %558 = alloca ptr, align 8
  %559 = alloca %class.aiMatrix4x4t, align 4
  %560 = alloca %class.aiVector3t, align 8
  %561 = alloca %class.aiVector3t, align 8
  %562 = alloca %class.aiVector3t, align 8
  %563 = alloca %"struct.std::array", align 8
  %564 = alloca %"class.std::__cxx11::basic_string", align 8
  %565 = alloca %"class.std::allocator", align 1
  %566 = alloca %"class.std::__cxx11::basic_string", align 8
  %567 = alloca %"class.std::allocator", align 1
  %568 = alloca %"class.std::__cxx11::basic_string", align 8
  %569 = alloca %"class.std::allocator", align 1
  %570 = alloca %"class.std::__cxx11::basic_string", align 8
  %571 = alloca %"class.std::allocator", align 1
  %572 = alloca %"class.std::__cxx11::basic_string", align 8
  %573 = alloca %"class.std::allocator", align 1
  %574 = alloca %"class.std::__cxx11::basic_string", align 8
  %575 = alloca %"class.std::allocator", align 1
  %576 = alloca %class.aiMatrix4x4t, align 4
  %577 = alloca %class.aiVector3t, align 4
  %578 = alloca %class.aiVector3t, align 4
  %579 = alloca %class.aiVector3t, align 4
  %580 = alloca %"class.std::vector.3", align 8
  %581 = alloca %"class.std::vector.201", align 8
  %582 = alloca %"class.std::vector.201", align 8
  %583 = alloca %"class.std::vector.201", align 8
  %584 = alloca i64, align 8
  %585 = alloca %"class.std::__cxx11::basic_string", align 8
  %586 = alloca %"class.std::allocator", align 1
  %587 = alloca %"class.std::__cxx11::basic_string", align 8
  %588 = alloca %"class.std::allocator", align 1
  %589 = alloca %"class.std::__cxx11::basic_string", align 8
  %590 = alloca %"class.std::allocator", align 1
  %591 = alloca i64, align 8
  %592 = alloca %class.aiMatrix4x4t, align 4
  %593 = alloca %class.aiMatrix3x3t, align 4
  %594 = alloca %class.aiVector3t, align 4
  %595 = alloca %class.aiVector3t, align 8
  %596 = alloca %class.aiVector3t, align 4
  %597 = alloca %"class.std::__cxx11::basic_string", align 8
  %598 = alloca %"class.std::allocator", align 1
  %599 = alloca %"class.std::__cxx11::basic_string", align 8
  %600 = alloca %"class.std::allocator", align 1
  %601 = alloca %"class.std::__cxx11::basic_string", align 8
  %602 = alloca %"class.std::allocator", align 1
  %603 = alloca i64, align 8
  %604 = alloca %"class.std::__cxx11::basic_string", align 8
  %605 = alloca %"class.std::allocator", align 1
  %606 = alloca %"class.std::__cxx11::basic_string", align 8
  %607 = alloca %"class.std::allocator", align 1
  %608 = alloca %"class.std::__cxx11::basic_string", align 8
  %609 = alloca %"class.std::allocator", align 1
  %610 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %611 = trunc nuw i8 %610 to i1
  br i1 %611, label %620, label %612

612:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.263, ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %613 unwind label %615

613:                                              ; preds = %612
  invoke void @_ZN6Assimp11FBXExporter23WriteAsciiSectionHeaderERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %614 unwind label %617

614:                                              ; preds = %613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #11
  br label %620

615:                                              ; preds = %612
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %619

617:                                              ; preds = %613
  %618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #11
  br label %619

619:                                              ; preds = %617, %615
  %.pn = phi { ptr, i32 } [ %618, %617 ], [ %616, %615 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %3) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #11
  br label %4078

620:                                              ; preds = %614, %1
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %4) #11
  %621 = getelementptr inbounds i8, ptr %0, i64 24
  call void @_ZNSt10shared_ptrIN6Assimp8IOStreamEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull align 8 dereferenceable(16) %621) #11
  invoke void @_ZN6Assimp12StreamWriterILb0ELb0EEC2ESt10shared_ptrINS_8IOStreamEEb(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull %5, i1 noundef zeroext false)
          to label %622 unwind label %653

622:                                              ; preds = %620
  call void @_ZNSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.264, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %623 unwind label %655

623:                                              ; preds = %622
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %624 unwind label %657

624:                                              ; preds = %623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  %625 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %626 = trunc nuw i8 %625 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %626, i32 noundef 0)
          to label %627 unwind label %660

627:                                              ; preds = %624
  %628 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %629 = trunc nuw i8 %628 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %629, i32 noundef 0)
          to label %630 unwind label %660

630:                                              ; preds = %627
  %631 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %632 = trunc nuw i8 %631 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %632, i32 noundef 0)
          to label %633 unwind label %660

633:                                              ; preds = %630
  %634 = getelementptr inbounds i8, ptr %0, i64 16
  %635 = load ptr, ptr %634, align 8, !tbaa !38
  %636 = invoke noundef zeroext i1 @_ZNK6Assimp16ExportProperties15GetPropertyBoolEPKcb(ptr noundef nonnull align 8 dereferenceable(240) %635, ptr noundef nonnull @.str.265, i1 noundef zeroext true)
          to label %637 unwind label %662

637:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #11
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #11
  %638 = load ptr, ptr %634, align 8, !tbaa !38
  %639 = invoke noundef zeroext i1 @_ZNK6Assimp16ExportProperties15GetPropertyBoolEPKcb(ptr noundef nonnull align 8 dereferenceable(240) %638, ptr noundef nonnull @.str.266, i1 noundef zeroext false)
          to label %640 unwind label %664

640:                                              ; preds = %637
  %641 = getelementptr inbounds i8, ptr %0, i64 64
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %641) #11
  %642 = getelementptr inbounds i8, ptr %0, i64 8
  %643 = load ptr, ptr %642, align 8, !tbaa !39
  %644 = getelementptr inbounds i8, ptr %643, i64 16
  %645 = load i32, ptr %644, align 8, !tbaa !40
  %.not2151 = icmp eq i32 %645, 0
  br i1 %.not2151, label %._crit_edge2016, label %.lr.ph2015

.lr.ph2015:                                       ; preds = %640
  %646 = getelementptr inbounds i8, ptr %75, i64 16
  br label %666

._crit_edge2016:                                  ; preds = %1517, %640
  %647 = getelementptr inbounds i8, ptr %0, i64 88
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %647) #11
  %648 = load ptr, ptr %642, align 8, !tbaa !39
  %649 = getelementptr inbounds i8, ptr %648, i64 32
  %650 = load i32, ptr %649, align 8, !tbaa !44
  %.not2166 = icmp eq i32 %650, 0
  br i1 %.not2166, label %._crit_edge2020, label %.lr.ph2019

.lr.ph2019:                                       ; preds = %._crit_edge2016
  %651 = getelementptr inbounds i8, ptr %173, i64 4
  %652 = getelementptr inbounds i8, ptr %173, i64 8
  br label %1539

653:                                              ; preds = %620
  %654 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %5) #11
  br label %4077

655:                                              ; preds = %622
  %656 = landingpad { ptr, i32 }
          cleanup
  br label %659

657:                                              ; preds = %623
  %658 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %659

659:                                              ; preds = %657, %655
  %.pn947 = phi { ptr, i32 } [ %658, %657 ], [ %656, %655 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  br label %4076

660:                                              ; preds = %630, %627, %624
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %4075

662:                                              ; preds = %633
  %663 = landingpad { ptr, i32 }
          cleanup
  br label %4075

664:                                              ; preds = %637
  %665 = landingpad { ptr, i32 }
          cleanup
  br label %4074

666:                                              ; preds = %.lr.ph2015, %1517
  %667 = phi ptr [ %643, %.lr.ph2015 ], [ %1519, %1517 ]
  %.08552013 = phi i64 [ 0, %.lr.ph2015 ], [ %1518, %1517 ]
  %668 = getelementptr inbounds i8, ptr %667, i64 24
  %669 = load ptr, ptr %668, align 8, !tbaa !45
  %670 = getelementptr inbounds ptr, ptr %669, i64 %.08552013
  %671 = load ptr, ptr %670, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.185, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %672 unwind label %696

672:                                              ; preds = %666
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %673 unwind label %698

673:                                              ; preds = %672
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %674 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %674, ptr %13, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %641, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %675 unwind label %701

675:                                              ; preds = %673
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %676 unwind label %701

676:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef nonnull @.str.185)
          to label %677 unwind label %703

677:                                              ; preds = %676
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %678 unwind label %705

678:                                              ; preds = %677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA5_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 1 dereferenceable(5) @.str.267)
          to label %679 unwind label %701

679:                                              ; preds = %678
  %680 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %681 = trunc nuw i8 %680 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %681, i32 noundef 1)
          to label %682 unwind label %701

682:                                              ; preds = %679
  %683 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %684 = trunc nuw i8 %683 to i1
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %684, i32 noundef 1)
          to label %685 unwind label %701

685:                                              ; preds = %682
  %686 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %687 = trunc nuw i8 %686 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %687, i32 noundef 1)
          to label %688 unwind label %701

688:                                              ; preds = %685
  %689 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %690 = trunc nuw i8 %689 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %690, i32 noundef 1)
          to label %691 unwind label %701

691:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %17) #11
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #11
  br i1 %636, label %692, label %757

692:                                              ; preds = %691
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #11
  store i32 0, ptr %18, align 4, !tbaa !48
  %693 = getelementptr inbounds i8, ptr %671, i64 4
  %694 = load i32, ptr %693, align 4, !tbaa !49
  %.not2153 = icmp eq i32 %694, 0
  br i1 %.not2153, label %._crit_edge, label %.lr.ph1967

.lr.ph1967:                                       ; preds = %692
  %695 = getelementptr inbounds i8, ptr %671, i64 16
  br label %708

._crit_edge:                                      ; preds = %751, %692
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #11
  br label %.loopexit1573

696:                                              ; preds = %666
  %697 = landingpad { ptr, i32 }
          cleanup
  br label %700

698:                                              ; preds = %672
  %699 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %700

700:                                              ; preds = %698, %696
  %.pn1368 = phi { ptr, i32 } [ %699, %698 ], [ %697, %696 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  br label %1535

701:                                              ; preds = %688, %685, %682, %679, %678, %675, %673
  %702 = landingpad { ptr, i32 }
          cleanup
  br label %1534

703:                                              ; preds = %676
  %704 = landingpad { ptr, i32 }
          cleanup
  br label %707

705:                                              ; preds = %677
  %706 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %707

707:                                              ; preds = %705, %703
  %.pn1370 = phi { ptr, i32 } [ %706, %705 ], [ %704, %703 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  br label %1534

708:                                              ; preds = %.lr.ph1967, %751
  %.08601966 = phi i64 [ 0, %.lr.ph1967 ], [ %752, %751 ]
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %19) #11
  %709 = load ptr, ptr %695, align 8, !tbaa !55
  %710 = getelementptr inbounds %class.aiVector3t, ptr %709, i64 %.08601966
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %19, ptr noundef nonnull align 4 dereferenceable(12) %710, i64 12, i1 false), !tbaa.struct !56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %711 = invoke ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %17, ptr noundef nonnull align 4 dereferenceable(12) %19)
          to label %712 unwind label %735

712:                                              ; preds = %708
  store ptr %711, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %713 = call ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %17) #11
  store ptr %713, ptr %21, align 8
  %714 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEmEES7_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  br i1 %714, label %715, label %743

715:                                              ; preds = %712
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %716 unwind label %735

716:                                              ; preds = %715
  %717 = load i32, ptr %18, align 4, !tbaa !48
  %718 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %17, ptr noundef nonnull align 4 dereferenceable(12) %19)
          to label %719 unwind label %735

719:                                              ; preds = %716
  %720 = sext i32 %717 to i64
  store i64 %720, ptr %718, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %721 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %19, i32 noundef 0)
  %722 = load float, ptr %721, align 4, !tbaa !57
  %723 = fpext float %722 to double
  store double %723, ptr %22, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %724 unwind label %737

724:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %725 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %19, i32 noundef 1)
  %726 = load float, ptr %725, align 4, !tbaa !57
  %727 = fpext float %726 to double
  store double %727, ptr %23, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %728 unwind label %739

728:                                              ; preds = %724
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %729 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %19, i32 noundef 2)
  %730 = load float, ptr %729, align 4, !tbaa !57
  %731 = fpext float %730 to double
  store double %731, ptr %24, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %732 unwind label %741

732:                                              ; preds = %728
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  %733 = load i32, ptr %18, align 4, !tbaa !48
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr %18, align 4, !tbaa !48
  br label %751

735:                                              ; preds = %716, %715, %708
  %736 = landingpad { ptr, i32 }
          cleanup
  br label %756

737:                                              ; preds = %719
  %738 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  br label %756

739:                                              ; preds = %724
  %740 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  br label %756

741:                                              ; preds = %728
  %742 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  br label %756

743:                                              ; preds = %712
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #11
  %744 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEmEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  %745 = getelementptr inbounds i8, ptr %744, i64 16
  %746 = load i64, ptr %745, align 8, !tbaa !60
  %747 = trunc i64 %746 to i32
  store i32 %747, ptr %25, align 4, !tbaa !48
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %748 unwind label %749

748:                                              ; preds = %743
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #11
  br label %751

749:                                              ; preds = %743
  %750 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #11
  br label %756

751:                                              ; preds = %748, %732
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %19) #11
  %752 = add nuw nsw i64 %.08601966, 1
  %753 = load i32, ptr %693, align 4, !tbaa !49
  %754 = zext i32 %753 to i64
  %755 = icmp ult i64 %752, %754
  br i1 %755, label %708, label %._crit_edge, !llvm.loop !62

756:                                              ; preds = %749, %741, %739, %737, %735
  %.pn1508 = phi { ptr, i32 } [ %742, %741 ], [ %740, %739 ], [ %738, %737 ], [ %736, %735 ], [ %750, %749 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #11
  br label %1533

757:                                              ; preds = %691
  %758 = getelementptr inbounds i8, ptr %671, i64 4
  %759 = load i32, ptr %758, align 4, !tbaa !49
  %760 = zext i32 %759 to i64
  invoke void @_ZNSt6vectorIiSaIiEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %760)
          to label %761 unwind label %766

761:                                              ; preds = %757
  %762 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  %763 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr %762, ptr %763, i32 noundef 0)
  %764 = load i32, ptr %758, align 4, !tbaa !49
  %.not2152 = icmp eq i32 %764, 0
  br i1 %.not2152, label %.loopexit1573, label %.lr.ph

.lr.ph:                                           ; preds = %761
  %765 = getelementptr inbounds i8, ptr %671, i64 16
  br label %768

766:                                              ; preds = %.loopexit1573, %757
  %767 = landingpad { ptr, i32 }
          cleanup
  br label %1533

768:                                              ; preds = %.lr.ph, %776
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %776 ]
  %769 = load ptr, ptr %765, align 8, !tbaa !55
  %770 = getelementptr inbounds %class.aiVector3t, ptr %769, i64 %indvars.iv
  %.sroa.0375.0.copyload = load float, ptr %770, align 4, !tbaa !57
  %.sroa.5376.0..sroa_idx = getelementptr inbounds i8, ptr %770, i64 4
  %.sroa.5376.0.copyload = load float, ptr %.sroa.5376.0..sroa_idx, align 4, !tbaa !57
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %770, i64 8
  %.sroa.6.0.copyload = load float, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %771 = fpext float %.sroa.0375.0.copyload to double
  store double %771, ptr %26, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %772 unwind label %780

772:                                              ; preds = %768
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %773 = fpext float %.sroa.5376.0.copyload to double
  store double %773, ptr %27, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %774 unwind label %782

774:                                              ; preds = %772
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #11
  %775 = fpext float %.sroa.6.0.copyload to double
  store double %775, ptr %28, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %776 unwind label %784

776:                                              ; preds = %774
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %777 = load i32, ptr %758, align 4, !tbaa !49
  %778 = zext i32 %777 to i64
  %779 = icmp ult i64 %indvars.iv.next, %778
  br i1 %779, label %768, label %.loopexit1573, !llvm.loop !64

780:                                              ; preds = %768
  %781 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  br label %1533

782:                                              ; preds = %772
  %783 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  br label %1533

784:                                              ; preds = %774
  %785 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #11
  br label %1533

.loopexit1573:                                    ; preds = %776, %761, %._crit_edge
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %786 unwind label %766

786:                                              ; preds = %.loopexit1573
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.268, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %787 unwind label %794

787:                                              ; preds = %786
  %788 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %789 = trunc nuw i8 %788 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %789, i32 noundef 2)
          to label %790 unwind label %796

790:                                              ; preds = %787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #11
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #11
  %791 = getelementptr inbounds i8, ptr %671, i64 8
  %792 = load i32, ptr %791, align 8, !tbaa !65
  %.not2154 = icmp eq i32 %792, 0
  br i1 %.not2154, label %._crit_edge1975, label %.lr.ph1974

.lr.ph1974:                                       ; preds = %790
  %793 = getelementptr inbounds i8, ptr %671, i64 208
  br label %799

._crit_edge1975:                                  ; preds = %829, %790
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.269, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %836 unwind label %881

794:                                              ; preds = %786
  %795 = landingpad { ptr, i32 }
          cleanup
  br label %798

796:                                              ; preds = %787
  %797 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %798

798:                                              ; preds = %796, %794
  %.pn1374 = phi { ptr, i32 } [ %797, %796 ], [ %795, %794 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  br label %1533

799:                                              ; preds = %.lr.ph1974, %829
  %.08641972 = phi i64 [ 0, %.lr.ph1974 ], [ %830, %829 ]
  %800 = load ptr, ptr %793, align 8, !tbaa !66
  %801 = getelementptr inbounds %struct.aiFace, ptr %800, i64 %.08641972
  %802 = load i32, ptr %801, align 8, !tbaa !67
  %.not2155 = icmp eq i32 %802, 1
  br i1 %.not2155, label %._crit_edge1971, label %.lr.ph1970

.lr.ph1970:                                       ; preds = %799
  %803 = getelementptr inbounds i8, ptr %801, i64 8
  br label %815

._crit_edge1971:                                  ; preds = %821, %799
  %804 = phi i32 [ 1, %799 ], [ %823, %821 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #11
  %805 = getelementptr inbounds i8, ptr %801, i64 8
  %806 = load ptr, ptr %805, align 8, !tbaa !69
  %807 = add i32 %804, -1
  %808 = zext i32 %807 to i64
  %809 = getelementptr inbounds i32, ptr %806, i64 %808
  %810 = load i32, ptr %809, align 4, !tbaa !48
  %811 = zext i32 %810 to i64
  %812 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %811) #11
  %813 = load i32, ptr %812, align 4, !tbaa !48
  %814 = xor i32 %813, -1
  store i32 %814, ptr %32, align 4, !tbaa !48
  invoke void @_ZNSt6vectorIiSaIiEE9push_backEOi(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %829 unwind label %834

815:                                              ; preds = %.lr.ph1970, %821
  %.08651968 = phi i64 [ 0, %.lr.ph1970 ], [ %822, %821 ]
  %816 = load ptr, ptr %803, align 8, !tbaa !69
  %817 = getelementptr inbounds i32, ptr %816, i64 %.08651968
  %818 = load i32, ptr %817, align 4, !tbaa !48
  %819 = zext i32 %818 to i64
  %820 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %819) #11
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 4 dereferenceable(4) %820)
          to label %821 unwind label %827

821:                                              ; preds = %815
  %822 = add nuw nsw i64 %.08651968, 1
  %823 = load i32, ptr %801, align 8, !tbaa !67
  %824 = add i32 %823, -1
  %825 = zext i32 %824 to i64
  %826 = icmp ult i64 %822, %825
  br i1 %826, label %815, label %._crit_edge1971, !llvm.loop !70

827:                                              ; preds = %815
  %828 = landingpad { ptr, i32 }
          cleanup
  br label %1532

829:                                              ; preds = %._crit_edge1971
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #11
  %830 = add nuw nsw i64 %.08641972, 1
  %831 = load i32, ptr %791, align 8, !tbaa !65
  %832 = zext i32 %831 to i64
  %833 = icmp ult i64 %830, %832
  br i1 %833, label %799, label %._crit_edge1975, !llvm.loop !71

834:                                              ; preds = %._crit_edge1971
  %835 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #11
  br label %1532

836:                                              ; preds = %._crit_edge1975
  %837 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %838 = trunc nuw i8 %837 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %838, i32 noundef 2)
          to label %839 unwind label %883

839:                                              ; preds = %836
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.270, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %840 unwind label %886

840:                                              ; preds = %839
  %841 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %842 = trunc nuw i8 %841 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %35, i32 noundef 124, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %842, i32 noundef 2)
          to label %843 unwind label %888

843:                                              ; preds = %840
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  %844 = call noundef zeroext i1 @_ZNK6aiMesh10HasNormalsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  br i1 %844, label %845, label %973

845:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %37) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.271, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %846 unwind label %891

846:                                              ; preds = %845
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #11
  store i32 0, ptr %40, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %847 unwind label %893

847:                                              ; preds = %846
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  %848 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %849 = trunc nuw i8 %848 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %849, i32 noundef 2)
          to label %850 unwind label %896

850:                                              ; preds = %847
  %851 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %852 = trunc nuw i8 %851 to i1
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %852, i32 noundef 2)
          to label %853 unwind label %896

853:                                              ; preds = %850
  %854 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %855 = trunc nuw i8 %854 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %855, i32 noundef 2)
          to label %856 unwind label %896

856:                                              ; preds = %853
  %857 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %858 = trunc nuw i8 %857 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %858, i32 noundef 2)
          to label %859 unwind label %896

859:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %860 unwind label %898

860:                                              ; preds = %859
  %861 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %862 = trunc nuw i8 %861 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %41, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %862, i32 noundef 3)
          to label %863 unwind label %900

863:                                              ; preds = %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %864 unwind label %903

864:                                              ; preds = %863
  %865 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %866 = trunc nuw i8 %865 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.67, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %866, i32 noundef 3)
          to label %867 unwind label %905

867:                                              ; preds = %864
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %868 unwind label %908

868:                                              ; preds = %867
  %869 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %870 = trunc nuw i8 %869 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %870, i32 noundef 3)
          to label %871 unwind label %910

871:                                              ; preds = %868
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %872 unwind label %913

872:                                              ; preds = %871
  %873 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %874 = trunc nuw i8 %873 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.276, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %874, i32 noundef 3)
          to label %875 unwind label %915

875:                                              ; preds = %872
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #11
  %876 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #11
  %877 = mul i64 %876, 3
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %877)
          to label %.preheader1572 unwind label %918

.preheader1572:                                   ; preds = %875
  %878 = load i32, ptr %791, align 8, !tbaa !65
  %.not2156 = icmp eq i32 %878, 0
  br i1 %.not2156, label %._crit_edge1982, label %.lr.ph1981

.lr.ph1981:                                       ; preds = %.preheader1572
  %879 = getelementptr inbounds i8, ptr %671, i64 208
  %880 = getelementptr inbounds i8, ptr %671, i64 24
  br label %920

._crit_edge1982:                                  ; preds = %._crit_edge1979, %.preheader1572
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.277, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %958 unwind label %965

881:                                              ; preds = %._crit_edge1975
  %882 = landingpad { ptr, i32 }
          cleanup
  br label %885

883:                                              ; preds = %836
  %884 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br label %885

885:                                              ; preds = %883, %881
  %.pn1376 = phi { ptr, i32 } [ %884, %883 ], [ %882, %881 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #11
  br label %1532

886:                                              ; preds = %839
  %887 = landingpad { ptr, i32 }
          cleanup
  br label %890

888:                                              ; preds = %840
  %889 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %890

890:                                              ; preds = %888, %886
  %.pn1378 = phi { ptr, i32 } [ %889, %888 ], [ %887, %886 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  br label %1532

891:                                              ; preds = %845
  %892 = landingpad { ptr, i32 }
          cleanup
  br label %895

893:                                              ; preds = %846
  %894 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %895

895:                                              ; preds = %893, %891
  %.pn1380 = phi { ptr, i32 } [ %894, %893 ], [ %892, %891 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #11
  br label %972

896:                                              ; preds = %856, %853, %850, %847
  %897 = landingpad { ptr, i32 }
          cleanup
  br label %971

898:                                              ; preds = %859
  %899 = landingpad { ptr, i32 }
          cleanup
  br label %902

900:                                              ; preds = %860
  %901 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %902

902:                                              ; preds = %900, %898
  %.pn1382 = phi { ptr, i32 } [ %901, %900 ], [ %899, %898 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #11
  br label %971

903:                                              ; preds = %863
  %904 = landingpad { ptr, i32 }
          cleanup
  br label %907

905:                                              ; preds = %864
  %906 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %907

907:                                              ; preds = %905, %903
  %.pn1384 = phi { ptr, i32 } [ %906, %905 ], [ %904, %903 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #11
  br label %971

908:                                              ; preds = %867
  %909 = landingpad { ptr, i32 }
          cleanup
  br label %912

910:                                              ; preds = %868
  %911 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  br label %912

912:                                              ; preds = %910, %908
  %.pn1386 = phi { ptr, i32 } [ %911, %910 ], [ %909, %908 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #11
  br label %971

913:                                              ; preds = %871
  %914 = landingpad { ptr, i32 }
          cleanup
  br label %917

915:                                              ; preds = %872
  %916 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  br label %917

917:                                              ; preds = %915, %913
  %.pn1388 = phi { ptr, i32 } [ %916, %915 ], [ %914, %913 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #11
  br label %971

918:                                              ; preds = %961, %875
  %919 = landingpad { ptr, i32 }
          cleanup
  br label %970

920:                                              ; preds = %.lr.ph1981, %._crit_edge1979
  %921 = phi i32 [ %878, %.lr.ph1981 ], [ %926, %._crit_edge1979 ]
  %.08661980 = phi i64 [ 0, %.lr.ph1981 ], [ %927, %._crit_edge1979 ]
  %922 = load ptr, ptr %879, align 8, !tbaa !66
  %923 = getelementptr inbounds %struct.aiFace, ptr %922, i64 %.08661980
  %924 = load i32, ptr %923, align 8, !tbaa !67
  %.not2157 = icmp eq i32 %924, 0
  br i1 %.not2157, label %._crit_edge1979, label %.lr.ph1978

.lr.ph1978:                                       ; preds = %920
  %925 = getelementptr inbounds i8, ptr %923, i64 8
  br label %930

._crit_edge1979.loopexit:                         ; preds = %947
  %.pre = load i32, ptr %791, align 8, !tbaa !65
  br label %._crit_edge1979

._crit_edge1979:                                  ; preds = %._crit_edge1979.loopexit, %920
  %926 = phi i32 [ %.pre, %._crit_edge1979.loopexit ], [ %921, %920 ]
  %927 = add nuw nsw i64 %.08661980, 1
  %928 = zext i32 %926 to i64
  %929 = icmp ult i64 %927, %928
  br i1 %929, label %920, label %._crit_edge1982, !llvm.loop !72

930:                                              ; preds = %.lr.ph1978, %947
  %.08681976 = phi i64 [ 0, %.lr.ph1978 ], [ %948, %947 ]
  %931 = load ptr, ptr %880, align 8, !tbaa !73
  %932 = load ptr, ptr %925, align 8, !tbaa !69
  %933 = getelementptr inbounds i32, ptr %932, i64 %.08681976
  %934 = load i32, ptr %933, align 4, !tbaa !48
  %935 = zext i32 %934 to i64
  %936 = getelementptr inbounds %class.aiVector3t, ptr %931, i64 %935
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #11
  %937 = load float, ptr %936, align 4, !tbaa !74
  %938 = fpext float %937 to double
  store double %938, ptr %50, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %939 unwind label %952

939:                                              ; preds = %930
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #11
  %940 = getelementptr inbounds i8, ptr %936, i64 4
  %941 = load float, ptr %940, align 4, !tbaa !75
  %942 = fpext float %941 to double
  store double %942, ptr %51, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %943 unwind label %954

943:                                              ; preds = %939
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #11
  %944 = getelementptr inbounds i8, ptr %936, i64 8
  %945 = load float, ptr %944, align 4, !tbaa !76
  %946 = fpext float %945 to double
  store double %946, ptr %52, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %947 unwind label %956

947:                                              ; preds = %943
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #11
  %948 = add nuw nsw i64 %.08681976, 1
  %949 = load i32, ptr %923, align 8, !tbaa !67
  %950 = zext i32 %949 to i64
  %951 = icmp ult i64 %948, %950
  br i1 %951, label %930, label %._crit_edge1979.loopexit, !llvm.loop !77

952:                                              ; preds = %930
  %953 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #11
  br label %970

954:                                              ; preds = %939
  %955 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #11
  br label %970

956:                                              ; preds = %943
  %957 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #11
  br label %970

958:                                              ; preds = %._crit_edge1982
  %959 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %960 = trunc nuw i8 %959 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %960, i32 noundef 3)
          to label %961 unwind label %967

961:                                              ; preds = %958
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  %962 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %963 = trunc nuw i8 %962 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %37, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %963, i32 noundef 2, i1 noundef zeroext true)
          to label %964 unwind label %918

964:                                              ; preds = %961
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %37) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %37) #11
  br label %973

965:                                              ; preds = %._crit_edge1982
  %966 = landingpad { ptr, i32 }
          cleanup
  br label %969

967:                                              ; preds = %958
  %968 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %969

969:                                              ; preds = %967, %965
  %.pn1390 = phi { ptr, i32 } [ %968, %967 ], [ %966, %965 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #11
  br label %970

970:                                              ; preds = %952, %954, %956, %969, %918
  %.pn1500.pn = phi { ptr, i32 } [ %919, %918 ], [ %.pn1390, %969 ], [ %957, %956 ], [ %955, %954 ], [ %953, %952 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #11
  br label %971

971:                                              ; preds = %970, %917, %912, %907, %902, %896
  %.pn1500.pn.pn = phi { ptr, i32 } [ %.pn1500.pn, %970 ], [ %.pn1388, %917 ], [ %.pn1386, %912 ], [ %.pn1384, %907 ], [ %.pn1382, %902 ], [ %897, %896 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %37) #11
  br label %972

972:                                              ; preds = %971, %895
  %.pn1500.pn.pn.pn = phi { ptr, i32 } [ %.pn1500.pn.pn, %971 ], [ %.pn1380, %895 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %37) #11
  br label %1532

973:                                              ; preds = %964, %843
  %974 = call noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %.not2158 = icmp eq i32 %974, 0
  br i1 %.not2158, label %.preheader1571, label %.lr.ph1992

.lr.ph1992:                                       ; preds = %973
  %975 = getelementptr inbounds i8, ptr %671, i64 208
  %976 = getelementptr inbounds i8, ptr %671, i64 48
  br label %982

.preheader1571:                                   ; preds = %1098, %973
  %977 = call noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %.not2161 = icmp eq i32 %977, 0
  br i1 %.not2161, label %._crit_edge2006, label %.lr.ph2005

.lr.ph2005:                                       ; preds = %.preheader1571
  %978 = getelementptr inbounds i8, ptr %671, i64 176
  %979 = getelementptr inbounds i8, ptr %671, i64 236
  %980 = getelementptr inbounds i8, ptr %671, i64 208
  %981 = getelementptr inbounds i8, ptr %671, i64 112
  br label %1112

982:                                              ; preds = %.lr.ph1992, %1098
  %.08701990 = phi i64 [ 0, %.lr.ph1992 ], [ %1099, %1098 ]
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %55) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.278, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %983 unwind label %1019

983:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #11
  %984 = trunc nuw i64 %.08701990 to i32
  store i32 %984, ptr %58, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %985 unwind label %1021

985:                                              ; preds = %983
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #11
  %986 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %987 = trunc nuw i8 %986 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %987, i32 noundef 2)
          to label %988 unwind label %1024

988:                                              ; preds = %985
  %989 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %990 = trunc nuw i8 %989 to i1
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %990, i32 noundef 2)
          to label %991 unwind label %1024

991:                                              ; preds = %988
  %992 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %993 = trunc nuw i8 %992 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %993, i32 noundef 2)
          to label %994 unwind label %1024

994:                                              ; preds = %991
  %995 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %996 = trunc nuw i8 %995 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %996, i32 noundef 2)
          to label %997 unwind label %1024

997:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %998 unwind label %1026

998:                                              ; preds = %997
  %999 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1000 = trunc nuw i8 %999 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1000, i32 noundef 3)
          to label %1001 unwind label %1028

1001:                                             ; preds = %998
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #11
  %1002 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %61, i64 noundef 8, ptr noundef nonnull @.str.279, i32 noundef %984) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %1003 unwind label %1031

1003:                                             ; preds = %1001
  %1004 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1005 = trunc nuw i8 %1004 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull %61, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1005, i32 noundef 3)
          to label %1006 unwind label %1033

1006:                                             ; preds = %1003
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1007 unwind label %1036

1007:                                             ; preds = %1006
  %1008 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1009 = trunc nuw i8 %1008 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1009, i32 noundef 3)
          to label %1010 unwind label %1038

1010:                                             ; preds = %1007
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %1011 unwind label %1041

1011:                                             ; preds = %1010
  %1012 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1013 = trunc nuw i8 %1012 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.276, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1013, i32 noundef 3)
          to label %1014 unwind label %1043

1014:                                             ; preds = %1011
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %68) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #11
  %1015 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #11
  %1016 = shl i64 %1015, 2
  invoke void @_ZNSt6vectorIdSaIdEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %1016)
          to label %.preheader1568 unwind label %1046

.preheader1568:                                   ; preds = %1014
  %1017 = load i32, ptr %791, align 8, !tbaa !65
  %.not2159 = icmp eq i32 %1017, 0
  br i1 %.not2159, label %._crit_edge1989, label %.lr.ph1988

.lr.ph1988:                                       ; preds = %.preheader1568
  %1018 = getelementptr inbounds [8 x ptr], ptr %976, i64 0, i64 %.08701990
  br label %1048

._crit_edge1989:                                  ; preds = %._crit_edge1986, %.preheader1568
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.280, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %1092 unwind label %1103

1019:                                             ; preds = %982
  %1020 = landingpad { ptr, i32 }
          cleanup
  br label %1023

1021:                                             ; preds = %983
  %1022 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  br label %1023

1023:                                             ; preds = %1021, %1019
  %.pn1482 = phi { ptr, i32 } [ %1022, %1021 ], [ %1020, %1019 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #11
  br label %1111

1024:                                             ; preds = %994, %991, %988, %985
  %1025 = landingpad { ptr, i32 }
          cleanup
  br label %1110

1026:                                             ; preds = %997
  %1027 = landingpad { ptr, i32 }
          cleanup
  br label %1030

1028:                                             ; preds = %998
  %1029 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #11
  br label %1030

1030:                                             ; preds = %1028, %1026
  %.pn1484 = phi { ptr, i32 } [ %1029, %1028 ], [ %1027, %1026 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #11
  br label %1110

1031:                                             ; preds = %1001
  %1032 = landingpad { ptr, i32 }
          cleanup
  br label %1035

1033:                                             ; preds = %1003
  %1034 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %1035

1035:                                             ; preds = %1033, %1031
  %.pn1486 = phi { ptr, i32 } [ %1034, %1033 ], [ %1032, %1031 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #11
  br label %1109

1036:                                             ; preds = %1006
  %1037 = landingpad { ptr, i32 }
          cleanup
  br label %1040

1038:                                             ; preds = %1007
  %1039 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  br label %1040

1040:                                             ; preds = %1038, %1036
  %.pn1488 = phi { ptr, i32 } [ %1039, %1038 ], [ %1037, %1036 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #11
  br label %1109

1041:                                             ; preds = %1010
  %1042 = landingpad { ptr, i32 }
          cleanup
  br label %1045

1043:                                             ; preds = %1011
  %1044 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #11
  br label %1045

1045:                                             ; preds = %1043, %1041
  %.pn1490 = phi { ptr, i32 } [ %1044, %1043 ], [ %1042, %1041 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #11
  br label %1109

1046:                                             ; preds = %1095, %1014
  %1047 = landingpad { ptr, i32 }
          cleanup
  br label %1108

1048:                                             ; preds = %.lr.ph1988, %._crit_edge1986
  %1049 = phi i32 [ %1017, %.lr.ph1988 ], [ %1054, %._crit_edge1986 ]
  %.08711987 = phi i64 [ 0, %.lr.ph1988 ], [ %1055, %._crit_edge1986 ]
  %1050 = load ptr, ptr %975, align 8, !tbaa !66
  %1051 = getelementptr inbounds %struct.aiFace, ptr %1050, i64 %.08711987
  %1052 = load i32, ptr %1051, align 8, !tbaa !67
  %.not2160 = icmp eq i32 %1052, 0
  br i1 %.not2160, label %._crit_edge1986, label %.lr.ph1985

.lr.ph1985:                                       ; preds = %1048
  %1053 = getelementptr inbounds i8, ptr %1051, i64 8
  br label %1058

._crit_edge1986.loopexit:                         ; preds = %1079
  %.pre2364 = load i32, ptr %791, align 8, !tbaa !65
  br label %._crit_edge1986

._crit_edge1986:                                  ; preds = %._crit_edge1986.loopexit, %1048
  %1054 = phi i32 [ %.pre2364, %._crit_edge1986.loopexit ], [ %1049, %1048 ]
  %1055 = add nuw nsw i64 %.08711987, 1
  %1056 = zext i32 %1054 to i64
  %1057 = icmp ult i64 %1055, %1056
  br i1 %1057, label %1048, label %._crit_edge1989, !llvm.loop !78

1058:                                             ; preds = %.lr.ph1985, %1079
  %.08721983 = phi i64 [ 0, %.lr.ph1985 ], [ %1080, %1079 ]
  %1059 = load ptr, ptr %1018, align 8, !tbaa !46
  %1060 = load ptr, ptr %1053, align 8, !tbaa !69
  %1061 = getelementptr inbounds i32, ptr %1060, i64 %.08721983
  %1062 = load i32, ptr %1061, align 4, !tbaa !48
  %1063 = zext i32 %1062 to i64
  %1064 = getelementptr inbounds %class.aiColor4t, ptr %1059, i64 %1063
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #11
  %1065 = load float, ptr %1064, align 4, !tbaa !79
  %1066 = fpext float %1065 to double
  store double %1066, ptr %69, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(8) %69)
          to label %1067 unwind label %1084

1067:                                             ; preds = %1058
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #11
  %1068 = getelementptr inbounds i8, ptr %1064, i64 4
  %1069 = load float, ptr %1068, align 4, !tbaa !81
  %1070 = fpext float %1069 to double
  store double %1070, ptr %70, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %1071 unwind label %1086

1071:                                             ; preds = %1067
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #11
  %1072 = getelementptr inbounds i8, ptr %1064, i64 8
  %1073 = load float, ptr %1072, align 4, !tbaa !82
  %1074 = fpext float %1073 to double
  store double %1074, ptr %71, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %1075 unwind label %1088

1075:                                             ; preds = %1071
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #11
  %1076 = getelementptr inbounds i8, ptr %1064, i64 12
  %1077 = load float, ptr %1076, align 4, !tbaa !83
  %1078 = fpext float %1077 to double
  store double %1078, ptr %72, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1079 unwind label %1090

1079:                                             ; preds = %1075
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #11
  %1080 = add nuw nsw i64 %.08721983, 1
  %1081 = load i32, ptr %1051, align 8, !tbaa !67
  %1082 = zext i32 %1081 to i64
  %1083 = icmp ult i64 %1080, %1082
  br i1 %1083, label %1058, label %._crit_edge1986.loopexit, !llvm.loop !84

1084:                                             ; preds = %1058
  %1085 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #11
  br label %1108

1086:                                             ; preds = %1067
  %1087 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #11
  br label %1108

1088:                                             ; preds = %1071
  %1089 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #11
  br label %1108

1090:                                             ; preds = %1075
  %1091 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #11
  br label %1108

1092:                                             ; preds = %._crit_edge1989
  %1093 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1094 = trunc nuw i8 %1093 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1094, i32 noundef 3)
          to label %1095 unwind label %1105

1095:                                             ; preds = %1092
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #11
  %1096 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1097 = trunc nuw i8 %1096 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %55, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1097, i32 noundef 2, i1 noundef zeroext true)
          to label %1098 unwind label %1046

1098:                                             ; preds = %1095
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %55) #11
  %1099 = add nuw nsw i64 %.08701990, 1
  %1100 = call noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %1101 = zext i32 %1100 to i64
  %1102 = icmp ult i64 %1099, %1101
  br i1 %1102, label %982, label %.preheader1571, !llvm.loop !85

1103:                                             ; preds = %._crit_edge1989
  %1104 = landingpad { ptr, i32 }
          cleanup
  br label %1107

1105:                                             ; preds = %1092
  %1106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  br label %1107

1107:                                             ; preds = %1105, %1103
  %.pn1492 = phi { ptr, i32 } [ %1106, %1105 ], [ %1104, %1103 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #11
  br label %1108

1108:                                             ; preds = %1084, %1086, %1088, %1090, %1107, %1046
  %.pn1494.pn = phi { ptr, i32 } [ %1047, %1046 ], [ %.pn1492, %1107 ], [ %1091, %1090 ], [ %1089, %1088 ], [ %1087, %1086 ], [ %1085, %1084 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %68) #11
  br label %1109

1109:                                             ; preds = %1108, %1045, %1040, %1035
  %.pn1494.pn.pn = phi { ptr, i32 } [ %.pn1494.pn, %1108 ], [ %.pn1490, %1045 ], [ %.pn1488, %1040 ], [ %.pn1486, %1035 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  br label %1110

1110:                                             ; preds = %1109, %1030, %1024
  %.pn1494.pn.pn.pn = phi { ptr, i32 } [ %.pn1494.pn.pn, %1109 ], [ %.pn1484, %1030 ], [ %1025, %1024 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %55) #11
  br label %1111

1111:                                             ; preds = %1110, %1023
  %.pn1494.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1494.pn.pn.pn, %1110 ], [ %.pn1482, %1023 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %55) #11
  br label %1532

._crit_edge2006:                                  ; preds = %1279, %.preheader1571
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %100) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %102) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull @.str.293, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %1299 unwind label %1326

1112:                                             ; preds = %.lr.ph2005, %1279
  %.08732004 = phi i64 [ 0, %.lr.ph2005 ], [ %1280, %1279 ]
  %1113 = getelementptr inbounds [8 x i32], ptr %978, i64 0, i64 %.08732004
  %1114 = load i32, ptr %1113, align 4, !tbaa !48
  %1115 = icmp ugt i32 %1114, 2
  br i1 %1115, label %1116, label %1161

1116:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %75) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %75)
          to label %1117 unwind label %1132

1117:                                             ; preds = %1116
  %1118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.281)
          to label %1119 unwind label %1134

1119:                                             ; preds = %1117
  %1120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.282)
          to label %1121 unwind label %1134

1121:                                             ; preds = %1119
  %1122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1120, i64 noundef %.08552013)
          to label %1123 unwind label %1134

1123:                                             ; preds = %1121
  %1124 = load i32, ptr %979, align 4, !tbaa !86
  %.not1457 = icmp eq i32 %1124, 0
  br i1 %.not1457, label %1136, label %1125

1125:                                             ; preds = %1123
  %1126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.283)
          to label %1127 unwind label %1134

1127:                                             ; preds = %1125
  %1128 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %979)
  %1129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1126, ptr noundef %1128)
          to label %1130 unwind label %1134

1130:                                             ; preds = %1127
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1129, ptr noundef nonnull @.str.284)
          to label %1136 unwind label %1134

1132:                                             ; preds = %1116
  %1133 = landingpad { ptr, i32 }
          cleanup
  br label %1160

1134:                                             ; preds = %1149, %1147, %1145, %1142, %1140, %1138, %1136, %1130, %1127, %1125, %1121, %1119, %1117
  %1135 = landingpad { ptr, i32 }
          cleanup
  br label %1159

1136:                                             ; preds = %1130, %1123
  %1137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.285)
          to label %1138 unwind label %1134

1138:                                             ; preds = %1136
  %1139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %1137, i64 noundef %.08732004)
          to label %1140 unwind label %1134

1140:                                             ; preds = %1138
  %1141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.286)
          to label %1142 unwind label %1134

1142:                                             ; preds = %1140
  %1143 = load i32, ptr %1113, align 4, !tbaa !48
  %1144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %1141, i32 noundef %1143)
          to label %1145 unwind label %1134

1145:                                             ; preds = %1142
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.287)
          to label %1147 unwind label %1134

1147:                                             ; preds = %1145
  %1148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull @.str.288)
          to label %1149 unwind label %1134

1149:                                             ; preds = %1147
  %1150 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %1151 unwind label %1134

1151:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(128) %75)
          to label %1152 unwind label %1154

1152:                                             ; preds = %1151
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %1150, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %1153 unwind label %1156

1153:                                             ; preds = %1152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #11
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %75) #11
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %75) #11
  br label %1161

1154:                                             ; preds = %1151
  %1155 = landingpad { ptr, i32 }
          cleanup
  br label %1158

1156:                                             ; preds = %1152
  %1157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  br label %1158

1158:                                             ; preds = %1156, %1154
  %.pn1458 = phi { ptr, i32 } [ %1157, %1156 ], [ %1155, %1154 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #11
  br label %1159

1159:                                             ; preds = %1158, %1134
  %.pn1458.pn = phi { ptr, i32 } [ %.pn1458, %1158 ], [ %1135, %1134 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %75) #11
  br label %1160

1160:                                             ; preds = %1159, %1132
  %.pn1458.pn.pn = phi { ptr, i32 } [ %.pn1458.pn, %1159 ], [ %1133, %1132 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %75) #11
  br label %1532

1161:                                             ; preds = %1153, %1112
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %77) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.289, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1162 unwind label %1195

1162:                                             ; preds = %1161
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #11
  %1163 = trunc nuw i64 %.08732004 to i32
  store i32 %1163, ptr %80, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %1164 unwind label %1197

1164:                                             ; preds = %1162
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #11
  %1165 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1166 = trunc nuw i8 %1165 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1166, i32 noundef 2)
          to label %1167 unwind label %1200

1167:                                             ; preds = %1164
  %1168 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1169 = trunc nuw i8 %1168 to i1
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1169, i32 noundef 2)
          to label %1170 unwind label %1200

1170:                                             ; preds = %1167
  %1171 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1172 = trunc nuw i8 %1171 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1172, i32 noundef 2)
          to label %1173 unwind label %1200

1173:                                             ; preds = %1170
  %1174 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1175 = trunc nuw i8 %1174 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1175, i32 noundef 2)
          to label %1176 unwind label %1200

1176:                                             ; preds = %1173
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %82) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %1177 unwind label %1202

1177:                                             ; preds = %1176
  %1178 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1179 = trunc nuw i8 %1178 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %81, i32 noundef 101, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1179, i32 noundef 3)
          to label %1180 unwind label %1204

1180:                                             ; preds = %1177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %1181 unwind label %1207

1181:                                             ; preds = %1180
  %1182 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1183 = trunc nuw i8 %1182 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.67, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1183, i32 noundef 3)
          to label %1184 unwind label %1209

1184:                                             ; preds = %1181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %1185 unwind label %1212

1185:                                             ; preds = %1184
  %1186 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1187 = trunc nuw i8 %1186 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.274, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1187, i32 noundef 3)
          to label %1188 unwind label %1214

1188:                                             ; preds = %1185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %1189 unwind label %1217

1189:                                             ; preds = %1188
  %1190 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1191 = trunc nuw i8 %1190 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.290, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1191, i32 noundef 3)
          to label %1192 unwind label %1219

1192:                                             ; preds = %1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %90) #11
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %91) #11
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %91) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #11
  store i32 0, ptr %92, align 4, !tbaa !48
  %1193 = load i32, ptr %791, align 8, !tbaa !65
  %.not2162 = icmp eq i32 %1193, 0
  br i1 %.not2162, label %._crit_edge2003, label %.lr.ph2002

.lr.ph2002:                                       ; preds = %1192
  %1194 = getelementptr inbounds [8 x ptr], ptr %981, i64 0, i64 %.08732004
  br label %1222

._crit_edge2003:                                  ; preds = %._crit_edge1999, %1192
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %97) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %1269 unwind label %1284

1195:                                             ; preds = %1161
  %1196 = landingpad { ptr, i32 }
          cleanup
  br label %1199

1197:                                             ; preds = %1162
  %1198 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  br label %1199

1199:                                             ; preds = %1197, %1195
  %.pn1462 = phi { ptr, i32 } [ %1198, %1197 ], [ %1196, %1195 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #11
  br label %1298

1200:                                             ; preds = %1173, %1170, %1167, %1164
  %1201 = landingpad { ptr, i32 }
          cleanup
  br label %1297

1202:                                             ; preds = %1176
  %1203 = landingpad { ptr, i32 }
          cleanup
  br label %1206

1204:                                             ; preds = %1177
  %1205 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #11
  br label %1206

1206:                                             ; preds = %1204, %1202
  %.pn1464 = phi { ptr, i32 } [ %1205, %1204 ], [ %1203, %1202 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #11
  br label %1297

1207:                                             ; preds = %1180
  %1208 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1209:                                             ; preds = %1181
  %1210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  br label %1211

1211:                                             ; preds = %1209, %1207
  %.pn1466 = phi { ptr, i32 } [ %1210, %1209 ], [ %1208, %1207 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #11
  br label %1297

1212:                                             ; preds = %1184
  %1213 = landingpad { ptr, i32 }
          cleanup
  br label %1216

1214:                                             ; preds = %1185
  %1215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #11
  br label %1216

1216:                                             ; preds = %1214, %1212
  %.pn1468 = phi { ptr, i32 } [ %1215, %1214 ], [ %1213, %1212 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #11
  br label %1297

1217:                                             ; preds = %1188
  %1218 = landingpad { ptr, i32 }
          cleanup
  br label %1221

1219:                                             ; preds = %1189
  %1220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  br label %1221

1221:                                             ; preds = %1219, %1217
  %.pn1470 = phi { ptr, i32 } [ %1220, %1219 ], [ %1218, %1217 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #11
  br label %1297

1222:                                             ; preds = %.lr.ph2002, %._crit_edge1999
  %1223 = phi i32 [ %1193, %.lr.ph2002 ], [ %1228, %._crit_edge1999 ]
  %.08742000 = phi i64 [ 0, %.lr.ph2002 ], [ %1229, %._crit_edge1999 ]
  %1224 = load ptr, ptr %980, align 8, !tbaa !66
  %1225 = getelementptr inbounds %struct.aiFace, ptr %1224, i64 %.08742000
  %1226 = load i32, ptr %1225, align 8, !tbaa !67
  %.not2163 = icmp eq i32 %1226, 0
  br i1 %.not2163, label %._crit_edge1999, label %.lr.ph1998

.lr.ph1998:                                       ; preds = %1222
  %1227 = getelementptr inbounds i8, ptr %1225, i64 8
  br label %1232

._crit_edge1999.loopexit:                         ; preds = %1263
  %.pre2365 = load i32, ptr %791, align 8, !tbaa !65
  br label %._crit_edge1999

._crit_edge1999:                                  ; preds = %._crit_edge1999.loopexit, %1222
  %1228 = phi i32 [ %.pre2365, %._crit_edge1999.loopexit ], [ %1223, %1222 ]
  %1229 = add nuw nsw i64 %.08742000, 1
  %1230 = zext i32 %1228 to i64
  %1231 = icmp ult i64 %1229, %1230
  br i1 %1231, label %1222, label %._crit_edge2003, !llvm.loop !87

1232:                                             ; preds = %.lr.ph1998, %1263
  %.08751996 = phi i64 [ 0, %.lr.ph1998 ], [ %1264, %1263 ]
  %1233 = load ptr, ptr %1194, align 8, !tbaa !46
  %1234 = load ptr, ptr %1227, align 8, !tbaa !69
  %1235 = getelementptr inbounds i32, ptr %1234, i64 %.08751996
  %1236 = load i32, ptr %1235, align 4, !tbaa !48
  %1237 = zext i32 %1236 to i64
  %1238 = getelementptr inbounds %class.aiVector3t, ptr %1233, i64 %1237
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #11
  %1239 = invoke ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %91, ptr noundef nonnull align 4 dereferenceable(12) %1238)
          to label %1240 unwind label %1250

1240:                                             ; preds = %1232
  store ptr %1239, ptr %93, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %94) #11
  %1241 = call ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %91) #11
  store ptr %1241, ptr %94, align 8
  %1242 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEiEES7_(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %94) #11
  br i1 %1242, label %1243, label %1260

1243:                                             ; preds = %1240
  %1244 = load i32, ptr %92, align 4, !tbaa !48
  %1245 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %91, ptr noundef nonnull align 4 dereferenceable(12) %1238)
          to label %1246 unwind label %1250

1246:                                             ; preds = %1243
  store i32 %1244, ptr %1245, align 4, !tbaa !48
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %.preheader1567 unwind label %1250

.preheader1567:                                   ; preds = %1246
  %1247 = load i32, ptr %1113, align 4, !tbaa !48
  %.not2164 = icmp eq i32 %1247, 0
  br i1 %.not2164, label %._crit_edge1995, label %.lr.ph1994

._crit_edge1995:                                  ; preds = %1254, %.preheader1567
  %1248 = load i32, ptr %92, align 4, !tbaa !48
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr %92, align 4, !tbaa !48
  br label %1263

1250:                                             ; preds = %1260, %1246, %1243, %1232
  %1251 = landingpad { ptr, i32 }
          cleanup
  br label %1268

.lr.ph1994:                                       ; preds = %.preheader1567, %1254
  %.08761993 = phi i32 [ %1255, %1254 ], [ 0, %.preheader1567 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #11
  %1252 = call noundef float @_ZNK10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %1238, i32 noundef %.08761993)
  %1253 = fpext float %1252 to double
  store double %1253, ptr %95, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %1254 unwind label %1258

1254:                                             ; preds = %.lr.ph1994
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #11
  %1255 = add nuw i32 %.08761993, 1
  %1256 = load i32, ptr %1113, align 4, !tbaa !48
  %1257 = icmp ult i32 %1255, %1256
  br i1 %1257, label %.lr.ph1994, label %._crit_edge1995, !llvm.loop !88

1258:                                             ; preds = %.lr.ph1994
  %1259 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #11
  br label %1268

1260:                                             ; preds = %1240
  %1261 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK10aiVector3tIfEiEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #11
  %1262 = getelementptr inbounds i8, ptr %1261, i64 12
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 4 dereferenceable(4) %1262)
          to label %1263 unwind label %1250

1263:                                             ; preds = %1260, %._crit_edge1995
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #11
  %1264 = add nuw nsw i64 %.08751996, 1
  %1265 = load i32, ptr %1225, align 8, !tbaa !67
  %1266 = zext i32 %1265 to i64
  %1267 = icmp ult i64 %1264, %1266
  br i1 %1267, label %1232, label %._crit_edge1999.loopexit, !llvm.loop !89

1268:                                             ; preds = %1258, %1250
  %.pn1476 = phi { ptr, i32 } [ %1259, %1258 ], [ %1251, %1250 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #11
  br label %1296

1269:                                             ; preds = %._crit_edge2003
  %1270 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1271 = trunc nuw i8 %1270 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1271, i32 noundef 3)
          to label %1272 unwind label %1286

1272:                                             ; preds = %1269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.292, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1273 unwind label %1289

1273:                                             ; preds = %1272
  %1274 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1275 = trunc nuw i8 %1274 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1275, i32 noundef 3)
          to label %1276 unwind label %1291

1276:                                             ; preds = %1273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #11
  %1277 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1278 = trunc nuw i8 %1277 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %77, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1278, i32 noundef 2, i1 noundef zeroext true)
          to label %1279 unwind label %1294

1279:                                             ; preds = %1276
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #11
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %91) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %91) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %90) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %77) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %77) #11
  %1280 = add nuw nsw i64 %.08732004, 1
  %1281 = call noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %1282 = zext i32 %1281 to i64
  %1283 = icmp ult i64 %1280, %1282
  br i1 %1283, label %1112, label %._crit_edge2006, !llvm.loop !90

1284:                                             ; preds = %._crit_edge2003
  %1285 = landingpad { ptr, i32 }
          cleanup
  br label %1288

1286:                                             ; preds = %1269
  %1287 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #11
  br label %1288

1288:                                             ; preds = %1286, %1284
  %.pn1472 = phi { ptr, i32 } [ %1287, %1286 ], [ %1285, %1284 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #11
  br label %1296

1289:                                             ; preds = %1272
  %1290 = landingpad { ptr, i32 }
          cleanup
  br label %1293

1291:                                             ; preds = %1273
  %1292 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  br label %1293

1293:                                             ; preds = %1291, %1289
  %.pn1474 = phi { ptr, i32 } [ %1292, %1291 ], [ %1290, %1289 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #11
  br label %1296

1294:                                             ; preds = %1276
  %1295 = landingpad { ptr, i32 }
          cleanup
  br label %1296

1296:                                             ; preds = %1294, %1293, %1288, %1268
  %.pn1476.pn = phi { ptr, i32 } [ %.pn1476, %1268 ], [ %1295, %1294 ], [ %.pn1474, %1293 ], [ %.pn1472, %1288 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #11
  call void @_ZNSt3mapI10aiVector3tIfEiSt4lessIS1_ESaISt4pairIKS1_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %91) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %91) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %90) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #11
  br label %1297

1297:                                             ; preds = %1296, %1221, %1216, %1211, %1206, %1200
  %.pn1476.pn.pn = phi { ptr, i32 } [ %.pn1476.pn, %1296 ], [ %.pn1470, %1221 ], [ %.pn1468, %1216 ], [ %.pn1466, %1211 ], [ %.pn1464, %1206 ], [ %1201, %1200 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %77) #11
  br label %1298

1298:                                             ; preds = %1297, %1199
  %.pn1476.pn.pn.pn = phi { ptr, i32 } [ %.pn1476.pn.pn, %1297 ], [ %.pn1462, %1199 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %77) #11
  br label %1532

1299:                                             ; preds = %._crit_edge2006
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %103) #11
  store i32 0, ptr %103, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %1300 unwind label %1328

1300:                                             ; preds = %1299
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %103) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %104) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %1301 unwind label %1331

1301:                                             ; preds = %1300
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %106) #11
  store i32 101, ptr %106, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 4 dereferenceable(4) %106)
          to label %1302 unwind label %1333

1302:                                             ; preds = %1301
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.272, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %1303 unwind label %1336

1303:                                             ; preds = %1302
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA1_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %1304 unwind label %1338

1304:                                             ; preds = %1303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %110) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.273, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %1305 unwind label %1341

1305:                                             ; preds = %1304
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA8_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 1 dereferenceable(8) @.str.294)
          to label %1306 unwind label %1343

1306:                                             ; preds = %1305
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %111) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %112) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.275, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1307 unwind label %1346

1307:                                             ; preds = %1306
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA14_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 1 dereferenceable(14) @.str.290)
          to label %1308 unwind label %1348

1308:                                             ; preds = %1307
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %113) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %114) #11
  store i32 0, ptr %114, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #11
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %113, ptr nonnull %114, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %1309 unwind label %1351

1309:                                             ; preds = %1308
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.295, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %1310 unwind label %1353

1310:                                             ; preds = %1309
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIiSaIiEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull align 8 dereferenceable(24) %113)
          to label %1311 unwind label %1355

1311:                                             ; preds = %1310
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #11
  %1312 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1313 = trunc nuw i8 %1312 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %100, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1313, i32 noundef 2)
          to label %1314 unwind label %1358

1314:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %118) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %1315 unwind label %1360

1315:                                             ; preds = %1314
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %121) #11
  store i32 0, ptr %121, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 4 dereferenceable(4) %121)
          to label %1316 unwind label %1362

1316:                                             ; preds = %1315
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %121) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %123) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %123)
          to label %1317 unwind label %1365

1317:                                             ; preds = %1316
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %124) #11
  store i32 100, ptr %124, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 4 dereferenceable(4) %124)
          to label %1318 unwind label %1367

1318:                                             ; preds = %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %124) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %125) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %127) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1319 unwind label %1370

1319:                                             ; preds = %1318
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1320 unwind label %1372

1320:                                             ; preds = %1319
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %127) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1321 unwind label %1375

1321:                                             ; preds = %1320
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA19_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 1 dereferenceable(19) @.str.271)
          to label %1322 unwind label %1377

1322:                                             ; preds = %1321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %131) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %1323 unwind label %1380

1323:                                             ; preds = %1322
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %132) #11
  store i32 0, ptr %132, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull align 4 dereferenceable(4) %132)
          to label %1324 unwind label %1382

1324:                                             ; preds = %1323
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %132) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(112) %125)
          to label %.preheader1570 unwind label %1385

.preheader1570:                                   ; preds = %1324
  %1325 = call noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %.not2165 = icmp eq i32 %1325, 0
  br i1 %.not2165, label %._crit_edge2009, label %.lr.ph2008

._crit_edge2009:                                  ; preds = %1397, %.preheader1570
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %141) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %143) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %143)
          to label %1417 unwind label %1439

1326:                                             ; preds = %._crit_edge2006
  %1327 = landingpad { ptr, i32 }
          cleanup
  br label %1330

1328:                                             ; preds = %1299
  %1329 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %103) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #11
  br label %1330

1330:                                             ; preds = %1328, %1326
  %.pn1392 = phi { ptr, i32 } [ %1329, %1328 ], [ %1327, %1326 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #11
  br label %1531

1331:                                             ; preds = %1300
  %1332 = landingpad { ptr, i32 }
          cleanup
  br label %1335

1333:                                             ; preds = %1301
  %1334 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #11
  br label %1335

1335:                                             ; preds = %1333, %1331
  %.pn1394 = phi { ptr, i32 } [ %1334, %1333 ], [ %1332, %1331 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %104) #11
  br label %1530

1336:                                             ; preds = %1302
  %1337 = landingpad { ptr, i32 }
          cleanup
  br label %1340

1338:                                             ; preds = %1303
  %1339 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #11
  br label %1340

1340:                                             ; preds = %1338, %1336
  %.pn1396 = phi { ptr, i32 } [ %1339, %1338 ], [ %1337, %1336 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #11
  br label %1530

1341:                                             ; preds = %1304
  %1342 = landingpad { ptr, i32 }
          cleanup
  br label %1345

1343:                                             ; preds = %1305
  %1344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  br label %1345

1345:                                             ; preds = %1343, %1341
  %.pn1398 = phi { ptr, i32 } [ %1344, %1343 ], [ %1342, %1341 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %110) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #11
  br label %1530

1346:                                             ; preds = %1306
  %1347 = landingpad { ptr, i32 }
          cleanup
  br label %1350

1348:                                             ; preds = %1307
  %1349 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  br label %1350

1350:                                             ; preds = %1348, %1346
  %.pn1400 = phi { ptr, i32 } [ %1349, %1348 ], [ %1347, %1346 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #11
  br label %1530

1351:                                             ; preds = %1308
  %1352 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #11
  br label %1529

1353:                                             ; preds = %1309
  %1354 = landingpad { ptr, i32 }
          cleanup
  br label %1357

1355:                                             ; preds = %1310
  %1356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #11
  br label %1357

1357:                                             ; preds = %1355, %1353
  %.pn1402 = phi { ptr, i32 } [ %1356, %1355 ], [ %1354, %1353 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #11
  br label %1528

1358:                                             ; preds = %1311
  %1359 = landingpad { ptr, i32 }
          cleanup
  br label %1528

1360:                                             ; preds = %1314
  %1361 = landingpad { ptr, i32 }
          cleanup
  br label %1364

1362:                                             ; preds = %1315
  %1363 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %121) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #11
  br label %1364

1364:                                             ; preds = %1362, %1360
  %.pn1404 = phi { ptr, i32 } [ %1363, %1362 ], [ %1361, %1360 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #11
  br label %1527

1365:                                             ; preds = %1316
  %1366 = landingpad { ptr, i32 }
          cleanup
  br label %1369

1367:                                             ; preds = %1317
  %1368 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %124) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  br label %1369

1369:                                             ; preds = %1367, %1365
  %.pn1406 = phi { ptr, i32 } [ %1368, %1367 ], [ %1366, %1365 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %123) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %123) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #11
  br label %1526

1370:                                             ; preds = %1318
  %1371 = landingpad { ptr, i32 }
          cleanup
  br label %1374

1372:                                             ; preds = %1319
  %1373 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  br label %1374

1374:                                             ; preds = %1372, %1370
  %.pn1408 = phi { ptr, i32 } [ %1373, %1372 ], [ %1371, %1370 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %127) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #11
  br label %1525

1375:                                             ; preds = %1320
  %1376 = landingpad { ptr, i32 }
          cleanup
  br label %1379

1377:                                             ; preds = %1321
  %1378 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #11
  br label %1379

1379:                                             ; preds = %1377, %1375
  %.pn1410 = phi { ptr, i32 } [ %1378, %1377 ], [ %1376, %1375 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #11
  br label %1524

1380:                                             ; preds = %1322
  %1381 = landingpad { ptr, i32 }
          cleanup
  br label %1384

1382:                                             ; preds = %1323
  %1383 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %132) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #11
  br label %1384

1384:                                             ; preds = %1382, %1380
  %.pn1412 = phi { ptr, i32 } [ %1383, %1382 ], [ %1381, %1380 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #11
  br label %1524

1385:                                             ; preds = %._crit_edge2012, %1432, %1431, %1423, %1324
  %1386 = landingpad { ptr, i32 }
          cleanup
  br label %1524

1387:                                             ; preds = %1396
  %1388 = landingpad { ptr, i32 }
          cleanup
  br label %1524

.lr.ph2008:                                       ; preds = %.preheader1570, %1397
  %.08772007 = phi i64 [ %1398, %1397 ], [ 0, %.preheader1570 ]
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %133) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %1389 unwind label %1402

1389:                                             ; preds = %.lr.ph2008
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %133, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1390 unwind label %1404

1390:                                             ; preds = %1389
  %1391 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(112) %133) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %133) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %133) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %137) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1392 unwind label %1407

1392:                                             ; preds = %1390
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA18_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 1 dereferenceable(18) @.str.278)
          to label %1393 unwind label %1409

1393:                                             ; preds = %1392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %138) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %139) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1394 unwind label %1412

1394:                                             ; preds = %1393
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %140) #11
  %1395 = trunc nuw i64 %.08772007 to i32
  store i32 %1395, ptr %140, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 4 dereferenceable(4) %140)
          to label %1396 unwind label %1414

1396:                                             ; preds = %1394
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %140) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(112) %125)
          to label %1397 unwind label %1387

1397:                                             ; preds = %1396
  %1398 = add nuw nsw i64 %.08772007, 1
  %1399 = call noundef i32 @_ZNK6aiMesh19GetNumColorChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %1400 = zext i32 %1399 to i64
  %1401 = icmp ult i64 %1398, %1400
  br i1 %1401, label %.lr.ph2008, label %._crit_edge2009, !llvm.loop !91

1402:                                             ; preds = %.lr.ph2008
  %1403 = landingpad { ptr, i32 }
          cleanup
  br label %1406

1404:                                             ; preds = %1389
  %1405 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  br label %1406

1406:                                             ; preds = %1404, %1402
  %.pn1441 = phi { ptr, i32 } [ %1405, %1404 ], [ %1403, %1402 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %133) #11
  br label %1524

1407:                                             ; preds = %1390
  %1408 = landingpad { ptr, i32 }
          cleanup
  br label %1411

1409:                                             ; preds = %1392
  %1410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #11
  br label %1411

1411:                                             ; preds = %1409, %1407
  %.pn1443 = phi { ptr, i32 } [ %1410, %1409 ], [ %1408, %1407 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %137) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #11
  br label %1524

1412:                                             ; preds = %1393
  %1413 = landingpad { ptr, i32 }
          cleanup
  br label %1416

1414:                                             ; preds = %1394
  %1415 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %140) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #11
  br label %1416

1416:                                             ; preds = %1414, %1412
  %.pn1445 = phi { ptr, i32 } [ %1415, %1414 ], [ %1413, %1412 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %139) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %138) #11
  br label %1524

1417:                                             ; preds = %._crit_edge2009
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %141, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1418 unwind label %1441

1418:                                             ; preds = %1417
  %1419 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(112) %141) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %141) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %141) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %145) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %145)
          to label %1420 unwind label %1444

1420:                                             ; preds = %1418
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA21_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 1 dereferenceable(21) @.str.293)
          to label %1421 unwind label %1446

1421:                                             ; preds = %1420
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1422 unwind label %1449

1422:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %148) #11
  store i32 0, ptr %148, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 4 dereferenceable(4) %148)
          to label %1423 unwind label %1451

1423:                                             ; preds = %1422
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(112) %125)
          to label %1424 unwind label %1385

1424:                                             ; preds = %1423
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %149) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %151) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %151)
          to label %1425 unwind label %1454

1425:                                             ; preds = %1424
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %149, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1426 unwind label %1456

1426:                                             ; preds = %1425
  %1427 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(112) %149) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %149) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %149) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %153) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %1428 unwind label %1459

1428:                                             ; preds = %1426
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA15_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull align 1 dereferenceable(15) @.str.289)
          to label %1429 unwind label %1461

1429:                                             ; preds = %1428
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %155) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %155)
          to label %1430 unwind label %1464

1430:                                             ; preds = %1429
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %156) #11
  store i32 0, ptr %156, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %125, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 4 dereferenceable(4) %156)
          to label %1431 unwind label %1466

1431:                                             ; preds = %1430
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %156) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(112) %125)
          to label %1432 unwind label %1385

1432:                                             ; preds = %1431
  %1433 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1434 = trunc nuw i8 %1433 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %118, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1434, i32 noundef 2)
          to label %.preheader1569 unwind label %1385

.preheader1569:                                   ; preds = %1432
  %1435 = call noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %1436 = icmp ugt i32 %1435, 1
  br i1 %1436, label %.lr.ph2011, label %._crit_edge2012

._crit_edge2012:                                  ; preds = %1482, %.preheader1569
  %1437 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1438 = trunc nuw i8 %1437 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %10, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1438, i32 noundef 1, i1 noundef zeroext true)
          to label %1517 unwind label %1385

1439:                                             ; preds = %._crit_edge2009
  %1440 = landingpad { ptr, i32 }
          cleanup
  br label %1443

1441:                                             ; preds = %1417
  %1442 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #11
  br label %1443

1443:                                             ; preds = %1441, %1439
  %.pn1414 = phi { ptr, i32 } [ %1442, %1441 ], [ %1440, %1439 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %143) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %143) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %141) #11
  br label %1524

1444:                                             ; preds = %1418
  %1445 = landingpad { ptr, i32 }
          cleanup
  br label %1448

1446:                                             ; preds = %1420
  %1447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  br label %1448

1448:                                             ; preds = %1446, %1444
  %.pn1416 = phi { ptr, i32 } [ %1447, %1446 ], [ %1445, %1444 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %145) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %145) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #11
  br label %1524

1449:                                             ; preds = %1421
  %1450 = landingpad { ptr, i32 }
          cleanup
  br label %1453

1451:                                             ; preds = %1422
  %1452 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #11
  br label %1453

1453:                                             ; preds = %1451, %1449
  %.pn1418 = phi { ptr, i32 } [ %1452, %1451 ], [ %1450, %1449 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #11
  br label %1524

1454:                                             ; preds = %1424
  %1455 = landingpad { ptr, i32 }
          cleanup
  br label %1458

1456:                                             ; preds = %1425
  %1457 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #11
  br label %1458

1458:                                             ; preds = %1456, %1454
  %.pn1420 = phi { ptr, i32 } [ %1457, %1456 ], [ %1455, %1454 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %151) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %151) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %149) #11
  br label %1524

1459:                                             ; preds = %1426
  %1460 = landingpad { ptr, i32 }
          cleanup
  br label %1463

1461:                                             ; preds = %1428
  %1462 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  br label %1463

1463:                                             ; preds = %1461, %1459
  %.pn1422 = phi { ptr, i32 } [ %1462, %1461 ], [ %1460, %1459 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #11
  br label %1524

1464:                                             ; preds = %1429
  %1465 = landingpad { ptr, i32 }
          cleanup
  br label %1468

1466:                                             ; preds = %1430
  %1467 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %156) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  br label %1468

1468:                                             ; preds = %1466, %1464
  %.pn1424 = phi { ptr, i32 } [ %1467, %1466 ], [ %1465, %1464 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %155) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %155) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #11
  br label %1524

.lr.ph2011:                                       ; preds = %.preheader1569, %1482
  %.08782010 = phi i32 [ %1483, %1482 ], [ 1, %.preheader1569 ]
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %157) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %159) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1469 unwind label %1486

1469:                                             ; preds = %.lr.ph2011
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %160) #11
  store i32 %.08782010, ptr %160, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4NodeC2IJiEEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 4 dereferenceable(4) %160)
          to label %1470 unwind label %1488

1470:                                             ; preds = %1469
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %160) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %162) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %162)
          to label %1471 unwind label %1491

1471:                                             ; preds = %1470
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %163) #11
  store i32 100, ptr %163, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %157, ptr noundef nonnull align 8 dereferenceable(32) %161, ptr noundef nonnull align 4 dereferenceable(4) %163)
          to label %1472 unwind label %1493

1472:                                             ; preds = %1471
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %163) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %164) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %166) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull @.str.297, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %1473 unwind label %1496

1473:                                             ; preds = %1472
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %164, ptr noundef nonnull align 8 dereferenceable(32) %165)
          to label %1474 unwind label %1498

1474:                                             ; preds = %1473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %166) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %167) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %168) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %168)
          to label %1475 unwind label %1501

1475:                                             ; preds = %1474
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA15_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %164, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef nonnull align 1 dereferenceable(15) @.str.289)
          to label %1476 unwind label %1503

1476:                                             ; preds = %1475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %170) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %1477 unwind label %1506

1477:                                             ; preds = %1476
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %171) #11
  store i32 %.08782010, ptr %171, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %164, ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull align 4 dereferenceable(4) %171)
          to label %1478 unwind label %1508

1478:                                             ; preds = %1477
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %171) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %157, ptr noundef nonnull align 8 dereferenceable(112) %164)
          to label %1479 unwind label %1511

1479:                                             ; preds = %1478
  %1480 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1481 = trunc nuw i8 %1480 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %157, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1481, i32 noundef 2)
          to label %1482 unwind label %1511

1482:                                             ; preds = %1479
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %164) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %164) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %157) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %157) #11
  %1483 = add nuw i32 %.08782010, 1
  %1484 = call noundef i32 @_ZNK6aiMesh16GetNumUVChannelsEv(ptr noundef nonnull align 8 dereferenceable(1320) %671)
  %1485 = icmp ult i32 %1483, %1484
  br i1 %1485, label %.lr.ph2011, label %._crit_edge2012, !llvm.loop !92

1486:                                             ; preds = %.lr.ph2011
  %1487 = landingpad { ptr, i32 }
          cleanup
  br label %1490

1488:                                             ; preds = %1469
  %1489 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %160) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #11
  br label %1490

1490:                                             ; preds = %1488, %1486
  %.pn1426 = phi { ptr, i32 } [ %1489, %1488 ], [ %1487, %1486 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #11
  br label %1516

1491:                                             ; preds = %1470
  %1492 = landingpad { ptr, i32 }
          cleanup
  br label %1495

1493:                                             ; preds = %1471
  %1494 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %163) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #11
  br label %1495

1495:                                             ; preds = %1493, %1491
  %.pn1428 = phi { ptr, i32 } [ %1494, %1493 ], [ %1492, %1491 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %162) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %162) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #11
  br label %1515

1496:                                             ; preds = %1472
  %1497 = landingpad { ptr, i32 }
          cleanup
  br label %1500

1498:                                             ; preds = %1473
  %1499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #11
  br label %1500

1500:                                             ; preds = %1498, %1496
  %.pn1430 = phi { ptr, i32 } [ %1499, %1498 ], [ %1497, %1496 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %166) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #11
  br label %1514

1501:                                             ; preds = %1474
  %1502 = landingpad { ptr, i32 }
          cleanup
  br label %1505

1503:                                             ; preds = %1475
  %1504 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #11
  br label %1505

1505:                                             ; preds = %1503, %1501
  %.pn1432 = phi { ptr, i32 } [ %1504, %1503 ], [ %1502, %1501 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %168) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %168) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %167) #11
  br label %1513

1506:                                             ; preds = %1476
  %1507 = landingpad { ptr, i32 }
          cleanup
  br label %1510

1508:                                             ; preds = %1477
  %1509 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %171) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #11
  br label %1510

1510:                                             ; preds = %1508, %1506
  %.pn1434 = phi { ptr, i32 } [ %1509, %1508 ], [ %1507, %1506 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %170) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #11
  br label %1513

1511:                                             ; preds = %1479, %1478
  %1512 = landingpad { ptr, i32 }
          cleanup
  br label %1513

1513:                                             ; preds = %1511, %1510, %1505
  %.pn1436 = phi { ptr, i32 } [ %1512, %1511 ], [ %.pn1434, %1510 ], [ %.pn1432, %1505 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %164) #11
  br label %1514

1514:                                             ; preds = %1513, %1500
  %.pn1436.pn = phi { ptr, i32 } [ %.pn1436, %1513 ], [ %.pn1430, %1500 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %164) #11
  br label %1515

1515:                                             ; preds = %1514, %1495
  %.pn1436.pn.pn = phi { ptr, i32 } [ %.pn1436.pn, %1514 ], [ %.pn1428, %1495 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %157) #11
  br label %1516

1516:                                             ; preds = %1515, %1490
  %.pn1436.pn.pn.pn = phi { ptr, i32 } [ %.pn1436.pn.pn, %1515 ], [ %.pn1426, %1490 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %157) #11
  br label %1524

1517:                                             ; preds = %._crit_edge2012
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %125) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %125) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %118) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %118) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %113) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %100) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %100) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #11
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %10) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %10) #11
  %1518 = add nuw nsw i64 %.08552013, 1
  %1519 = load ptr, ptr %642, align 8, !tbaa !39
  %1520 = getelementptr inbounds i8, ptr %1519, i64 16
  %1521 = load i32, ptr %1520, align 8, !tbaa !40
  %1522 = zext i32 %1521 to i64
  %1523 = icmp ult i64 %1518, %1522
  br i1 %1523, label %666, label %._crit_edge2016, !llvm.loop !93

1524:                                             ; preds = %1387, %1406, %1411, %1416, %1516, %1468, %1463, %1458, %1453, %1448, %1443, %1385, %1384, %1379
  %.pn1447.pn = phi { ptr, i32 } [ %.pn1436.pn.pn.pn, %1516 ], [ %1386, %1385 ], [ %.pn1424, %1468 ], [ %.pn1422, %1463 ], [ %.pn1420, %1458 ], [ %.pn1418, %1453 ], [ %.pn1416, %1448 ], [ %.pn1414, %1443 ], [ %.pn1412, %1384 ], [ %.pn1410, %1379 ], [ %1388, %1387 ], [ %.pn1445, %1416 ], [ %.pn1443, %1411 ], [ %.pn1441, %1406 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %125) #11
  br label %1525

1525:                                             ; preds = %1524, %1374
  %.pn1447.pn.pn = phi { ptr, i32 } [ %.pn1447.pn, %1524 ], [ %.pn1408, %1374 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %125) #11
  br label %1526

1526:                                             ; preds = %1525, %1369
  %.pn1447.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn, %1525 ], [ %.pn1406, %1369 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %118) #11
  br label %1527

1527:                                             ; preds = %1526, %1364
  %.pn1447.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn.pn, %1526 ], [ %.pn1404, %1364 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %118) #11
  br label %1528

1528:                                             ; preds = %1527, %1358, %1357
  %.pn1447.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn.pn.pn, %1527 ], [ %1359, %1358 ], [ %.pn1402, %1357 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  br label %1529

1529:                                             ; preds = %1528, %1351
  %.pn1447.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn.pn.pn.pn, %1528 ], [ %1352, %1351 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %113) #11
  br label %1530

1530:                                             ; preds = %1529, %1350, %1345, %1340, %1335
  %.pn1447.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn.pn.pn.pn.pn, %1529 ], [ %.pn1400, %1350 ], [ %.pn1398, %1345 ], [ %.pn1396, %1340 ], [ %.pn1394, %1335 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %100) #11
  br label %1531

1531:                                             ; preds = %1530, %1330
  %.pn1447.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1447.pn.pn.pn.pn.pn.pn.pn, %1530 ], [ %.pn1392, %1330 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %100) #11
  br label %1532

1532:                                             ; preds = %1160, %1298, %827, %834, %1531, %1111, %972, %890, %885
  %.pn1505.pn = phi { ptr, i32 } [ %.pn1500.pn.pn.pn, %972 ], [ %.pn1494.pn.pn.pn.pn, %1111 ], [ %.pn1447.pn.pn.pn.pn.pn.pn.pn.pn, %1531 ], [ %.pn1378, %890 ], [ %.pn1376, %885 ], [ %828, %827 ], [ %835, %834 ], [ %.pn1476.pn.pn.pn, %1298 ], [ %.pn1458.pn.pn, %1160 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #11
  br label %1533

1533:                                             ; preds = %780, %782, %784, %1532, %798, %766, %756
  %.pn1508.pn = phi { ptr, i32 } [ %.pn1508, %756 ], [ %.pn1505.pn, %1532 ], [ %.pn1374, %798 ], [ %767, %766 ], [ %785, %784 ], [ %783, %782 ], [ %781, %780 ]
  call void @_ZNSt3mapI10aiVector3tIfEmSt4lessIS1_ESaISt4pairIKS1_mEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %17) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %17) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #11
  br label %1534

1534:                                             ; preds = %1533, %707, %701
  %.pn1508.pn.pn = phi { ptr, i32 } [ %.pn1508.pn, %1533 ], [ %702, %701 ], [ %.pn1370, %707 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %10) #11
  br label %1535

1535:                                             ; preds = %1534, %700
  %.pn1508.pn.pn.pn = phi { ptr, i32 } [ %.pn1508.pn.pn, %1534 ], [ %.pn1368, %700 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %10) #11
  br label %4074

._crit_edge2020:                                  ; preds = %1914, %._crit_edge2016
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %230) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  %1536 = load ptr, ptr %642, align 8, !tbaa !39
  %1537 = getelementptr inbounds i8, ptr %1536, i64 32
  %1538 = load i32, ptr %1537, align 8, !tbaa !44
  %.not2167 = icmp eq i32 %1538, 0
  br i1 %.not2167, label %._crit_edge2029, label %.lr.ph2028

1539:                                             ; preds = %.lr.ph2019, %1914
  %1540 = phi ptr [ %648, %.lr.ph2019 ], [ %1916, %1914 ]
  %.08792017 = phi i64 [ 0, %.lr.ph2019 ], [ %1915, %1914 ]
  %1541 = getelementptr inbounds i8, ptr %1540, i64 40
  %1542 = load ptr, ptr %1541, align 8, !tbaa !94
  %1543 = getelementptr inbounds ptr, ptr %1542, i64 %.08792017
  %1544 = load ptr, ptr %1543, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %172) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %173) #11
  call void @_ZN9aiColor3DC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %173) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %174) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %176) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef nonnull @.str.192, ptr noundef nonnull align 1 dereferenceable(1) %176)
          to label %1545 unwind label %1566

1545:                                             ; preds = %1539
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %1546 unwind label %1568

1546:                                             ; preds = %1545
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %176) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %177) #11
  %1547 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %1547, ptr %177, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %647, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %1548 unwind label %1571

1548:                                             ; preds = %1546
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(8) %177)
          to label %1549 unwind label %1571

1549:                                             ; preds = %1548
  call void @llvm.lifetime.start.p0(i64 1028, ptr nonnull %178) #11
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %178) #11
  %1550 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR8aiString(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.300, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(1028) %178)
          to label %1551 unwind label %1573

1551:                                             ; preds = %1549
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #11
  %1552 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %178)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %180, ptr noundef %1552, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %1553 unwind label %1575

1553:                                             ; preds = %1551
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %179, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str.192)
          to label %1554 unwind label %1577

1554:                                             ; preds = %1553
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %179)
          to label %1555 unwind label %1579

1555:                                             ; preds = %1554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #11
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA1_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %1556 unwind label %1573

1556:                                             ; preds = %1555
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %181) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %182) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %182)
          to label %1557 unwind label %1583

1557:                                             ; preds = %1556
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %183) #11
  store i32 102, ptr %183, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 4 dereferenceable(4) %183)
          to label %1558 unwind label %1585

1558:                                             ; preds = %1557
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %182) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #11
  store float 0.000000e+00, ptr %172, align 4, !tbaa !57
  %1559 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1560 unwind label %1573

1560:                                             ; preds = %1558
  %1561 = load float, ptr %172, align 4, !tbaa !57
  %1562 = fcmp ogt float %1561, 0.000000e+00
  br i1 %1562, label %1563, label %1593

1563:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %185) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull @.str.195, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %1564 unwind label %1588

1564:                                             ; preds = %1563
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA6_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull align 1 dereferenceable(6) @.str.301)
          to label %1565 unwind label %1590

1565:                                             ; preds = %1564
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #11
  br label %1601

1566:                                             ; preds = %1539
  %1567 = landingpad { ptr, i32 }
          cleanup
  br label %1570

1568:                                             ; preds = %1545
  %1569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #11
  br label %1570

1570:                                             ; preds = %1568, %1566
  %.pn1310 = phi { ptr, i32 } [ %1569, %1568 ], [ %1567, %1566 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %176) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #11
  br label %1925

1571:                                             ; preds = %1548, %1546
  %1572 = landingpad { ptr, i32 }
          cleanup
  br label %1924

1573:                                             ; preds = %1558, %1555, %1549
  %1574 = landingpad { ptr, i32 }
          cleanup
  br label %1923

1575:                                             ; preds = %1551
  %1576 = landingpad { ptr, i32 }
          cleanup
  br label %1582

1577:                                             ; preds = %1553
  %1578 = landingpad { ptr, i32 }
          cleanup
  br label %1581

1579:                                             ; preds = %1554
  %1580 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #11
  br label %1581

1581:                                             ; preds = %1579, %1577
  %.pn1312 = phi { ptr, i32 } [ %1580, %1579 ], [ %1578, %1577 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #11
  br label %1582

1582:                                             ; preds = %1581, %1575
  %.pn1312.pn = phi { ptr, i32 } [ %.pn1312, %1581 ], [ %1576, %1575 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #11
  br label %1923

1583:                                             ; preds = %1556
  %1584 = landingpad { ptr, i32 }
          cleanup
  br label %1587

1585:                                             ; preds = %1557
  %1586 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %183) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #11
  br label %1587

1587:                                             ; preds = %1585, %1583
  %.pn1315 = phi { ptr, i32 } [ %1586, %1585 ], [ %1584, %1583 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %182) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #11
  br label %1923

1588:                                             ; preds = %1563
  %1589 = landingpad { ptr, i32 }
          cleanup
  br label %1592

1590:                                             ; preds = %1564
  %1591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #11
  br label %1592

1592:                                             ; preds = %1590, %1588
  %.pn1319 = phi { ptr, i32 } [ %1591, %1590 ], [ %1589, %1588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #11
  br label %1923

1593:                                             ; preds = %1560
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %186) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %187) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull @.str.195, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1594 unwind label %1596

1594:                                             ; preds = %1593
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA8_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 1 dereferenceable(8) @.str.302)
          to label %1595 unwind label %1598

1595:                                             ; preds = %1594
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %187) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #11
  br label %1601

1596:                                             ; preds = %1593
  %1597 = landingpad { ptr, i32 }
          cleanup
  br label %1600

1598:                                             ; preds = %1594
  %1599 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #11
  br label %1600

1600:                                             ; preds = %1598, %1596
  %.pn1317 = phi { ptr, i32 } [ %1599, %1598 ], [ %1597, %1596 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %187) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #11
  br label %1923

1601:                                             ; preds = %1595, %1565
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %188) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %189) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull @.str.198, ptr noundef nonnull align 1 dereferenceable(1) %189)
          to label %1602 unwind label %1618

1602:                                             ; preds = %1601
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %190) #11
  store i32 0, ptr %190, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 4 dereferenceable(4) %190)
          to label %1603 unwind label %1620

1603:                                             ; preds = %1602
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %190) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %189) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %191) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %193) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1604 unwind label %1623

1604:                                             ; preds = %1603
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %192)
          to label %1605 unwind label %1625

1605:                                             ; preds = %1604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #11
  %1606 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.303, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1607 unwind label %1628

1607:                                             ; preds = %1605
  %1608 = icmp eq i32 %1606, 0
  br i1 %1608, label %1609, label %1635

1609:                                             ; preds = %1607
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %195) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %195)
          to label %1610 unwind label %1630

1610:                                             ; preds = %1609
  %1611 = load float, ptr %173, align 8, !tbaa !95
  %1612 = fpext float %1611 to double
  %1613 = load float, ptr %651, align 4, !tbaa !97
  %1614 = fpext float %1613 to double
  %1615 = load float, ptr %652, align 8, !tbaa !98
  %1616 = fpext float %1615 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %194, double noundef %1612, double noundef %1614, double noundef %1616)
          to label %1617 unwind label %1632

1617:                                             ; preds = %1610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %195) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br label %1635

1618:                                             ; preds = %1601
  %1619 = landingpad { ptr, i32 }
          cleanup
  br label %1622

1620:                                             ; preds = %1602
  %1621 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %190) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #11
  br label %1622

1622:                                             ; preds = %1620, %1618
  %.pn1321 = phi { ptr, i32 } [ %1621, %1620 ], [ %1619, %1618 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %189) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %189) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %188) #11
  br label %1923

1623:                                             ; preds = %1603
  %1624 = landingpad { ptr, i32 }
          cleanup
  br label %1627

1625:                                             ; preds = %1604
  %1626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #11
  br label %1627

1627:                                             ; preds = %1625, %1623
  %.pn1323 = phi { ptr, i32 } [ %1626, %1625 ], [ %1624, %1623 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %193) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #11
  br label %1922

1628:                                             ; preds = %1911, %1910, %1874, %1872, %1866, %1852, %1850, %1843, %1816, %1806, %1796, %1786, %1772, %1758, %1744, %1726, %1711, %1693, %.critedge1520, %1653, %1635, %1605
  %1629 = landingpad { ptr, i32 }
          cleanup
  br label %1921

1630:                                             ; preds = %1609
  %1631 = landingpad { ptr, i32 }
          cleanup
  br label %1634

1632:                                             ; preds = %1610
  %1633 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #11
  br label %1634

1634:                                             ; preds = %1632, %1630
  %.pn1325 = phi { ptr, i32 } [ %1633, %1632 ], [ %1631, %1630 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %195) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %195) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #11
  br label %1921

1635:                                             ; preds = %1617, %1607
  %1636 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.304, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1637 unwind label %1628

1637:                                             ; preds = %1635
  %1638 = icmp eq i32 %1636, 0
  br i1 %1638, label %1639, label %1653

1639:                                             ; preds = %1637
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %196) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %197) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull @.str.202, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1640 unwind label %1648

1640:                                             ; preds = %1639
  %1641 = load float, ptr %173, align 8, !tbaa !95
  %1642 = fpext float %1641 to double
  %1643 = load float, ptr %651, align 4, !tbaa !97
  %1644 = fpext float %1643 to double
  %1645 = load float, ptr %652, align 8, !tbaa !98
  %1646 = fpext float %1645 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %196, double noundef %1642, double noundef %1644, double noundef %1646)
          to label %1647 unwind label %1650

1647:                                             ; preds = %1640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %197) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %196) #11
  br label %1653

1648:                                             ; preds = %1639
  %1649 = landingpad { ptr, i32 }
          cleanup
  br label %1652

1650:                                             ; preds = %1640
  %1651 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #11
  br label %1652

1652:                                             ; preds = %1650, %1648
  %.pn1327 = phi { ptr, i32 } [ %1651, %1650 ], [ %1649, %1648 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %197) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %196) #11
  br label %1921

1653:                                             ; preds = %1647, %1637
  %1654 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.305, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1655 unwind label %1628

1655:                                             ; preds = %1653
  %1656 = icmp eq i32 %1654, 0
  br i1 %1656, label %1657, label %1678

1657:                                             ; preds = %1655
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.207, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1658 unwind label %1668

1658:                                             ; preds = %1657
  %1659 = load float, ptr %173, align 8, !tbaa !95
  %1660 = fpext float %1659 to double
  %1661 = load float, ptr %651, align 4, !tbaa !97
  %1662 = fpext float %1661 to double
  %1663 = load float, ptr %652, align 8, !tbaa !98
  %1664 = fpext float %1663 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %198, double noundef %1660, double noundef %1662, double noundef %1664)
          to label %1665 unwind label %1670

1665:                                             ; preds = %1658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #11
  br i1 %639, label %.critedge1520, label %1666

1666:                                             ; preds = %1665
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull @.str.208, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1667 unwind label %1673

1667:                                             ; preds = %1666
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %200, double noundef 1.000000e+00)
          to label %.thread unwind label %1675

.thread:                                          ; preds = %1667
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #11
  br label %1693

1668:                                             ; preds = %1657
  %1669 = landingpad { ptr, i32 }
          cleanup
  br label %1672

1670:                                             ; preds = %1658
  %1671 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #11
  br label %1672

1672:                                             ; preds = %1670, %1668
  %.pn1329 = phi { ptr, i32 } [ %1671, %1670 ], [ %1669, %1668 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #11
  br label %1921

1673:                                             ; preds = %1666
  %1674 = landingpad { ptr, i32 }
          cleanup
  br label %1677

1675:                                             ; preds = %1667
  %1676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #11
  br label %1677

1677:                                             ; preds = %1675, %1673
  %.pn1331 = phi { ptr, i32 } [ %1676, %1675 ], [ %1674, %1673 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #11
  br label %1921

1678:                                             ; preds = %1655
  br i1 %639, label %.critedge1520, label %1693

.critedge1520:                                    ; preds = %1665, %1678
  %1679 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.306, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1680 unwind label %1628

1680:                                             ; preds = %.critedge1520
  %1681 = icmp eq i32 %1679, 0
  br i1 %1681, label %1682, label %1693

1682:                                             ; preds = %1680
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %202) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %203) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef nonnull @.str.208, ptr noundef nonnull align 1 dereferenceable(1) %203)
          to label %1683 unwind label %1688

1683:                                             ; preds = %1682
  %1684 = load float, ptr %172, align 4, !tbaa !57
  %1685 = fpext float %1684 to double
  %1686 = fsub double 1.000000e+00, %1685
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %202, double noundef %1686)
          to label %1687 unwind label %1690

1687:                                             ; preds = %1683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %203) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #11
  br label %1693

1688:                                             ; preds = %1682
  %1689 = landingpad { ptr, i32 }
          cleanup
  br label %1692

1690:                                             ; preds = %1683
  %1691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #11
  br label %1692

1692:                                             ; preds = %1690, %1688
  %.pn1333 = phi { ptr, i32 } [ %1691, %1690 ], [ %1689, %1688 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %203) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %203) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %202) #11
  br label %1921

1693:                                             ; preds = %.thread, %1680, %1687, %1678
  %1694 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.307, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1695 unwind label %1628

1695:                                             ; preds = %1693
  %1696 = icmp eq i32 %1694, 0
  br i1 %1696, label %1697, label %1711

1697:                                             ; preds = %1695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %204) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %205) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull @.str.216, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1698 unwind label %1706

1698:                                             ; preds = %1697
  %1699 = load float, ptr %173, align 8, !tbaa !95
  %1700 = fpext float %1699 to double
  %1701 = load float, ptr %651, align 4, !tbaa !97
  %1702 = fpext float %1701 to double
  %1703 = load float, ptr %652, align 8, !tbaa !98
  %1704 = fpext float %1703 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %204, double noundef %1700, double noundef %1702, double noundef %1704)
          to label %1705 unwind label %1708

1705:                                             ; preds = %1698
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %205) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #11
  br label %1711

1706:                                             ; preds = %1697
  %1707 = landingpad { ptr, i32 }
          cleanup
  br label %1710

1708:                                             ; preds = %1698
  %1709 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #11
  br label %1710

1710:                                             ; preds = %1708, %1706
  %.pn1335 = phi { ptr, i32 } [ %1709, %1708 ], [ %1707, %1706 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %205) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %204) #11
  br label %1921

1711:                                             ; preds = %1705, %1695
  %1712 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1713 unwind label %1628

1713:                                             ; preds = %1711
  %1714 = icmp eq i32 %1712, 0
  br i1 %1714, label %1715, label %1725

1715:                                             ; preds = %1713
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %206) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %207) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull @.str.217, ptr noundef nonnull align 1 dereferenceable(1) %207)
          to label %1716 unwind label %1720

1716:                                             ; preds = %1715
  %1717 = load float, ptr %172, align 4, !tbaa !57
  %1718 = fpext float %1717 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %206, double noundef %1718)
          to label %1719 unwind label %1722

1719:                                             ; preds = %1716
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %207) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #11
  br label %1725

1720:                                             ; preds = %1715
  %1721 = landingpad { ptr, i32 }
          cleanup
  br label %1724

1722:                                             ; preds = %1716
  %1723 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #11
  br label %1724

1724:                                             ; preds = %1722, %1720
  %.pn1337 = phi { ptr, i32 } [ %1723, %1722 ], [ %1721, %1720 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %207) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %207) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %206) #11
  br label %1921

1725:                                             ; preds = %1719, %1713
  br i1 %1562, label %1726, label %1786

1726:                                             ; preds = %1725
  %1727 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.309, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1728 unwind label %1628

1728:                                             ; preds = %1726
  %1729 = icmp eq i32 %1727, 0
  br i1 %1729, label %1730, label %1744

1730:                                             ; preds = %1728
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %209) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.213, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1731 unwind label %1739

1731:                                             ; preds = %1730
  %1732 = load float, ptr %173, align 8, !tbaa !95
  %1733 = fpext float %1732 to double
  %1734 = load float, ptr %651, align 4, !tbaa !97
  %1735 = fpext float %1734 to double
  %1736 = load float, ptr %652, align 8, !tbaa !98
  %1737 = fpext float %1736 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %208, double noundef %1733, double noundef %1735, double noundef %1737)
          to label %1738 unwind label %1741

1738:                                             ; preds = %1731
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #11
  br label %1744

1739:                                             ; preds = %1730
  %1740 = landingpad { ptr, i32 }
          cleanup
  br label %1743

1741:                                             ; preds = %1731
  %1742 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #11
  br label %1743

1743:                                             ; preds = %1741, %1739
  %.pn1339 = phi { ptr, i32 } [ %1742, %1741 ], [ %1740, %1739 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #11
  br label %1921

1744:                                             ; preds = %1738, %1728
  %1745 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.310, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1746 unwind label %1628

1746:                                             ; preds = %1744
  %1747 = icmp eq i32 %1745, 0
  br i1 %1747, label %1748, label %1758

1748:                                             ; preds = %1746
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %211) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull @.str.311, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %1749 unwind label %1753

1749:                                             ; preds = %1748
  %1750 = load float, ptr %172, align 4, !tbaa !57
  %1751 = fpext float %1750 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %210, double noundef %1751)
          to label %1752 unwind label %1755

1752:                                             ; preds = %1749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #11
  br label %1758

1753:                                             ; preds = %1748
  %1754 = landingpad { ptr, i32 }
          cleanup
  br label %1757

1755:                                             ; preds = %1749
  %1756 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #11
  br label %1757

1757:                                             ; preds = %1755, %1753
  %.pn1341 = phi { ptr, i32 } [ %1756, %1755 ], [ %1754, %1753 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %211) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #11
  br label %1921

1758:                                             ; preds = %1752, %1746
  %1759 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1760 unwind label %1628

1760:                                             ; preds = %1758
  %1761 = icmp eq i32 %1759, 0
  br i1 %1761, label %1762, label %1772

1762:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %212) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %213) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %212, ptr noundef nonnull @.str.215, ptr noundef nonnull align 1 dereferenceable(1) %213)
          to label %1763 unwind label %1767

1763:                                             ; preds = %1762
  %1764 = load float, ptr %172, align 4, !tbaa !57
  %1765 = fpext float %1764 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %212, double noundef %1765)
          to label %1766 unwind label %1769

1766:                                             ; preds = %1763
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %213) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #11
  br label %1772

1767:                                             ; preds = %1762
  %1768 = landingpad { ptr, i32 }
          cleanup
  br label %1771

1769:                                             ; preds = %1763
  %1770 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %212) #11
  br label %1771

1771:                                             ; preds = %1769, %1767
  %.pn1343 = phi { ptr, i32 } [ %1770, %1769 ], [ %1768, %1767 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %213) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %213) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %212) #11
  br label %1921

1772:                                             ; preds = %1766, %1760
  %1773 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1774 unwind label %1628

1774:                                             ; preds = %1772
  %1775 = icmp eq i32 %1773, 0
  br i1 %1775, label %1776, label %1786

1776:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %215) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull @.str.217, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %1777 unwind label %1781

1777:                                             ; preds = %1776
  %1778 = load float, ptr %172, align 4, !tbaa !57
  %1779 = fpext float %1778 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %214, double noundef %1779)
          to label %1780 unwind label %1783

1780:                                             ; preds = %1777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #11
  br label %1786

1781:                                             ; preds = %1776
  %1782 = landingpad { ptr, i32 }
          cleanup
  br label %1785

1783:                                             ; preds = %1777
  %1784 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #11
  br label %1785

1785:                                             ; preds = %1783, %1781
  %.pn1345 = phi { ptr, i32 } [ %1784, %1783 ], [ %1782, %1781 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #11
  br label %1921

1786:                                             ; preds = %1774, %1780, %1725
  store <2 x float> zeroinitializer, ptr %173, align 8, !tbaa !57
  store float 0.000000e+00, ptr %652, align 8, !tbaa !98
  %1787 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.312, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1788 unwind label %1628

1788:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %217) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull @.str.313, ptr noundef nonnull align 1 dereferenceable(1) %217)
          to label %1789 unwind label %1828

1789:                                             ; preds = %1788
  %1790 = load float, ptr %173, align 8, !tbaa !95
  %1791 = fpext float %1790 to double
  %1792 = load float, ptr %651, align 4, !tbaa !97
  %1793 = fpext float %1792 to double
  %1794 = load float, ptr %652, align 8, !tbaa !98
  %1795 = fpext float %1794 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %216, double noundef %1791, double noundef %1793, double noundef %1795)
          to label %1796 unwind label %1830

1796:                                             ; preds = %1789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %217) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %173, align 8, !tbaa !57
  store float 0x3FC99999A0000000, ptr %652, align 8, !tbaa !98
  %1797 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.303, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1798 unwind label %1628

1798:                                             ; preds = %1796
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %218) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %219) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull @.str.314, ptr noundef nonnull align 1 dereferenceable(1) %219)
          to label %1799 unwind label %1833

1799:                                             ; preds = %1798
  %1800 = load float, ptr %173, align 8, !tbaa !95
  %1801 = fpext float %1800 to double
  %1802 = load float, ptr %651, align 4, !tbaa !97
  %1803 = fpext float %1802 to double
  %1804 = load float, ptr %652, align 8, !tbaa !98
  %1805 = fpext float %1804 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %218, double noundef %1801, double noundef %1803, double noundef %1805)
          to label %1806 unwind label %1835

1806:                                             ; preds = %1799
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %219) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #11
  store <2 x float> <float 0x3FE99999A0000000, float 0x3FE99999A0000000>, ptr %173, align 8, !tbaa !57
  store float 0x3FE99999A0000000, ptr %652, align 8, !tbaa !98
  %1807 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.304, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1808 unwind label %1628

1808:                                             ; preds = %1806
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %220) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %221) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef nonnull @.str.315, ptr noundef nonnull align 1 dereferenceable(1) %221)
          to label %1809 unwind label %1838

1809:                                             ; preds = %1808
  %1810 = load float, ptr %173, align 8, !tbaa !95
  %1811 = fpext float %1810 to double
  %1812 = load float, ptr %651, align 4, !tbaa !97
  %1813 = fpext float %1812 to double
  %1814 = load float, ptr %652, align 8, !tbaa !98
  %1815 = fpext float %1814 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %220, double noundef %1811, double noundef %1813, double noundef %1815)
          to label %1816 unwind label %1840

1816:                                             ; preds = %1809
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %221) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #11
  store float 1.000000e+00, ptr %172, align 4, !tbaa !57
  %1817 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.305, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1818 unwind label %1628

1818:                                             ; preds = %1816
  %1819 = icmp eq i32 %1817, 0
  br i1 %1819, label %1820, label %1843

1820:                                             ; preds = %1818
  %1821 = load float, ptr %173, align 8, !tbaa !95
  %1822 = load float, ptr %651, align 4, !tbaa !97
  %1823 = fadd float %1821, %1822
  %1824 = load float, ptr %652, align 8, !tbaa !98
  %1825 = fadd float %1823, %1824
  %1826 = fdiv float %1825, 3.000000e+00
  %1827 = fsub float 1.000000e+00, %1826
  store float %1827, ptr %172, align 4, !tbaa !57
  br label %1843

1828:                                             ; preds = %1788
  %1829 = landingpad { ptr, i32 }
          cleanup
  br label %1832

1830:                                             ; preds = %1789
  %1831 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #11
  br label %1832

1832:                                             ; preds = %1830, %1828
  %.pn1347 = phi { ptr, i32 } [ %1831, %1830 ], [ %1829, %1828 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %217) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %217) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #11
  br label %1921

1833:                                             ; preds = %1798
  %1834 = landingpad { ptr, i32 }
          cleanup
  br label %1837

1835:                                             ; preds = %1799
  %1836 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #11
  br label %1837

1837:                                             ; preds = %1835, %1833
  %.pn1349 = phi { ptr, i32 } [ %1836, %1835 ], [ %1834, %1833 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %219) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %218) #11
  br label %1921

1838:                                             ; preds = %1808
  %1839 = landingpad { ptr, i32 }
          cleanup
  br label %1842

1840:                                             ; preds = %1809
  %1841 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #11
  br label %1842

1842:                                             ; preds = %1840, %1838
  %.pn1351 = phi { ptr, i32 } [ %1841, %1840 ], [ %1839, %1838 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %221) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %221) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %220) #11
  br label %1921

1843:                                             ; preds = %1820, %1818
  %1844 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.306, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1845 unwind label %1628

1845:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %223) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull @.str.316, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %1846 unwind label %1890

1846:                                             ; preds = %1845
  %1847 = load float, ptr %172, align 4, !tbaa !57
  %1848 = fpext float %1847 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %222, double noundef %1848)
          to label %1849 unwind label %1892

1849:                                             ; preds = %1846
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %223) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #11
  br i1 %1562, label %1850, label %1910

1850:                                             ; preds = %1849
  store <2 x float> <float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %173, align 8, !tbaa !57
  store float 0x3FC99999A0000000, ptr %652, align 8, !tbaa !98
  %1851 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.309, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1852 unwind label %1628

1852:                                             ; preds = %1850
  store float 1.000000e+00, ptr %172, align 4, !tbaa !57
  %1853 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.310, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1854 unwind label %1628

1854:                                             ; preds = %1852
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %225) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull @.str.317, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %1855 unwind label %1895

1855:                                             ; preds = %1854
  %1856 = load float, ptr %172, align 4, !tbaa !57
  %1857 = load float, ptr %173, align 8, !tbaa !95
  %1858 = fmul float %1856, %1857
  %1859 = fpext float %1858 to double
  %1860 = load float, ptr %651, align 4, !tbaa !97
  %1861 = fmul float %1856, %1860
  %1862 = fpext float %1861 to double
  %1863 = load float, ptr %652, align 8, !tbaa !98
  %1864 = fmul float %1856, %1863
  %1865 = fpext float %1864 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %224, double noundef %1859, double noundef %1862, double noundef %1865)
          to label %1866 unwind label %1897

1866:                                             ; preds = %1855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %225) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #11
  store float 2.000000e+01, ptr %172, align 4, !tbaa !57
  %1867 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.80, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1868 unwind label %1628

1868:                                             ; preds = %1866
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %227) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull @.str.318, ptr noundef nonnull align 1 dereferenceable(1) %227)
          to label %1869 unwind label %1900

1869:                                             ; preds = %1868
  %1870 = load float, ptr %172, align 4, !tbaa !57
  %1871 = fpext float %1870 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %226, double noundef %1871)
          to label %1872 unwind label %1902

1872:                                             ; preds = %1869
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %227) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #11
  store float 0.000000e+00, ptr %172, align 4, !tbaa !57
  %1873 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.308, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %1874 unwind label %1628

1874:                                             ; preds = %1872
  store <2 x float> <float 1.000000e+00, float 1.000000e+00>, ptr %173, align 8, !tbaa !57
  store float 1.000000e+00, ptr %652, align 8, !tbaa !98
  %1875 = invoke noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16) %1544, ptr noundef nonnull @.str.307, i32 noundef 0, i32 noundef 0, ptr noundef nonnull align 4 dereferenceable(12) %173)
          to label %1876 unwind label %1628

1876:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %228) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %229) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %228, ptr noundef nonnull @.str.319, ptr noundef nonnull align 1 dereferenceable(1) %229)
          to label %1877 unwind label %1905

1877:                                             ; preds = %1876
  %1878 = load float, ptr %172, align 4, !tbaa !57
  %1879 = fmul float %1878, %1878
  %1880 = fpext float %1879 to double
  %1881 = load float, ptr %173, align 8, !tbaa !95
  %1882 = load float, ptr %651, align 4, !tbaa !97
  %1883 = fadd float %1881, %1882
  %1884 = load float, ptr %652, align 8, !tbaa !98
  %1885 = fadd float %1883, %1884
  %1886 = fpext float %1885 to double
  %1887 = fdiv double %1886, 3.000000e+00
  %1888 = fmul double %1887, %1880
  invoke void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %191, ptr noundef nonnull align 8 dereferenceable(32) %228, double noundef %1888)
          to label %1889 unwind label %1907

1889:                                             ; preds = %1877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %229) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #11
  br label %1910

1890:                                             ; preds = %1845
  %1891 = landingpad { ptr, i32 }
          cleanup
  br label %1894

1892:                                             ; preds = %1846
  %1893 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #11
  br label %1894

1894:                                             ; preds = %1892, %1890
  %.pn1353 = phi { ptr, i32 } [ %1893, %1892 ], [ %1891, %1890 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %223) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #11
  br label %1921

1895:                                             ; preds = %1854
  %1896 = landingpad { ptr, i32 }
          cleanup
  br label %1899

1897:                                             ; preds = %1855
  %1898 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #11
  br label %1899

1899:                                             ; preds = %1897, %1895
  %.pn1355 = phi { ptr, i32 } [ %1898, %1897 ], [ %1896, %1895 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %225) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #11
  br label %1921

1900:                                             ; preds = %1868
  %1901 = landingpad { ptr, i32 }
          cleanup
  br label %1904

1902:                                             ; preds = %1869
  %1903 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #11
  br label %1904

1904:                                             ; preds = %1902, %1900
  %.pn1357 = phi { ptr, i32 } [ %1903, %1902 ], [ %1901, %1900 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %227) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %227) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #11
  br label %1921

1905:                                             ; preds = %1876
  %1906 = landingpad { ptr, i32 }
          cleanup
  br label %1909

1907:                                             ; preds = %1877
  %1908 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %228) #11
  br label %1909

1909:                                             ; preds = %1907, %1905
  %.pn1359 = phi { ptr, i32 } [ %1908, %1907 ], [ %1906, %1905 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %229) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %228) #11
  br label %1921

1910:                                             ; preds = %1889, %1849
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(112) %191)
          to label %1911 unwind label %1628

1911:                                             ; preds = %1910
  %1912 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %1913 = trunc nuw i8 %1912 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %174, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %1913, i32 noundef 1)
          to label %1914 unwind label %1628

1914:                                             ; preds = %1911
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %191) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %191) #11
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %178) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %174) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %174) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %173) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %172) #11
  %1915 = add nuw nsw i64 %.08792017, 1
  %1916 = load ptr, ptr %642, align 8, !tbaa !39
  %1917 = getelementptr inbounds i8, ptr %1916, i64 32
  %1918 = load i32, ptr %1917, align 8, !tbaa !44
  %1919 = zext i32 %1918 to i64
  %1920 = icmp ult i64 %1915, %1919
  br i1 %1920, label %1539, label %._crit_edge2020, !llvm.loop !99

1921:                                             ; preds = %1909, %1904, %1899, %1894, %1842, %1837, %1832, %1785, %1771, %1757, %1743, %1724, %1710, %1692, %1677, %1672, %1652, %1634, %1628
  %.pn1361 = phi { ptr, i32 } [ %1629, %1628 ], [ %.pn1359, %1909 ], [ %.pn1357, %1904 ], [ %.pn1355, %1899 ], [ %.pn1353, %1894 ], [ %.pn1351, %1842 ], [ %.pn1349, %1837 ], [ %.pn1347, %1832 ], [ %.pn1345, %1785 ], [ %.pn1343, %1771 ], [ %.pn1341, %1757 ], [ %.pn1339, %1743 ], [ %.pn1337, %1724 ], [ %.pn1335, %1710 ], [ %.pn1333, %1692 ], [ %.pn1331, %1677 ], [ %.pn1329, %1672 ], [ %.pn1327, %1652 ], [ %.pn1325, %1634 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %191) #11
  br label %1922

1922:                                             ; preds = %1921, %1627
  %.pn1361.pn = phi { ptr, i32 } [ %.pn1361, %1921 ], [ %.pn1323, %1627 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %191) #11
  br label %1923

1923:                                             ; preds = %1592, %1600, %1622, %1922, %1587, %1582, %1573
  %.pn1361.pn.pn.pn = phi { ptr, i32 } [ %1574, %1573 ], [ %.pn1315, %1587 ], [ %.pn1312.pn, %1582 ], [ %.pn1361.pn, %1922 ], [ %.pn1321, %1622 ], [ %.pn1319, %1592 ], [ %.pn1317, %1600 ]
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %178) #11
  br label %1924

1924:                                             ; preds = %1923, %1571
  %.pn1361.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1361.pn.pn.pn, %1923 ], [ %1572, %1571 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %177) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %174) #11
  br label %1925

1925:                                             ; preds = %1924, %1570
  %.pn1361.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1361.pn.pn.pn.pn, %1924 ], [ %.pn1310, %1570 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %174) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %173) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %172) #11
  br label %4074

._crit_edge2029:                                  ; preds = %1935, %._crit_edge2020
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %236) #11
  %1926 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  store ptr %1926, ptr %236, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %237) #11
  %1927 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  store ptr %1927, ptr %237, align 8
  %1928 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  br i1 %1928, label %.lr.ph2031, label %._crit_edge2032

.lr.ph2031:                                       ; preds = %._crit_edge2029
  %1929 = getelementptr inbounds i8, ptr %251, i64 16
  br label %1973

.lr.ph2028:                                       ; preds = %._crit_edge2020, %1935
  %.08802026 = phi i64 [ %1936, %1935 ], [ 0, %._crit_edge2020 ]
  call void @llvm.lifetime.start.p0(i64 1028, ptr nonnull %231) #11
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %231) #11
  %1930 = load ptr, ptr %642, align 8, !tbaa !39
  %1931 = getelementptr inbounds i8, ptr %1930, i64 40
  %1932 = load ptr, ptr %1931, align 8, !tbaa !94
  %1933 = getelementptr inbounds ptr, ptr %1932, i64 %.08802026
  %1934 = load ptr, ptr %1933, align 8, !tbaa !46
  br label %1942

1935:                                             ; preds = %._crit_edge2024
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %231) #11
  %1936 = add nuw nsw i64 %.08802026, 1
  %1937 = load ptr, ptr %642, align 8, !tbaa !39
  %1938 = getelementptr inbounds i8, ptr %1937, i64 32
  %1939 = load i32, ptr %1938, align 8, !tbaa !44
  %1940 = zext i32 %1939 to i64
  %1941 = icmp ult i64 %1936, %1940
  br i1 %1941, label %.lr.ph2028, label %._crit_edge2029, !llvm.loop !100

1942:                                             ; preds = %.lr.ph2028, %._crit_edge2024
  %.08812025 = phi i64 [ 1, %.lr.ph2028 ], [ %1947, %._crit_edge2024 ]
  %1943 = trunc nuw nsw i64 %.08812025 to i32
  %1944 = invoke noundef i32 @_ZNK10aiMaterial15GetTextureCountE13aiTextureType(ptr noundef nonnull align 8 dereferenceable(16) %1934, i32 noundef %1943)
          to label %1945 unwind label %1948

1945:                                             ; preds = %1942
  %1946 = zext i32 %1944 to i64
  %.not2168 = icmp eq i32 %1944, 0
  br i1 %.not2168, label %._crit_edge2024, label %.lr.ph2023

._crit_edge2024:                                  ; preds = %1969, %1945
  %1947 = add nuw nsw i64 %.08812025, 1
  %exitcond2350.not = icmp eq i64 %1947, 18
  br i1 %exitcond2350.not, label %1935, label %1942, !llvm.loop !101

1948:                                             ; preds = %1942
  %1949 = landingpad { ptr, i32 }
          cleanup
  br label %1972

.lr.ph2023:                                       ; preds = %1945, %1969
  %.08822021 = phi i64 [ %1970, %1969 ], [ 0, %1945 ]
  %1950 = trunc nuw i64 %.08822021 to i32
  %1951 = invoke noundef i32 @_ZNK10aiMaterial10GetTextureE13aiTextureTypejP8aiStringP16aiTextureMappingPjPfP11aiTextureOpP16aiTextureMapMode(ptr noundef nonnull align 8 dereferenceable(16) %1934, i32 noundef %1943, i32 noundef %1950, ptr noundef nonnull %231, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %1952 unwind label %1963

1952:                                             ; preds = %.lr.ph2023
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %232) #11
  %1953 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %231)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %233) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef %1953, ptr noundef nonnull align 1 dereferenceable(1) %233)
          to label %1954 unwind label %1965

1954:                                             ; preds = %1952
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %233) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %234) #11
  %1955 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %232)
          to label %1956 unwind label %1967

1956:                                             ; preds = %1954
  store ptr %1955, ptr %234, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %235) #11
  %1957 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  store ptr %1957, ptr %235, align 8
  %1958 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef nonnull align 8 dereferenceable(8) %235) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #11
  br i1 %1958, label %1959, label %1969

1959:                                             ; preds = %1956
  %1960 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %1961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %232)
          to label %1962 unwind label %1967

1962:                                             ; preds = %1959
  store i64 %1960, ptr %1961, align 8, !tbaa !47
  br label %1969

1963:                                             ; preds = %.lr.ph2023
  %1964 = landingpad { ptr, i32 }
          cleanup
  br label %1972

1965:                                             ; preds = %1952
  %1966 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %233) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %233) #11
  br label %1971

1967:                                             ; preds = %1959, %1954
  %1968 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #11
  br label %1971

1969:                                             ; preds = %1962, %1956
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #11
  %1970 = add nuw nsw i64 %.08822021, 1
  %exitcond.not = icmp eq i64 %1970, %1946
  br i1 %exitcond.not, label %._crit_edge2024, label %.lr.ph2023, !llvm.loop !102

1971:                                             ; preds = %1967, %1965
  %.pn1305 = phi { ptr, i32 } [ %1968, %1967 ], [ %1966, %1965 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #11
  br label %1972

1972:                                             ; preds = %1963, %1971, %1948
  %.pn1305.pn.pn = phi { ptr, i32 } [ %1949, %1948 ], [ %.pn1305, %1971 ], [ %1964, %1963 ]
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %231) #11
  br label %4073

._crit_edge2032:                                  ; preds = %2112, %._crit_edge2029
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %276) #11
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %276) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %277) #11
  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %278) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %279) #11
  store i32 1, ptr %279, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA13_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %278, ptr noundef nonnull align 4 dereferenceable(4) %279, ptr noundef nonnull align 1 dereferenceable(13) @.str.202)
          to label %2150 unwind label %.thread1521

1973:                                             ; preds = %.lr.ph2031, %2112
  %1974 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %238) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %239) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %240) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull @.str.218, ptr noundef nonnull align 1 dereferenceable(1) %240)
          to label %1975 unwind label %1998

1975:                                             ; preds = %1973
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %1976 unwind label %2000

1976:                                             ; preds = %1975
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #11
  %1977 = getelementptr inbounds i8, ptr %1974, i64 32
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %242) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %1978 unwind label %2003

1978:                                             ; preds = %1976
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %243) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %244) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %244, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %1979 unwind label %2005

1979:                                             ; preds = %1978
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %243, ptr noundef nonnull align 8 dereferenceable(32) %244, ptr noundef nonnull @.str.218)
          to label %1980 unwind label %2007

1980:                                             ; preds = %1979
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA5_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(8) %1977, ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull align 1 dereferenceable(5) @.str.320)
          to label %1981 unwind label %2009

1981:                                             ; preds = %1980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %244) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %245) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %246) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %246)
          to label %1982 unwind label %2013

1982:                                             ; preds = %1981
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA5_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 1 dereferenceable(5) @.str.320)
          to label %1983 unwind label %2015

1983:                                             ; preds = %1982
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %246) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %247) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %249) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %1984 unwind label %2018

1984:                                             ; preds = %1983
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %247, ptr noundef nonnull align 8 dereferenceable(32) %248)
          to label %1985 unwind label %2020

1985:                                             ; preds = %1984
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %249) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %250) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %1974)
          to label %1986 unwind label %2023

1986:                                             ; preds = %1985
  %1987 = load ptr, ptr %642, align 8, !tbaa !39
  %1988 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1974) #11
  %1989 = invoke noundef ptr @_ZNK7aiScene18GetEmbeddedTextureEPKc(ptr noundef nonnull align 8 dereferenceable(1168) %1987, ptr noundef %1988)
          to label %1990 unwind label %2025

1990:                                             ; preds = %1986
  %.not1271 = icmp eq ptr %1989, null
  br i1 %.not1271, label %2097, label %1991

1991:                                             ; preds = %1990
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %251) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %251)
          to label %1992 unwind label %2027

1992:                                             ; preds = %1991
  %1993 = getelementptr inbounds i8, ptr %1989, i64 32
  %1994 = load i32, ptr %1993, align 8, !tbaa !105
  %.not1272 = icmp eq i32 %1994, 0
  br i1 %.not1272, label %2031, label %1995

1995:                                             ; preds = %1992
  %1996 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %1993)
  %1997 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1929, ptr noundef %1996)
          to label %2052 unwind label %2029

1998:                                             ; preds = %1973
  %1999 = landingpad { ptr, i32 }
          cleanup
  br label %2002

2000:                                             ; preds = %1975
  %2001 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #11
  br label %2002

2002:                                             ; preds = %2000, %1998
  %.pn1262 = phi { ptr, i32 } [ %2001, %2000 ], [ %1999, %1998 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %240) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #11
  br label %2149

2003:                                             ; preds = %1976
  %2004 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %242) #11
  br label %2148

2005:                                             ; preds = %1978
  %2006 = landingpad { ptr, i32 }
          cleanup
  br label %2012

2007:                                             ; preds = %1979
  %2008 = landingpad { ptr, i32 }
          cleanup
  br label %2011

2009:                                             ; preds = %1980
  %2010 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #11
  br label %2011

2011:                                             ; preds = %2009, %2007
  %.pn1264 = phi { ptr, i32 } [ %2010, %2009 ], [ %2008, %2007 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %244) #11
  br label %2012

2012:                                             ; preds = %2011, %2005
  %.pn1264.pn = phi { ptr, i32 } [ %.pn1264, %2011 ], [ %2006, %2005 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %244) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #11
  br label %2147

2013:                                             ; preds = %1981
  %2014 = landingpad { ptr, i32 }
          cleanup
  br label %2017

2015:                                             ; preds = %1982
  %2016 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #11
  br label %2017

2017:                                             ; preds = %2015, %2013
  %.pn1267 = phi { ptr, i32 } [ %2016, %2015 ], [ %2014, %2013 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %246) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #11
  br label %2147

2018:                                             ; preds = %1983
  %2019 = landingpad { ptr, i32 }
          cleanup
  br label %2022

2020:                                             ; preds = %1984
  %2021 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #11
  br label %2022

2022:                                             ; preds = %2020, %2018
  %.pn1269 = phi { ptr, i32 } [ %2021, %2020 ], [ %2019, %2018 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %249) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #11
  br label %2146

2023:                                             ; preds = %1985
  %2024 = landingpad { ptr, i32 }
          cleanup
  br label %2145

2025:                                             ; preds = %2109, %2102, %1986
  %2026 = landingpad { ptr, i32 }
          cleanup
  br label %2144

2027:                                             ; preds = %1991
  %2028 = landingpad { ptr, i32 }
          cleanup
  br label %2096

2029:                                             ; preds = %1995
  %2030 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2031:                                             ; preds = %1992
  %2032 = getelementptr inbounds i8, ptr %1989, i64 8
  %2033 = load i8, ptr %2032, align 8, !tbaa !107
  %.not1273 = icmp eq i8 %2033, 0
  br i1 %.not1273, label %2052, label %2034

2034:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %252) #11
  %2035 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %250) #11
  %2036 = add i64 %2035, -1
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(32) %250, i64 noundef 1, i64 noundef %2036)
          to label %2037 unwind label %2045

2037:                                             ; preds = %2034
  %2038 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef null, i32 noundef 10)
          to label %2039 unwind label %2047

2039:                                             ; preds = %2037
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #11
  %2040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1929, i32 noundef %2038)
          to label %2041 unwind label %2050

2041:                                             ; preds = %2039
  %2042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2040, ptr noundef nonnull @.str.40)
          to label %2043 unwind label %2050

2043:                                             ; preds = %2041
  %2044 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2042, ptr noundef nonnull %2032)
          to label %2052 unwind label %2050

2045:                                             ; preds = %2034
  %2046 = landingpad { ptr, i32 }
          cleanup
  br label %2049

2047:                                             ; preds = %2037
  %2048 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #11
  br label %2049

2049:                                             ; preds = %2047, %2045
  %.pn1274 = phi { ptr, i32 } [ %2048, %2047 ], [ %2046, %2045 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %252) #11
  br label %2095

2050:                                             ; preds = %2043, %2041, %2039
  %2051 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2052:                                             ; preds = %2043, %2031, %1995
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %253) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %253, ptr noundef nonnull align 8 dereferenceable(128) %251)
          to label %2053 unwind label %2070

2053:                                             ; preds = %2052
  %2054 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %253) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #11
  %2055 = load i32, ptr %1989, align 8, !tbaa !108
  %2056 = getelementptr inbounds i8, ptr %1989, i64 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %254) #11
  store i32 1, ptr %254, align 4, !tbaa !48
  %2057 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %2056, ptr noundef nonnull align 4 dereferenceable(4) %254)
  %2058 = load i32, ptr %2057, align 4, !tbaa !48
  %2059 = mul i32 %2058, %2055
  %2060 = zext i32 %2059 to i64
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %254) #11
  %2061 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2062 = trunc nuw i8 %2061 to i1
  br i1 %2062, label %2063, label %2080

2063:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %255) #11
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %255) #11
  invoke void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %2060)
          to label %2064 unwind label %2072

2064:                                             ; preds = %2063
  %2065 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef 0) #11
  %2066 = getelementptr inbounds i8, ptr %1989, i64 24
  %2067 = load ptr, ptr %2066, align 8, !tbaa !109
  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %2065, ptr align 1 %2067, i64 %2060, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %256) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %257) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull @.str.321, ptr noundef nonnull align 1 dereferenceable(1) %257)
          to label %2068 unwind label %2074

2068:                                             ; preds = %2064
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIhSaIhEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull align 8 dereferenceable(24) %255)
          to label %2069 unwind label %2076

2069:                                             ; preds = %2068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #11
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %255) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %255) #11
  br label %2094

2070:                                             ; preds = %2052
  %2071 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #11
  br label %2095

2072:                                             ; preds = %2063
  %2073 = landingpad { ptr, i32 }
          cleanup
  br label %2079

2074:                                             ; preds = %2064
  %2075 = landingpad { ptr, i32 }
          cleanup
  br label %2078

2076:                                             ; preds = %2068
  %2077 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #11
  br label %2078

2078:                                             ; preds = %2076, %2074
  %.pn1281 = phi { ptr, i32 } [ %2077, %2076 ], [ %2075, %2074 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %257) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #11
  br label %2079

2079:                                             ; preds = %2078, %2072
  %.pn1281.pn = phi { ptr, i32 } [ %.pn1281, %2078 ], [ %2073, %2072 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %255) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %255) #11
  br label %2095

2080:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %258) #11
  %2081 = getelementptr inbounds i8, ptr %1989, i64 24
  %2082 = load ptr, ptr %2081, align 8, !tbaa !109
  invoke void @_ZN6Assimp3FBX4Util12EncodeBase64B5cxx11EPKcm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %258, ptr noundef %2082, i64 noundef %2060)
          to label %2083 unwind label %2086

2083:                                             ; preds = %2080
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %259) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %260) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.321, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %2084 unwind label %2088

2084:                                             ; preds = %2083
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %2085 unwind label %2090

2085:                                             ; preds = %2084
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %258) #11
  br label %2094

2086:                                             ; preds = %2080
  %2087 = landingpad { ptr, i32 }
          cleanup
  br label %2093

2088:                                             ; preds = %2083
  %2089 = landingpad { ptr, i32 }
          cleanup
  br label %2092

2090:                                             ; preds = %2084
  %2091 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #11
  br label %2092

2092:                                             ; preds = %2090, %2088
  %.pn1278 = phi { ptr, i32 } [ %2091, %2090 ], [ %2089, %2088 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #11
  br label %2093

2093:                                             ; preds = %2092, %2086
  %.pn1278.pn = phi { ptr, i32 } [ %.pn1278, %2092 ], [ %2087, %2086 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %258) #11
  br label %2095

2094:                                             ; preds = %2085, %2069
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %251) #11
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %251) #11
  br label %2097

2095:                                             ; preds = %2079, %2093, %2049, %2050, %2070, %2029
  %.pn1281.pn.pn.pn = phi { ptr, i32 } [ %2071, %2070 ], [ %2030, %2029 ], [ %2051, %2050 ], [ %.pn1274, %2049 ], [ %.pn1281.pn, %2079 ], [ %.pn1278.pn, %2093 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %251) #11
  br label %2096

2096:                                             ; preds = %2095, %2027
  %.pn1281.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1281.pn.pn.pn, %2095 ], [ %2028, %2027 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %251) #11
  br label %2144

2097:                                             ; preds = %2094, %1990
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %261) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %262) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull @.str.226, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %2098 unwind label %2115

2098:                                             ; preds = %2097
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %263) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %264) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull @.str.227, ptr noundef nonnull align 1 dereferenceable(1) %264)
          to label %2099 unwind label %2117

2099:                                             ; preds = %2098
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %265) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %266) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull @.str.228, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %2100 unwind label %2119

2100:                                             ; preds = %2099
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %267) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %268) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %268) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef nonnull @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %268)
          to label %2101 unwind label %2121

2101:                                             ; preds = %2100
  invoke void @_ZN6Assimp3FBX4Node6AddP70IJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_SB_SB_SB_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %247, ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef nonnull align 8 dereferenceable(32) %250)
          to label %2102 unwind label %2123

2102:                                             ; preds = %2101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %268) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %268) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %266) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %265) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %264) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %263) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %262) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %261) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(112) %247)
          to label %2103 unwind label %2025

2103:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %269) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %270) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull @.str.255, ptr noundef nonnull align 1 dereferenceable(1) %270)
          to label %2104 unwind label %2129

2104:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %271) #11
  store i32 0, ptr %271, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull align 4 dereferenceable(4) %271)
          to label %2105 unwind label %2131

2105:                                             ; preds = %2104
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %271) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %270) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %272) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %273) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef nonnull @.str.322, ptr noundef nonnull align 1 dereferenceable(1) %273)
          to label %2106 unwind label %2134

2106:                                             ; preds = %2105
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef nonnull align 8 dereferenceable(32) %250)
          to label %2107 unwind label %2136

2107:                                             ; preds = %2106
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %273) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %272) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %274) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %275) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %275) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef nonnull @.str.323, ptr noundef nonnull align 1 dereferenceable(1) %275)
          to label %2108 unwind label %2139

2108:                                             ; preds = %2107
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvRKS8_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef nonnull align 8 dereferenceable(32) %250)
          to label %2109 unwind label %2141

2109:                                             ; preds = %2108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %275) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %275) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %274) #11
  %2110 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2111 = trunc nuw i8 %2110 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %238, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2111, i32 noundef 1)
          to label %2112 unwind label %2025

2112:                                             ; preds = %2109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %250) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %247) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %247) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %238) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %238) #11
  %2113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #11
  %2114 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef nonnull align 8 dereferenceable(8) %237) #11
  br i1 %2114, label %1973, label %._crit_edge2032

2115:                                             ; preds = %2097
  %2116 = landingpad { ptr, i32 }
          cleanup
  br label %2128

2117:                                             ; preds = %2098
  %2118 = landingpad { ptr, i32 }
          cleanup
  br label %2127

2119:                                             ; preds = %2099
  %2120 = landingpad { ptr, i32 }
          cleanup
  br label %2126

2121:                                             ; preds = %2100
  %2122 = landingpad { ptr, i32 }
          cleanup
  br label %2125

2123:                                             ; preds = %2101
  %2124 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #11
  br label %2125

2125:                                             ; preds = %2123, %2121
  %.pn1287 = phi { ptr, i32 } [ %2124, %2123 ], [ %2122, %2121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %268) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %268) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #11
  br label %2126

2126:                                             ; preds = %2125, %2119
  %.pn1287.pn = phi { ptr, i32 } [ %.pn1287, %2125 ], [ %2120, %2119 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %266) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %265) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #11
  br label %2127

2127:                                             ; preds = %2126, %2117
  %.pn1287.pn.pn = phi { ptr, i32 } [ %.pn1287.pn, %2126 ], [ %2118, %2117 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %264) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %263) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #11
  br label %2128

2128:                                             ; preds = %2127, %2115
  %.pn1287.pn.pn.pn = phi { ptr, i32 } [ %.pn1287.pn.pn, %2127 ], [ %2116, %2115 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %262) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %261) #11
  br label %2144

2129:                                             ; preds = %2103
  %2130 = landingpad { ptr, i32 }
          cleanup
  br label %2133

2131:                                             ; preds = %2104
  %2132 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %271) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #11
  br label %2133

2133:                                             ; preds = %2131, %2129
  %.pn1292 = phi { ptr, i32 } [ %2132, %2131 ], [ %2130, %2129 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %270) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #11
  br label %2144

2134:                                             ; preds = %2105
  %2135 = landingpad { ptr, i32 }
          cleanup
  br label %2138

2136:                                             ; preds = %2106
  %2137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #11
  br label %2138

2138:                                             ; preds = %2136, %2134
  %.pn1294 = phi { ptr, i32 } [ %2137, %2136 ], [ %2135, %2134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %273) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %272) #11
  br label %2144

2139:                                             ; preds = %2107
  %2140 = landingpad { ptr, i32 }
          cleanup
  br label %2143

2141:                                             ; preds = %2108
  %2142 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #11
  br label %2143

2143:                                             ; preds = %2141, %2139
  %.pn1296 = phi { ptr, i32 } [ %2142, %2141 ], [ %2140, %2139 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %275) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %275) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %274) #11
  br label %2144

2144:                                             ; preds = %2143, %2138, %2133, %2128, %2096, %2025
  %.pn1298 = phi { ptr, i32 } [ %2026, %2025 ], [ %.pn1296, %2143 ], [ %.pn1294, %2138 ], [ %.pn1292, %2133 ], [ %.pn1287.pn.pn.pn, %2128 ], [ %.pn1281.pn.pn.pn.pn, %2096 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #11
  br label %2145

2145:                                             ; preds = %2144, %2023
  %.pn1298.pn = phi { ptr, i32 } [ %.pn1298, %2144 ], [ %2024, %2023 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %250) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %247) #11
  br label %2146

2146:                                             ; preds = %2145, %2022
  %.pn1298.pn.pn = phi { ptr, i32 } [ %.pn1298.pn, %2145 ], [ %.pn1269, %2022 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %247) #11
  br label %2147

2147:                                             ; preds = %2146, %2017, %2012
  %.pn1298.pn.pn.pn = phi { ptr, i32 } [ %.pn1298.pn.pn, %2146 ], [ %.pn1267, %2017 ], [ %.pn1264.pn, %2012 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #11
  br label %2148

2148:                                             ; preds = %2147, %2003
  %.pn1298.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1298.pn.pn.pn, %2147 ], [ %2004, %2003 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %238) #11
  br label %2149

2149:                                             ; preds = %2148, %2002
  %.pn1298.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1298.pn.pn.pn.pn, %2148 ], [ %.pn1262, %2002 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %238) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %236) #11
  br label %4073

2150:                                             ; preds = %._crit_edge2032
  %2151 = getelementptr inbounds i8, ptr %278, i64 40
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %280) #11
  store i32 2, ptr %280, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA14_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2151, ptr noundef nonnull align 4 dereferenceable(4) %280, ptr noundef nonnull align 1 dereferenceable(14) @.str.213)
          to label %2152 unwind label %2192

2152:                                             ; preds = %2150
  %2153 = getelementptr inbounds i8, ptr %278, i64 80
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %281) #11
  store i32 3, ptr %281, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA13_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2153, ptr noundef nonnull align 4 dereferenceable(4) %281, ptr noundef nonnull align 1 dereferenceable(13) @.str.56)
          to label %2154 unwind label %2194

2154:                                             ; preds = %2152
  %2155 = getelementptr inbounds i8, ptr %278, i64 120
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %282) #11
  store i32 4, ptr %282, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA14_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2155, ptr noundef nonnull align 4 dereferenceable(4) %282, ptr noundef nonnull align 1 dereferenceable(14) @.str.199)
          to label %2156 unwind label %2196

2156:                                             ; preds = %2154
  %2157 = getelementptr inbounds i8, ptr %278, i64 160
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %283) #11
  store i32 5, ptr %283, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA5_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2157, ptr noundef nonnull align 4 dereferenceable(4) %283, ptr noundef nonnull align 1 dereferenceable(5) @.str.204)
          to label %2158 unwind label %2198

2158:                                             ; preds = %2156
  %2159 = getelementptr inbounds i8, ptr %278, i64 200
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %284) #11
  store i32 6, ptr %284, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA10_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2159, ptr noundef nonnull align 4 dereferenceable(4) %284, ptr noundef nonnull align 1 dereferenceable(10) @.str.205)
          to label %2160 unwind label %2200

2160:                                             ; preds = %2158
  %2161 = getelementptr inbounds i8, ptr %278, i64 240
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %285) #11
  store i32 7, ptr %285, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA18_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2161, ptr noundef nonnull align 4 dereferenceable(4) %285, ptr noundef nonnull align 1 dereferenceable(18) @.str.215)
          to label %2162 unwind label %2202

2162:                                             ; preds = %2160
  %2163 = getelementptr inbounds i8, ptr %278, i64 280
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %286) #11
  store i32 8, ptr %286, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA17_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2163, ptr noundef nonnull align 4 dereferenceable(4) %286, ptr noundef nonnull align 1 dereferenceable(17) @.str.207)
          to label %2164 unwind label %2204

2164:                                             ; preds = %2162
  %2165 = getelementptr inbounds i8, ptr %278, i64 320
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %287) #11
  store i32 9, ptr %287, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA18_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2165, ptr noundef nonnull align 4 dereferenceable(4) %287, ptr noundef nonnull align 1 dereferenceable(18) @.str.209)
          to label %2166 unwind label %2206

2166:                                             ; preds = %2164
  %2167 = getelementptr inbounds i8, ptr %278, i64 360
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %288) #11
  store i32 11, ptr %288, align 4, !tbaa !103
  invoke void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEC2IS0_RA16_KcTnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %2167, ptr noundef nonnull align 4 dereferenceable(4) %288, ptr noundef nonnull align 1 dereferenceable(16) @.str.216)
          to label %2168 unwind label %2208

2168:                                             ; preds = %2166
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %289) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %290) #11
  call void @_ZNSaISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  invoke void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEEC2ESt16initializer_listISB_ERKS8_RKSC_(ptr noundef nonnull align 8 dereferenceable(48) %277, ptr nonnull %278, i64 10, ptr noundef nonnull align 1 dereferenceable(1) %289, ptr noundef nonnull align 1 dereferenceable(1) %290)
          to label %2169 unwind label %.loopexit1566.loopexit

2169:                                             ; preds = %2168
  call void @_ZNSt15__new_allocatorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %289) #11
  %2170 = getelementptr inbounds i8, ptr %278, i64 360
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2170) #11
  %2171 = getelementptr inbounds i8, ptr %278, i64 320
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2171) #11
  %2172 = getelementptr inbounds i8, ptr %278, i64 280
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2172) #11
  %2173 = getelementptr inbounds i8, ptr %278, i64 240
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2173) #11
  %2174 = getelementptr inbounds i8, ptr %278, i64 200
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2174) #11
  %2175 = getelementptr inbounds i8, ptr %278, i64 160
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2175) #11
  %2176 = getelementptr inbounds i8, ptr %278, i64 120
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2176) #11
  %2177 = getelementptr inbounds i8, ptr %278, i64 80
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2177) #11
  %2178 = getelementptr inbounds i8, ptr %278, i64 40
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2178) #11
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %278) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %288) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %287) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %286) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %285) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %284) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %283) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %282) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %281) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %280) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %279) #11
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %278) #11
  %2179 = load ptr, ptr %642, align 8, !tbaa !39
  %2180 = getelementptr inbounds i8, ptr %2179, i64 32
  %2181 = load i32, ptr %2180, align 8, !tbaa !44
  %.not2169 = icmp eq i32 %2181, 0
  br i1 %.not2169, label %.preheader1563, label %.lr.ph2036

.lr.ph2036:                                       ; preds = %2169
  %2182 = getelementptr inbounds i8, ptr %293, i64 16
  %2183 = getelementptr inbounds i8, ptr %0, i64 40
  %2184 = getelementptr inbounds i8, ptr %310, i64 16
  %2185 = getelementptr inbounds i8, ptr %310, i64 8
  %2186 = getelementptr inbounds i8, ptr %307, i64 16
  br label %2233

.preheader1563:                                   ; preds = %2241, %2169
  %2187 = phi ptr [ %2179, %2169 ], [ %2243, %2241 ]
  %2188 = getelementptr inbounds i8, ptr %2187, i64 16
  %2189 = load i32, ptr %2188, align 8, !tbaa !40
  %.not2170 = icmp eq i32 %2189, 0
  br i1 %.not2170, label %._crit_edge2047, label %.lr.ph2046

.lr.ph2046:                                       ; preds = %.preheader1563
  %2190 = getelementptr inbounds i8, ptr %0, i64 40
  %.sroa.2192.0..sroa_idx = getelementptr inbounds i8, ptr %381, i64 8
  %.sroa.2188.0..sroa_idx = getelementptr inbounds i8, ptr %385, i64 8
  br label %2565

.thread1521:                                      ; preds = %._crit_edge2032
  %2191 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %279) #11
  br label %.loopexit1565

2192:                                             ; preds = %2150
  %2193 = landingpad { ptr, i32 }
          cleanup
  br label %2228

2194:                                             ; preds = %2152
  %2195 = landingpad { ptr, i32 }
          cleanup
  br label %2227

2196:                                             ; preds = %2154
  %2197 = landingpad { ptr, i32 }
          cleanup
  br label %2226

2198:                                             ; preds = %2156
  %2199 = landingpad { ptr, i32 }
          cleanup
  br label %2225

2200:                                             ; preds = %2158
  %2201 = landingpad { ptr, i32 }
          cleanup
  br label %2224

2202:                                             ; preds = %2160
  %2203 = landingpad { ptr, i32 }
          cleanup
  br label %2223

2204:                                             ; preds = %2162
  %2205 = landingpad { ptr, i32 }
          cleanup
  br label %2222

2206:                                             ; preds = %2164
  %2207 = landingpad { ptr, i32 }
          cleanup
  br label %2221

2208:                                             ; preds = %2166
  %2209 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit1566

.loopexit1566.loopexit:                           ; preds = %2168
  %2210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %289) #11
  %2211 = getelementptr inbounds i8, ptr %278, i64 360
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2211) #11
  %2212 = getelementptr inbounds i8, ptr %278, i64 320
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2212) #11
  %2213 = getelementptr inbounds i8, ptr %278, i64 280
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2213) #11
  %2214 = getelementptr inbounds i8, ptr %278, i64 240
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2214) #11
  %2215 = getelementptr inbounds i8, ptr %278, i64 200
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2215) #11
  %2216 = getelementptr inbounds i8, ptr %278, i64 160
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2216) #11
  %2217 = getelementptr inbounds i8, ptr %278, i64 120
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2217) #11
  %2218 = getelementptr inbounds i8, ptr %278, i64 80
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2218) #11
  %2219 = getelementptr inbounds i8, ptr %278, i64 40
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2219) #11
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %278) #11
  br label %.loopexit1566

.loopexit1566:                                    ; preds = %.loopexit1566.loopexit, %2208
  %2220 = phi i1 [ false, %2208 ], [ true, %.loopexit1566.loopexit ]
  %.pn949 = phi { ptr, i32 } [ %2209, %2208 ], [ %2210, %.loopexit1566.loopexit ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %288) #11
  br label %2221

2221:                                             ; preds = %.loopexit1566, %2206
  %.1894 = phi i1 [ %2220, %.loopexit1566 ], [ false, %2206 ]
  %.0884 = phi ptr [ %2167, %.loopexit1566 ], [ %2165, %2206 ]
  %.pn949.pn = phi { ptr, i32 } [ %.pn949, %.loopexit1566 ], [ %2207, %2206 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %287) #11
  br label %2222

2222:                                             ; preds = %2221, %2204
  %.2895 = phi i1 [ %.1894, %2221 ], [ false, %2204 ]
  %.1885 = phi ptr [ %.0884, %2221 ], [ %2163, %2204 ]
  %.pn949.pn.pn = phi { ptr, i32 } [ %.pn949.pn, %2221 ], [ %2205, %2204 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %286) #11
  br label %2223

2223:                                             ; preds = %2222, %2202
  %.3896 = phi i1 [ %.2895, %2222 ], [ false, %2202 ]
  %.2886 = phi ptr [ %.1885, %2222 ], [ %2161, %2202 ]
  %.pn949.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn, %2222 ], [ %2203, %2202 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %285) #11
  br label %2224

2224:                                             ; preds = %2223, %2200
  %.4897 = phi i1 [ %.3896, %2223 ], [ false, %2200 ]
  %.3887 = phi ptr [ %.2886, %2223 ], [ %2159, %2200 ]
  %.pn949.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn, %2223 ], [ %2201, %2200 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %284) #11
  br label %2225

2225:                                             ; preds = %2224, %2198
  %.5898 = phi i1 [ %.4897, %2224 ], [ false, %2198 ]
  %.4888 = phi ptr [ %.3887, %2224 ], [ %2157, %2198 ]
  %.pn949.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn.pn, %2224 ], [ %2199, %2198 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %283) #11
  br label %2226

2226:                                             ; preds = %2225, %2196
  %.6899 = phi i1 [ %.5898, %2225 ], [ false, %2196 ]
  %.5889 = phi ptr [ %.4888, %2225 ], [ %2155, %2196 ]
  %.pn949.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn.pn.pn, %2225 ], [ %2197, %2196 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %282) #11
  br label %2227

2227:                                             ; preds = %2226, %2194
  %.7900 = phi i1 [ %.6899, %2226 ], [ false, %2194 ]
  %.6890 = phi ptr [ %.5889, %2226 ], [ %2153, %2194 ]
  %.pn949.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn.pn.pn.pn, %2226 ], [ %2195, %2194 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %281) #11
  br label %2228

2228:                                             ; preds = %2192, %2227
  %.8901 = phi i1 [ %.7900, %2227 ], [ false, %2192 ]
  %.7891 = phi ptr [ %.6890, %2227 ], [ %2151, %2192 ]
  %.pn949.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn949.pn.pn.pn.pn.pn.pn.pn, %2227 ], [ %2193, %2192 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %280) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %279) #11
  %2229 = icmp eq ptr %278, %.7891
  %or.cond = select i1 %.8901, i1 true, i1 %2229
  br i1 %or.cond, label %.loopexit1565, label %.preheader1564

.preheader1564:                                   ; preds = %2228, %.preheader1564
  %2230 = phi ptr [ %2231, %.preheader1564 ], [ %.7891, %2228 ]
  %2231 = getelementptr inbounds i8, ptr %2230, i64 -40
  call void @_ZNSt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2231) #11
  %2232 = icmp eq ptr %2231, %278
  br i1 %2232, label %.loopexit1565, label %.preheader1564

.loopexit1565:                                    ; preds = %.preheader1564, %.thread1521, %2228
  %.pn949.pn.pn.pn.pn.pn.pn.pn.pn.pn1526 = phi { ptr, i32 } [ %2191, %.thread1521 ], [ %.pn949.pn.pn.pn.pn.pn.pn.pn.pn, %2228 ], [ %.pn949.pn.pn.pn.pn.pn.pn.pn.pn, %.preheader1564 ]
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %278) #11
  br label %4072

2233:                                             ; preds = %.lr.ph2036, %2241
  %2234 = phi ptr [ %2179, %.lr.ph2036 ], [ %2243, %2241 ]
  %.09052034 = phi i64 [ 0, %.lr.ph2036 ], [ %2242, %2241 ]
  %2235 = getelementptr inbounds i8, ptr %2234, i64 40
  %2236 = load ptr, ptr %2235, align 8, !tbaa !94
  %2237 = getelementptr inbounds ptr, ptr %2236, i64 %.09052034
  %2238 = load ptr, ptr %2237, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %291) #11
  %2239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %647, i64 noundef %.09052034) #11
  %2240 = load i64, ptr %2239, align 8, !tbaa !47
  store i64 %2240, ptr %291, align 8, !tbaa !47
  br label %2248

2241:                                             ; preds = %2456
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %291) #11
  %2242 = add nuw nsw i64 %.09052034, 1
  %2243 = load ptr, ptr %642, align 8, !tbaa !39
  %2244 = getelementptr inbounds i8, ptr %2243, i64 32
  %2245 = load i32, ptr %2244, align 8, !tbaa !44
  %2246 = zext i32 %2245 to i64
  %2247 = icmp ult i64 %2242, %2246
  br i1 %2247, label %2233, label %.preheader1563, !llvm.loop !110

2248:                                             ; preds = %2233, %2456
  %.09072033 = phi i64 [ 1, %2233 ], [ %2457, %2456 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %292) #11
  %2249 = trunc nuw nsw i64 %.09072033 to i32
  store i32 %2249, ptr %292, align 4, !tbaa !103
  %2250 = invoke noundef i32 @_ZNK10aiMaterial15GetTextureCountE13aiTextureType(ptr noundef nonnull align 8 dereferenceable(16) %2238, i32 noundef %2249)
          to label %2251 unwind label %2252

2251:                                             ; preds = %2248
  switch i32 %2250, label %2254 [
    i32 0, label %2456
    i32 1, label %2281
  ]

2252:                                             ; preds = %2248
  %2253 = landingpad { ptr, i32 }
          cleanup
  br label %2562

2254:                                             ; preds = %2251
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %293) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %293)
          to label %2255 unwind label %2270

2255:                                             ; preds = %2254
  %2256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2182, ptr noundef nonnull @.str.324)
          to label %2257 unwind label %2272

2257:                                             ; preds = %2255
  %2258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2182, ptr noundef nonnull @.str.325)
          to label %2259 unwind label %2272

2259:                                             ; preds = %2257
  %2260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2258, i64 noundef %.09072033)
          to label %2261 unwind label %2272

2261:                                             ; preds = %2259
  %2262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2182, ptr noundef nonnull @.str.326)
          to label %2263 unwind label %2272

2263:                                             ; preds = %2261
  %2264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2262, i64 noundef %.09052034)
          to label %2265 unwind label %2272

2265:                                             ; preds = %2263
  %2266 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %2267 unwind label %2272

2267:                                             ; preds = %2265
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %294) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %294, ptr noundef nonnull align 8 dereferenceable(128) %293)
          to label %2268 unwind label %2274

2268:                                             ; preds = %2267
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %2266, ptr noundef nonnull align 8 dereferenceable(32) %294)
          to label %2269 unwind label %2276

2269:                                             ; preds = %2268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #11
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %293) #11
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %293) #11
  br label %2281

2270:                                             ; preds = %2254
  %2271 = landingpad { ptr, i32 }
          cleanup
  br label %2280

2272:                                             ; preds = %2265, %2263, %2261, %2259, %2257, %2255
  %2273 = landingpad { ptr, i32 }
          cleanup
  br label %2279

2274:                                             ; preds = %2267
  %2275 = landingpad { ptr, i32 }
          cleanup
  br label %2278

2276:                                             ; preds = %2268
  %2277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #11
  br label %2278

2278:                                             ; preds = %2276, %2274
  %.pn1196 = phi { ptr, i32 } [ %2277, %2276 ], [ %2275, %2274 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #11
  br label %2279

2279:                                             ; preds = %2278, %2272
  %.pn1196.pn = phi { ptr, i32 } [ %.pn1196, %2278 ], [ %2273, %2272 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %293) #11
  br label %2280

2280:                                             ; preds = %2279, %2270
  %.pn1196.pn.pn = phi { ptr, i32 } [ %.pn1196.pn, %2279 ], [ %2271, %2270 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %293) #11
  br label %2562

2281:                                             ; preds = %2251, %2269
  call void @llvm.lifetime.start.p0(i64 1028, ptr nonnull %295) #11
  call void @_ZN8aiStringC2Ev(ptr noundef nonnull align 4 dereferenceable(1028) %295) #11
  %2282 = load i32, ptr %292, align 4, !tbaa !103
  %2283 = invoke noundef i32 @_ZNK10aiMaterial10GetTextureE13aiTextureTypejP8aiStringP16aiTextureMappingPjPfP11aiTextureOpP16aiTextureMapMode(ptr noundef nonnull align 8 dereferenceable(16) %2238, i32 noundef %2282, i32 noundef 0, ptr noundef nonnull %295, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null)
          to label %2284 unwind label %2303

2284:                                             ; preds = %2281
  %.not1200 = icmp eq i32 %2283, 0
  br i1 %.not1200, label %2315, label %2285

2285:                                             ; preds = %2284
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %296) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %296)
          to label %2286 unwind label %2305

2286:                                             ; preds = %2285
  %2287 = getelementptr inbounds i8, ptr %296, i64 16
  %2288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2287, ptr noundef nonnull @.str.327)
          to label %2289 unwind label %2307

2289:                                             ; preds = %2286
  %2290 = load i32, ptr %292, align 4, !tbaa !103
  %2291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2288, i32 noundef %2290)
          to label %2292 unwind label %2307

2292:                                             ; preds = %2289
  %2293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2287, ptr noundef nonnull @.str.328)
          to label %2294 unwind label %2307

2294:                                             ; preds = %2292
  %2295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2293, i64 noundef %.09052034)
          to label %2296 unwind label %2307

2296:                                             ; preds = %2294
  %2297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2287, ptr noundef nonnull @.str.329)
          to label %2298 unwind label %2307

2298:                                             ; preds = %2296
  %2299 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %297, ptr noundef nonnull align 8 dereferenceable(128) %296)
          to label %2300 unwind label %.thread1527

2300:                                             ; preds = %2298
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %2299, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %2302 unwind label %.thread1531

.thread1531:                                      ; preds = %2300
  %2301 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #11
  br label %2312

2302:                                             ; preds = %2300
  invoke void @__cxa_throw(ptr nonnull %2299, ptr nonnull @_ZTI17DeadlyExportError, ptr nonnull @_ZNSt13runtime_errorD2Ev) #12
          to label %4079 unwind label %2310

2303:                                             ; preds = %2281
  %2304 = landingpad { ptr, i32 }
          cleanup
  br label %2561

2305:                                             ; preds = %2285
  %2306 = landingpad { ptr, i32 }
          cleanup
  br label %2314

2307:                                             ; preds = %2296, %2294, %2292, %2289, %2286
  %2308 = landingpad { ptr, i32 }
          cleanup
  br label %2313

.thread1527:                                      ; preds = %2298
  %2309 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #11
  br label %2312

2310:                                             ; preds = %2302
  %2311 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #11
  br label %2313

2312:                                             ; preds = %.thread1531, %.thread1527
  %.pn12541530 = phi { ptr, i32 } [ %2309, %.thread1527 ], [ %2301, %.thread1531 ]
  call void @__cxa_free_exception(ptr %2299) #11
  br label %2313

2313:                                             ; preds = %2310, %2312, %2307
  %.pn1254.pn = phi { ptr, i32 } [ %.pn12541530, %2312 ], [ %2311, %2310 ], [ %2308, %2307 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %296) #11
  br label %2314

2314:                                             ; preds = %2313, %2305
  %.pn1254.pn.pn = phi { ptr, i32 } [ %.pn1254.pn, %2313 ], [ %2306, %2305 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %296) #11
  br label %2561

2315:                                             ; preds = %2284
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %298) #11
  %2316 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %295)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %299) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef %2316, ptr noundef nonnull align 1 dereferenceable(1) %299)
          to label %2317 unwind label %2345

2317:                                             ; preds = %2315
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %299) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %300) #11
  %2318 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE4findERS9_(ptr noundef nonnull align 8 dereferenceable(48) %230, ptr noundef nonnull align 8 dereferenceable(32) %298)
          to label %2319 unwind label %2347

2319:                                             ; preds = %2317
  store ptr %2318, ptr %300, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %301) #11
  %2320 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  store ptr %2320, ptr %301, align 8
  %2321 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEESB_(ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 8 dereferenceable(8) %301) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #11
  br i1 %2321, label %2322, label %2359

2322:                                             ; preds = %2319
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %302) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %302)
          to label %2323 unwind label %2349

2323:                                             ; preds = %2322
  %2324 = getelementptr inbounds i8, ptr %302, i64 16
  %2325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2324, ptr noundef nonnull @.str.330)
          to label %2326 unwind label %2351

2326:                                             ; preds = %2323
  %2327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2324, ptr noundef nonnull @.str.331)
          to label %2328 unwind label %2351

2328:                                             ; preds = %2326
  %2329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %2327, ptr noundef nonnull align 8 dereferenceable(32) %298)
          to label %2330 unwind label %2351

2330:                                             ; preds = %2328
  %2331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2329, ptr noundef nonnull @.str.332)
          to label %2332 unwind label %2351

2332:                                             ; preds = %2330
  %2333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2324, ptr noundef nonnull @.str.333)
          to label %2334 unwind label %2351

2334:                                             ; preds = %2332
  %2335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2333, i64 noundef %.09072033)
          to label %2336 unwind label %2351

2336:                                             ; preds = %2334
  %2337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2335, ptr noundef nonnull @.str.334)
          to label %2338 unwind label %2351

2338:                                             ; preds = %2336
  %2339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2337, i64 noundef %.09052034)
          to label %2340 unwind label %2351

2340:                                             ; preds = %2338
  %2341 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %303) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %303, ptr noundef nonnull align 8 dereferenceable(128) %302)
          to label %2342 unwind label %.thread1533

2342:                                             ; preds = %2340
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %2341, ptr noundef nonnull align 8 dereferenceable(32) %303)
          to label %2344 unwind label %.thread1537

.thread1537:                                      ; preds = %2342
  %2343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #11
  br label %2356

2344:                                             ; preds = %2342
  invoke void @__cxa_throw(ptr nonnull %2341, ptr nonnull @_ZTI17DeadlyExportError, ptr nonnull @_ZNSt13runtime_errorD2Ev) #12
          to label %4079 unwind label %2354

2345:                                             ; preds = %2315
  %2346 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %299) #11
  br label %2560

2347:                                             ; preds = %2317
  %2348 = landingpad { ptr, i32 }
          cleanup
  br label %2559

2349:                                             ; preds = %2322
  %2350 = landingpad { ptr, i32 }
          cleanup
  br label %2358

2351:                                             ; preds = %2338, %2336, %2334, %2332, %2330, %2328, %2326, %2323
  %2352 = landingpad { ptr, i32 }
          cleanup
  br label %2357

.thread1533:                                      ; preds = %2340
  %2353 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #11
  br label %2356

2354:                                             ; preds = %2344
  %2355 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #11
  br label %2357

2356:                                             ; preds = %.thread1537, %.thread1533
  %.pn12481536 = phi { ptr, i32 } [ %2353, %.thread1533 ], [ %2343, %.thread1537 ]
  call void @__cxa_free_exception(ptr %2341) #11
  br label %2357

2357:                                             ; preds = %2354, %2356, %2351
  %.pn1248.pn = phi { ptr, i32 } [ %.pn12481536, %2356 ], [ %2355, %2354 ], [ %2352, %2351 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %302) #11
  br label %2358

2358:                                             ; preds = %2357, %2349
  %.pn1248.pn.pn = phi { ptr, i32 } [ %.pn1248.pn, %2357 ], [ %2350, %2349 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %302) #11
  br label %2559

2359:                                             ; preds = %2319
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %304) #11
  %2360 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %300) #11
  %2361 = getelementptr inbounds i8, ptr %2360, i64 32
  %2362 = load i64, ptr %2361, align 8, !tbaa !111
  store i64 %2362, ptr %304, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %305) #11
  %2363 = invoke ptr @_ZNKSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE4findERSA_(ptr noundef nonnull align 8 dereferenceable(48) %277, ptr noundef nonnull align 4 dereferenceable(4) %292)
          to label %2364 unwind label %2383

2364:                                             ; preds = %2359
  store ptr %2363, ptr %305, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %306) #11
  %2365 = call ptr @_ZNKSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %277) #11
  store ptr %2365, ptr %306, align 8
  %2366 = call noundef zeroext i1 @_ZSteqRKSt23_Rb_tree_const_iteratorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESC_(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull align 8 dereferenceable(8) %306) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %306) #11
  br i1 %2366, label %2367, label %2396

2367:                                             ; preds = %2364
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %307) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %307)
          to label %2368 unwind label %2385

2368:                                             ; preds = %2367
  %2369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2186, ptr noundef nonnull @.str.335)
          to label %2370 unwind label %2387

2370:                                             ; preds = %2368
  %2371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2369, i64 noundef %.09072033)
          to label %2372 unwind label %2387

2372:                                             ; preds = %2370
  %2373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2186, ptr noundef nonnull @.str.328)
          to label %2374 unwind label %2387

2374:                                             ; preds = %2372
  %2375 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %2373, i64 noundef %.09052034)
          to label %2376 unwind label %2387

2376:                                             ; preds = %2374
  %2377 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2186, ptr noundef nonnull @.str.336)
          to label %2378 unwind label %2387

2378:                                             ; preds = %2376
  %2379 = invoke noundef ptr @_ZN6Assimp13DefaultLogger3getEv()
          to label %2380 unwind label %2387

2380:                                             ; preds = %2378
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %308) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %308, ptr noundef nonnull align 8 dereferenceable(128) %307)
          to label %2381 unwind label %2389

2381:                                             ; preds = %2380
  invoke void @_ZN6Assimp6Logger4warnIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 8 dereferenceable(12) %2379, ptr noundef nonnull align 8 dereferenceable(32) %308)
          to label %2382 unwind label %2391

2382:                                             ; preds = %2381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #11
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %307) #11
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %307) #11
  br label %2455

2383:                                             ; preds = %2359
  %2384 = landingpad { ptr, i32 }
          cleanup
  br label %2558

2385:                                             ; preds = %2367
  %2386 = landingpad { ptr, i32 }
          cleanup
  br label %2395

2387:                                             ; preds = %2378, %2376, %2374, %2372, %2370, %2368
  %2388 = landingpad { ptr, i32 }
          cleanup
  br label %2394

2389:                                             ; preds = %2380
  %2390 = landingpad { ptr, i32 }
          cleanup
  br label %2393

2391:                                             ; preds = %2381
  %2392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #11
  br label %2393

2393:                                             ; preds = %2391, %2389
  %.pn1243 = phi { ptr, i32 } [ %2392, %2391 ], [ %2390, %2389 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #11
  br label %2394

2394:                                             ; preds = %2393, %2387
  %.pn1243.pn = phi { ptr, i32 } [ %.pn1243, %2393 ], [ %2388, %2387 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %307) #11
  br label %2395

2395:                                             ; preds = %2394, %2385
  %.pn1243.pn.pn = phi { ptr, i32 } [ %.pn1243.pn, %2394 ], [ %2386, %2385 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %307) #11
  br label %2558

2396:                                             ; preds = %2364
  %2397 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIK13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %305) #11
  %2398 = getelementptr inbounds i8, ptr %2397, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %309) #11
  %2399 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %2399, ptr %309, align 8, !tbaa !47
  %2400 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %2183, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.338, ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(32) %2398)
          to label %2401 unwind label %2458

2401:                                             ; preds = %2396
  %2402 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlSC_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %2183, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef nonnull align 8 dereferenceable(8) %309)
          to label %2403 unwind label %2458

2403:                                             ; preds = %2401
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %310) #11
  call void @_ZN13aiUVTransformC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %310) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %311) #11
  store i32 20, ptr %311, align 4, !tbaa !48
  %2404 = invoke i32 @aiGetMaterialFloatArray(ptr noundef nonnull %2238, ptr noundef nonnull @.str.340, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %310, ptr noundef nonnull %311)
          to label %2405 unwind label %2460

2405:                                             ; preds = %2403
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %312) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %313) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %314) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull @.str.237, ptr noundef nonnull align 1 dereferenceable(1) %314)
          to label %2406 unwind label %2462

2406:                                             ; preds = %2405
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %313)
          to label %2407 unwind label %2464

2407:                                             ; preds = %2406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %314) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %315) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %316) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %316, ptr noundef nonnull @.str.67, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2408 unwind label %2467

2408:                                             ; preds = %2407
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.237)
          to label %2409 unwind label %2469

2409:                                             ; preds = %2408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #11
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %2410 unwind label %2472

2410:                                             ; preds = %2409
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %317) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %318) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %2411 unwind label %2474

2411:                                             ; preds = %2410
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA17_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 1 dereferenceable(17) @.str.341)
          to label %2412 unwind label %2476

2412:                                             ; preds = %2411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %317) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %319) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %320) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %2413 unwind label %2479

2413:                                             ; preds = %2412
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %321) #11
  store i32 202, ptr %321, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull align 4 dereferenceable(4) %321)
          to label %2414 unwind label %2481

2414:                                             ; preds = %2413
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %321) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %320) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %322) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %323) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull @.str.342, ptr noundef nonnull align 1 dereferenceable(1) %323)
          to label %2415 unwind label %2484

2415:                                             ; preds = %2414
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef nonnull align 8 dereferenceable(32) %315)
          to label %2416 unwind label %2486

2416:                                             ; preds = %2415
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %324) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %325) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %326) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %326)
          to label %2417 unwind label %2489

2417:                                             ; preds = %2416
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %325)
          to label %2418 unwind label %2491

2418:                                             ; preds = %2417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %326) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %325) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %328) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull @.str.246, ptr noundef nonnull align 1 dereferenceable(1) %328)
          to label %2419 unwind label %2494

2419:                                             ; preds = %2418
  %2420 = call noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %310, i32 noundef 0)
  %2421 = fpext float %2420 to double
  %2422 = call noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %310, i32 noundef 1)
  %2423 = fpext float %2422 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %327, double noundef %2421, double noundef %2423, double noundef 0.000000e+00)
          to label %2424 unwind label %2496

2424:                                             ; preds = %2419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %328) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %330) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull @.str.247, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %2425 unwind label %2499

2425:                                             ; preds = %2424
  %2426 = load float, ptr %2184, align 4, !tbaa !115
  %2427 = fpext float %2426 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %329, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef %2427)
          to label %2428 unwind label %2501

2428:                                             ; preds = %2425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %331) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %332) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull @.str.248, ptr noundef nonnull align 1 dereferenceable(1) %332)
          to label %2429 unwind label %2504

2429:                                             ; preds = %2428
  %2430 = call noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %2185, i32 noundef 0)
  %2431 = fpext float %2430 to double
  %2432 = call noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8) %2185, i32 noundef 1)
  %2433 = fpext float %2432 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %331, double noundef %2431, double noundef %2433, double noundef 0.000000e+00)
          to label %2434 unwind label %2506

2434:                                             ; preds = %2429
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %332) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %333) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %334) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull @.str.251, ptr noundef nonnull align 1 dereferenceable(1) %334)
          to label %2435 unwind label %2509

2435:                                             ; preds = %2434
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %333, i32 noundef 0)
          to label %2436 unwind label %2511

2436:                                             ; preds = %2435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %334) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %335) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %336) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef nonnull @.str.254, ptr noundef nonnull align 1 dereferenceable(1) %336)
          to label %2437 unwind label %2514

2437:                                             ; preds = %2436
  invoke void @_ZN6Assimp3FBX4Node10AddP70boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(112) %324, ptr noundef nonnull align 8 dereferenceable(32) %335, i1 noundef zeroext true)
          to label %2438 unwind label %2516

2438:                                             ; preds = %2437
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %336) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(112) %324)
          to label %2439 unwind label %2519

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %337) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %338) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull @.str.343, ptr noundef nonnull align 1 dereferenceable(1) %338)
          to label %2440 unwind label %2521

2440:                                             ; preds = %2439
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull align 8 dereferenceable(32) %298)
          to label %2441 unwind label %2523

2441:                                             ; preds = %2440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %338) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %339) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %340) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull @.str.323, ptr noundef nonnull align 1 dereferenceable(1) %340)
          to label %2442 unwind label %2526

2442:                                             ; preds = %2441
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvSA_DpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(32) %298)
          to label %2443 unwind label %2528

2443:                                             ; preds = %2442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %340) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %341) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %342) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %342) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull @.str.344, ptr noundef nonnull align 1 dereferenceable(1) %342)
          to label %2444 unwind label %2531

2444:                                             ; preds = %2443
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %343) #11
  store double 0.000000e+00, ptr %343, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %344) #11
  store double 0.000000e+00, ptr %344, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJddEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull align 8 dereferenceable(8) %344)
          to label %2445 unwind label %2533

2445:                                             ; preds = %2444
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %344) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %343) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %342) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %342) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %346) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull @.str.345, ptr noundef nonnull align 1 dereferenceable(1) %346)
          to label %2446 unwind label %2536

2446:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %347) #11
  store double 1.000000e+00, ptr %347, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %348) #11
  store double 1.000000e+00, ptr %348, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJddEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(8) %347, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %2447 unwind label %2538

2447:                                             ; preds = %2446
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %346) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %349) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %350) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull @.str.346, ptr noundef nonnull align 1 dereferenceable(1) %350)
          to label %2448 unwind label %2541

2448:                                             ; preds = %2447
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA5_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull align 1 dereferenceable(5) @.str.347)
          to label %2449 unwind label %2543

2449:                                             ; preds = %2448
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %349) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %352) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull @.str.348, ptr noundef nonnull align 1 dereferenceable(1) %352)
          to label %2450 unwind label %2546

2450:                                             ; preds = %2449
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %353) #11
  store i32 0, ptr %353, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %354) #11
  store i32 0, ptr %354, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %355) #11
  store i32 0, ptr %355, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %356) #11
  store i32 0, ptr %356, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiiiiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 4 dereferenceable(4) %353, ptr noundef nonnull align 4 dereferenceable(4) %354, ptr noundef nonnull align 4 dereferenceable(4) %355, ptr noundef nonnull align 4 dereferenceable(4) %356)
          to label %2451 unwind label %2548

2451:                                             ; preds = %2450
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %356) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %355) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %354) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %353) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %352) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  %2452 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2453 = trunc nuw i8 %2452 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %312, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2453, i32 noundef 1)
          to label %2454 unwind label %2519

2454:                                             ; preds = %2451
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %324) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %324) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %312) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %312) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %311) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %310) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #11
  br label %2455

2455:                                             ; preds = %2454, %2382
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #11
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %295) #11
  br label %2456

2456:                                             ; preds = %2251, %2455
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %292) #11
  %2457 = add nuw nsw i64 %.09072033, 1
  %exitcond2351.not = icmp eq i64 %2457, 18
  br i1 %exitcond2351.not, label %2241, label %2248, !llvm.loop !118

2458:                                             ; preds = %2401, %2396
  %2459 = landingpad { ptr, i32 }
          cleanup
  br label %2557

2460:                                             ; preds = %2403
  %2461 = landingpad { ptr, i32 }
          cleanup
  br label %2556

2462:                                             ; preds = %2405
  %2463 = landingpad { ptr, i32 }
          cleanup
  br label %2466

2464:                                             ; preds = %2406
  %2465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #11
  br label %2466

2466:                                             ; preds = %2464, %2462
  %.pn1201 = phi { ptr, i32 } [ %2465, %2464 ], [ %2463, %2462 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %314) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #11
  br label %2555

2467:                                             ; preds = %2407
  %2468 = landingpad { ptr, i32 }
          cleanup
  br label %2471

2469:                                             ; preds = %2408
  %2470 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #11
  br label %2471

2471:                                             ; preds = %2469, %2467
  %.pn1203 = phi { ptr, i32 } [ %2470, %2469 ], [ %2468, %2467 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #11
  br label %2554

2472:                                             ; preds = %2409
  %2473 = landingpad { ptr, i32 }
          cleanup
  br label %2553

2474:                                             ; preds = %2410
  %2475 = landingpad { ptr, i32 }
          cleanup
  br label %2478

2476:                                             ; preds = %2411
  %2477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #11
  br label %2478

2478:                                             ; preds = %2476, %2474
  %.pn1205 = phi { ptr, i32 } [ %2477, %2476 ], [ %2475, %2474 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %318) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %317) #11
  br label %2553

2479:                                             ; preds = %2412
  %2480 = landingpad { ptr, i32 }
          cleanup
  br label %2483

2481:                                             ; preds = %2413
  %2482 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %321) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #11
  br label %2483

2483:                                             ; preds = %2481, %2479
  %.pn1207 = phi { ptr, i32 } [ %2482, %2481 ], [ %2480, %2479 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %320) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #11
  br label %2553

2484:                                             ; preds = %2414
  %2485 = landingpad { ptr, i32 }
          cleanup
  br label %2488

2486:                                             ; preds = %2415
  %2487 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #11
  br label %2488

2488:                                             ; preds = %2486, %2484
  %.pn1209 = phi { ptr, i32 } [ %2487, %2486 ], [ %2485, %2484 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #11
  br label %2553

2489:                                             ; preds = %2416
  %2490 = landingpad { ptr, i32 }
          cleanup
  br label %2493

2491:                                             ; preds = %2417
  %2492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #11
  br label %2493

2493:                                             ; preds = %2491, %2489
  %.pn1211 = phi { ptr, i32 } [ %2492, %2491 ], [ %2490, %2489 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %326) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %325) #11
  br label %2552

2494:                                             ; preds = %2418
  %2495 = landingpad { ptr, i32 }
          cleanup
  br label %2498

2496:                                             ; preds = %2419
  %2497 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #11
  br label %2498

2498:                                             ; preds = %2496, %2494
  %.pn1213 = phi { ptr, i32 } [ %2497, %2496 ], [ %2495, %2494 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %328) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %328) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #11
  br label %2551

2499:                                             ; preds = %2424
  %2500 = landingpad { ptr, i32 }
          cleanup
  br label %2503

2501:                                             ; preds = %2425
  %2502 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #11
  br label %2503

2503:                                             ; preds = %2501, %2499
  %.pn1215 = phi { ptr, i32 } [ %2502, %2501 ], [ %2500, %2499 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %330) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #11
  br label %2551

2504:                                             ; preds = %2428
  %2505 = landingpad { ptr, i32 }
          cleanup
  br label %2508

2506:                                             ; preds = %2429
  %2507 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #11
  br label %2508

2508:                                             ; preds = %2506, %2504
  %.pn1217 = phi { ptr, i32 } [ %2507, %2506 ], [ %2505, %2504 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %332) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %332) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #11
  br label %2551

2509:                                             ; preds = %2434
  %2510 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2511:                                             ; preds = %2435
  %2512 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #11
  br label %2513

2513:                                             ; preds = %2511, %2509
  %.pn1219 = phi { ptr, i32 } [ %2512, %2511 ], [ %2510, %2509 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %334) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %334) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #11
  br label %2551

2514:                                             ; preds = %2436
  %2515 = landingpad { ptr, i32 }
          cleanup
  br label %2518

2516:                                             ; preds = %2437
  %2517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #11
  br label %2518

2518:                                             ; preds = %2516, %2514
  %.pn1221 = phi { ptr, i32 } [ %2517, %2516 ], [ %2515, %2514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %336) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #11
  br label %2551

2519:                                             ; preds = %2451, %2438
  %2520 = landingpad { ptr, i32 }
          cleanup
  br label %2551

2521:                                             ; preds = %2439
  %2522 = landingpad { ptr, i32 }
          cleanup
  br label %2525

2523:                                             ; preds = %2440
  %2524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #11
  br label %2525

2525:                                             ; preds = %2523, %2521
  %.pn1223 = phi { ptr, i32 } [ %2524, %2523 ], [ %2522, %2521 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %338) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #11
  br label %2551

2526:                                             ; preds = %2441
  %2527 = landingpad { ptr, i32 }
          cleanup
  br label %2530

2528:                                             ; preds = %2442
  %2529 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #11
  br label %2530

2530:                                             ; preds = %2528, %2526
  %.pn1225 = phi { ptr, i32 } [ %2529, %2528 ], [ %2527, %2526 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %340) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #11
  br label %2551

2531:                                             ; preds = %2443
  %2532 = landingpad { ptr, i32 }
          cleanup
  br label %2535

2533:                                             ; preds = %2444
  %2534 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %344) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %343) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #11
  br label %2535

2535:                                             ; preds = %2533, %2531
  %.pn1227 = phi { ptr, i32 } [ %2534, %2533 ], [ %2532, %2531 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %342) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %342) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %341) #11
  br label %2551

2536:                                             ; preds = %2445
  %2537 = landingpad { ptr, i32 }
          cleanup
  br label %2540

2538:                                             ; preds = %2446
  %2539 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %347) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #11
  br label %2540

2540:                                             ; preds = %2538, %2536
  %.pn1229 = phi { ptr, i32 } [ %2539, %2538 ], [ %2537, %2536 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %346) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #11
  br label %2551

2541:                                             ; preds = %2447
  %2542 = landingpad { ptr, i32 }
          cleanup
  br label %2545

2543:                                             ; preds = %2448
  %2544 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #11
  br label %2545

2545:                                             ; preds = %2543, %2541
  %.pn1231 = phi { ptr, i32 } [ %2544, %2543 ], [ %2542, %2541 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %350) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %349) #11
  br label %2551

2546:                                             ; preds = %2449
  %2547 = landingpad { ptr, i32 }
          cleanup
  br label %2550

2548:                                             ; preds = %2450
  %2549 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %356) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %355) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %354) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %353) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #11
  br label %2550

2550:                                             ; preds = %2548, %2546
  %.pn1233 = phi { ptr, i32 } [ %2549, %2548 ], [ %2547, %2546 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %352) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #11
  br label %2551

2551:                                             ; preds = %2550, %2545, %2540, %2535, %2530, %2525, %2519, %2518, %2513, %2508, %2503, %2498
  %.pn1235 = phi { ptr, i32 } [ %2520, %2519 ], [ %.pn1233, %2550 ], [ %.pn1231, %2545 ], [ %.pn1229, %2540 ], [ %.pn1227, %2535 ], [ %.pn1225, %2530 ], [ %.pn1223, %2525 ], [ %.pn1221, %2518 ], [ %.pn1219, %2513 ], [ %.pn1217, %2508 ], [ %.pn1215, %2503 ], [ %.pn1213, %2498 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %324) #11
  br label %2552

2552:                                             ; preds = %2551, %2493
  %.pn1235.pn = phi { ptr, i32 } [ %.pn1235, %2551 ], [ %.pn1211, %2493 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %324) #11
  br label %2553

2553:                                             ; preds = %2552, %2488, %2483, %2478, %2472
  %.pn1235.pn.pn = phi { ptr, i32 } [ %.pn1235.pn, %2552 ], [ %.pn1209, %2488 ], [ %.pn1207, %2483 ], [ %.pn1205, %2478 ], [ %2473, %2472 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #11
  br label %2554

2554:                                             ; preds = %2553, %2471
  %.pn1235.pn.pn.pn = phi { ptr, i32 } [ %.pn1235.pn.pn, %2553 ], [ %.pn1203, %2471 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %312) #11
  br label %2555

2555:                                             ; preds = %2554, %2466
  %.pn1235.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1235.pn.pn.pn, %2554 ], [ %.pn1201, %2466 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %312) #11
  br label %2556

2556:                                             ; preds = %2555, %2460
  %.pn1235.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1235.pn.pn.pn.pn, %2555 ], [ %2461, %2460 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %311) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %310) #11
  br label %2557

2557:                                             ; preds = %2556, %2458
  %.pn1235.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1235.pn.pn.pn.pn.pn, %2556 ], [ %2459, %2458 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %309) #11
  br label %2558

2558:                                             ; preds = %2557, %2395, %2383
  %.pn1243.pn.pn.pn = phi { ptr, i32 } [ %.pn1243.pn.pn, %2395 ], [ %.pn1235.pn.pn.pn.pn.pn.pn, %2557 ], [ %2384, %2383 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #11
  br label %2559

2559:                                             ; preds = %2558, %2358, %2347
  %.pn1248.pn.pn.pn = phi { ptr, i32 } [ %.pn1248.pn.pn, %2358 ], [ %.pn1243.pn.pn.pn, %2558 ], [ %2348, %2347 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #11
  br label %2560

2560:                                             ; preds = %2559, %2345
  %.pn1248.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1248.pn.pn.pn, %2559 ], [ %2346, %2345 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #11
  br label %2561

2561:                                             ; preds = %2560, %2314, %2303
  %.pn1254.pn.pn.pn = phi { ptr, i32 } [ %.pn1254.pn.pn, %2314 ], [ %.pn1248.pn.pn.pn.pn, %2560 ], [ %2304, %2303 ]
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %295) #11
  br label %2562

2562:                                             ; preds = %2561, %2280, %2252
  %.pn1254.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1254.pn.pn.pn, %2561 ], [ %.pn1196.pn.pn, %2280 ], [ %2253, %2252 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %292) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %291) #11
  br label %4071

._crit_edge2047:                                  ; preds = %2870, %.preheader1563
  %2563 = phi i32 [ 0, %.preheader1563 ], [ %2874, %2870 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %416) #11
  %2564 = zext i32 %2563 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %417) #11
  call void @_ZNSaISt6vectorIPK6aiNodeSaIS2_EEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #11
  invoke void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEC2EmRKS5_(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %2564, ptr noundef nonnull align 1 dereferenceable(1) %417)
          to label %2880 unwind label %2887

2565:                                             ; preds = %.lr.ph2046, %2870
  %2566 = phi ptr [ %2187, %.lr.ph2046 ], [ %2871, %2870 ]
  %.09152045 = phi i64 [ 0, %.lr.ph2046 ], [ %2872, %2870 ]
  %2567 = getelementptr inbounds i8, ptr %2566, i64 24
  %2568 = load ptr, ptr %2567, align 8, !tbaa !45
  %2569 = getelementptr inbounds ptr, ptr %2568, i64 %.09152045
  %2570 = load ptr, ptr %2569, align 8, !tbaa !46
  %2571 = getelementptr inbounds i8, ptr %2570, i64 1264
  %2572 = load i32, ptr %2571, align 8, !tbaa !119
  %2573 = icmp eq i32 %2572, 0
  br i1 %2573, label %2870, label %2574

2574:                                             ; preds = %2565
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %357) #11
  %2575 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %2575, ptr %357, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %358) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %359) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %360) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %360) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %360)
          to label %2576 unwind label %2595

2576:                                             ; preds = %2574
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %358, ptr noundef nonnull align 8 dereferenceable(32) %359)
          to label %2577 unwind label %2597

2577:                                             ; preds = %2576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %360) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %360) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %359) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %362) #11
  %2578 = getelementptr inbounds i8, ptr %2570, i64 240
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %362, ptr noundef nonnull %2578, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2579 unwind label %2600

2579:                                             ; preds = %2577
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull @.str.349)
          to label %2580 unwind label %2602

2580:                                             ; preds = %2579
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA11_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %358, ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull align 1 dereferenceable(11) @.str.350)
          to label %2581 unwind label %2604

2581:                                             ; preds = %2580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %363) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %364) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %364)
          to label %2582 unwind label %2608

2582:                                             ; preds = %2581
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %365) #11
  store i32 101, ptr %365, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %358, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 4 dereferenceable(4) %365)
          to label %2583 unwind label %2610

2583:                                             ; preds = %2582
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %365) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %364) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #11
  %2584 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2585 = trunc nuw i8 %2584 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %358, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2585, i32 noundef 1)
          to label %2586 unwind label %2613

2586:                                             ; preds = %2583
  %2587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %.09152045) #11
  %2588 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %2190, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef nonnull align 8 dereferenceable(8) %2587)
          to label %2589 unwind label %2613

2589:                                             ; preds = %2586
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %366) #11
  %2590 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %.09152045) #11
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %366, ptr noundef nonnull align 8 dereferenceable(24) %2590)
          to label %.preheader1562 unwind label %2615

.preheader1562:                                   ; preds = %2589
  %2591 = load i32, ptr %2571, align 8, !tbaa !119
  %.not2171 = icmp eq i32 %2591, 0
  br i1 %.not2171, label %._crit_edge2043, label %.lr.ph2042

.lr.ph2042:                                       ; preds = %.preheader1562
  %2592 = getelementptr inbounds i8, ptr %2570, i64 1272
  %2593 = getelementptr inbounds i8, ptr %2570, i64 16
  %2594 = getelementptr inbounds i8, ptr %2570, i64 24
  br label %2617

._crit_edge2043:                                  ; preds = %2814, %.preheader1562
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %366) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %366) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %358) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %358) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %357) #11
  %.pre2366 = load ptr, ptr %642, align 8, !tbaa !39
  br label %2870

2595:                                             ; preds = %2574
  %2596 = landingpad { ptr, i32 }
          cleanup
  br label %2599

2597:                                             ; preds = %2576
  %2598 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #11
  br label %2599

2599:                                             ; preds = %2597, %2595
  %.pn1143 = phi { ptr, i32 } [ %2598, %2597 ], [ %2596, %2595 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %360) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %360) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %359) #11
  br label %2879

2600:                                             ; preds = %2577
  %2601 = landingpad { ptr, i32 }
          cleanup
  br label %2607

2602:                                             ; preds = %2579
  %2603 = landingpad { ptr, i32 }
          cleanup
  br label %2606

2604:                                             ; preds = %2580
  %2605 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #11
  br label %2606

2606:                                             ; preds = %2604, %2602
  %.pn1145 = phi { ptr, i32 } [ %2605, %2604 ], [ %2603, %2602 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #11
  br label %2607

2607:                                             ; preds = %2606, %2600
  %.pn1145.pn = phi { ptr, i32 } [ %.pn1145, %2606 ], [ %2601, %2600 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #11
  br label %2878

2608:                                             ; preds = %2581
  %2609 = landingpad { ptr, i32 }
          cleanup
  br label %2612

2610:                                             ; preds = %2582
  %2611 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %365) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #11
  br label %2612

2612:                                             ; preds = %2610, %2608
  %.pn1148 = phi { ptr, i32 } [ %2611, %2610 ], [ %2609, %2608 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %364) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %364) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #11
  br label %2878

2613:                                             ; preds = %2586, %2583
  %2614 = landingpad { ptr, i32 }
          cleanup
  br label %2878

2615:                                             ; preds = %2589
  %2616 = landingpad { ptr, i32 }
          cleanup
  br label %2877

2617:                                             ; preds = %.lr.ph2042, %2814
  %indvars.iv2352 = phi i64 [ 0, %.lr.ph2042 ], [ %indvars.iv.next2353, %2814 ]
  %2618 = load ptr, ptr %2592, align 8, !tbaa !120
  %2619 = getelementptr inbounds ptr, ptr %2618, i64 %indvars.iv2352
  %2620 = load ptr, ptr %2619, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %367) #11
  %2621 = getelementptr inbounds i8, ptr %2620, i64 4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %368) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull %2621, ptr noundef nonnull align 1 dereferenceable(1) %368)
          to label %2622 unwind label %2651

2622:                                             ; preds = %2617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %368) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %369) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %370) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %371) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull @.str.185, ptr noundef nonnull align 1 dereferenceable(1) %371)
          to label %2623 unwind label %2653

2623:                                             ; preds = %2622
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(32) %370)
          to label %2624 unwind label %2655

2624:                                             ; preds = %2623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %372) #11
  %2625 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %2625, ptr %372, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backERKl(ptr noundef nonnull align 8 dereferenceable(24) %641, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %2626 unwind label %2658

2626:                                             ; preds = %2624
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRlEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %2627 unwind label %2658

2627:                                             ; preds = %2626
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %373) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %374) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %374, ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2628 unwind label %2660

2628:                                             ; preds = %2627
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %373, ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef nonnull @.str.185)
          to label %2629 unwind label %2662

2629:                                             ; preds = %2628
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(32) %373)
          to label %2630 unwind label %2664

2630:                                             ; preds = %2629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %374) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %373) #11
  invoke void @_ZN6Assimp3FBX4Node11AddPropertyIRA6_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 1 dereferenceable(6) @.str.351)
          to label %2631 unwind label %2658

2631:                                             ; preds = %2630
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %375) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %376) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %376) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %375, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %376)
          to label %2632 unwind label %2668

2632:                                             ; preds = %2631
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %377) #11
  store i32 100, ptr %377, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(32) %375, ptr noundef nonnull align 4 dereferenceable(4) %377)
          to label %2633 unwind label %2670

2633:                                             ; preds = %2632
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %377) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %376) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %376) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %375) #11
  %2634 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2635 = trunc nuw i8 %2634 to i1
  invoke void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2635, i32 noundef 1)
          to label %2636 unwind label %2658

2636:                                             ; preds = %2633
  %2637 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2638 = trunc nuw i8 %2637 to i1
  invoke void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2638, i32 noundef 1)
          to label %2639 unwind label %2658

2639:                                             ; preds = %2636
  %2640 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2641 = trunc nuw i8 %2640 to i1
  invoke void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2641, i32 noundef 1)
          to label %2642 unwind label %2658

2642:                                             ; preds = %2639
  %2643 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2644 = trunc nuw i8 %2643 to i1
  invoke void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2644, i32 noundef 1)
          to label %2645 unwind label %2658

2645:                                             ; preds = %2642
  %2646 = call noundef zeroext i1 @_ZNK10aiAnimMesh12HasPositionsEv(ptr noundef nonnull align 8 dereferenceable(1200) %2620)
  br i1 %2646, label %2647, label %2786

2647:                                             ; preds = %2645
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %378) #11
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %378) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %379) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %379) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %380) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %380) #11
  %2648 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %366) #11
  %.not2172 = icmp eq i64 %2648, 0
  br i1 %.not2172, label %._crit_edge2040, label %.lr.ph2039

.lr.ph2039:                                       ; preds = %2647
  %2649 = getelementptr inbounds i8, ptr %2620, i64 1032
  %2650 = getelementptr inbounds i8, ptr %2620, i64 1040
  br label %2673

._crit_edge2040:                                  ; preds = %2749, %2647
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %389) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %390) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull @.str.352, ptr noundef nonnull align 1 dereferenceable(1) %390)
          to label %2755 unwind label %2769

2651:                                             ; preds = %2617
  %2652 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %368) #11
  br label %2869

2653:                                             ; preds = %2622
  %2654 = landingpad { ptr, i32 }
          cleanup
  br label %2657

2655:                                             ; preds = %2623
  %2656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #11
  br label %2657

2657:                                             ; preds = %2655, %2653
  %.pn1150 = phi { ptr, i32 } [ %2656, %2655 ], [ %2654, %2653 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #11
  br label %2868

2658:                                             ; preds = %2786, %2642, %2639, %2636, %2633, %2630, %2626, %2624
  %2659 = landingpad { ptr, i32 }
          cleanup
  br label %2867

2660:                                             ; preds = %2627
  %2661 = landingpad { ptr, i32 }
          cleanup
  br label %2667

2662:                                             ; preds = %2628
  %2663 = landingpad { ptr, i32 }
          cleanup
  br label %2666

2664:                                             ; preds = %2629
  %2665 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #11
  br label %2666

2666:                                             ; preds = %2664, %2662
  %.pn1152 = phi { ptr, i32 } [ %2665, %2664 ], [ %2663, %2662 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #11
  br label %2667

2667:                                             ; preds = %2666, %2660
  %.pn1152.pn = phi { ptr, i32 } [ %.pn1152, %2666 ], [ %2661, %2660 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %374) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %373) #11
  br label %2867

2668:                                             ; preds = %2631
  %2669 = landingpad { ptr, i32 }
          cleanup
  br label %2672

2670:                                             ; preds = %2632
  %2671 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %377) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %375) #11
  br label %2672

2672:                                             ; preds = %2670, %2668
  %.pn1155 = phi { ptr, i32 } [ %2671, %2670 ], [ %2669, %2668 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %376) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %376) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %375) #11
  br label %2867

2673:                                             ; preds = %.lr.ph2039, %2749
  %2674 = phi i64 [ 0, %.lr.ph2039 ], [ %2751, %2749 ]
  %.09202037 = phi i32 [ 0, %.lr.ph2039 ], [ %2750, %2749 ]
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %381) #11
  %2675 = load ptr, ptr %2649, align 8, !tbaa !121
  %2676 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %2674) #11
  %2677 = load i32, ptr %2676, align 4, !tbaa !48
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds %class.aiVector3t, ptr %2675, i64 %2678
  %2680 = load ptr, ptr %2593, align 8, !tbaa !55
  %2681 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %2674) #11
  %2682 = load i32, ptr %2681, align 4, !tbaa !48
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds %class.aiVector3t, ptr %2680, i64 %2683
  %2685 = invoke { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12) %2679, ptr noundef nonnull align 4 dereferenceable(12) %2684)
          to label %2686 unwind label %2732

2686:                                             ; preds = %2673
  %.fca.0.extract189 = extractvalue { <2 x float>, float } %2685, 0
  %.fca.1.extract190 = extractvalue { <2 x float>, float } %2685, 1
  store <2 x float> %.fca.0.extract189, ptr %381, align 8
  store float %.fca.1.extract190, ptr %.sroa.2192.0..sroa_idx, align 8
  %2687 = invoke noundef float @_ZNK10aiVector3tIfE6LengthEv(ptr noundef nonnull align 4 dereferenceable(12) %381)
          to label %2688 unwind label %2732

2688:                                             ; preds = %2686
  %2689 = fpext float %2687 to double
  %2690 = fcmp ogt double %2689, 1.000000e-08
  br i1 %2690, label %2691, label %2749

2691:                                             ; preds = %2688
  %2692 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %2674) #11
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %378, ptr noundef nonnull align 4 dereferenceable(4) %2692)
          to label %2693 unwind label %2732

2693:                                             ; preds = %2691
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %382) #11
  %2694 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %381, i32 noundef 0)
  %2695 = load float, ptr %2694, align 4, !tbaa !57
  %2696 = fpext float %2695 to double
  store double %2696, ptr %382, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %379, ptr noundef nonnull align 8 dereferenceable(8) %382)
          to label %2697 unwind label %2734

2697:                                             ; preds = %2693
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %382) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %383) #11
  %2698 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %381, i32 noundef 1)
  %2699 = load float, ptr %2698, align 4, !tbaa !57
  %2700 = fpext float %2699 to double
  store double %2700, ptr %383, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %379, ptr noundef nonnull align 8 dereferenceable(8) %383)
          to label %2701 unwind label %2736

2701:                                             ; preds = %2697
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %383) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %384) #11
  %2702 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %381, i32 noundef 2)
  %2703 = load float, ptr %2702, align 4, !tbaa !57
  %2704 = fpext float %2703 to double
  store double %2704, ptr %384, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %379, ptr noundef nonnull align 8 dereferenceable(8) %384)
          to label %2705 unwind label %2738

2705:                                             ; preds = %2701
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #11
  %2706 = call noundef zeroext i1 @_ZNK10aiAnimMesh10HasNormalsEv(ptr noundef nonnull align 8 dereferenceable(1200) %2620)
  br i1 %2706, label %2707, label %2749

2707:                                             ; preds = %2705
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %385) #11
  %2708 = load ptr, ptr %2650, align 8, !tbaa !123
  %2709 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %2674) #11
  %2710 = load i32, ptr %2709, align 4, !tbaa !48
  %2711 = sext i32 %2710 to i64
  %2712 = getelementptr inbounds %class.aiVector3t, ptr %2708, i64 %2711
  %2713 = load ptr, ptr %2594, align 8, !tbaa !73
  %2714 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %366, i64 noundef %2674) #11
  %2715 = load i32, ptr %2714, align 4, !tbaa !48
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds %class.aiVector3t, ptr %2713, i64 %2716
  %2718 = invoke { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12) %2712, ptr noundef nonnull align 4 dereferenceable(12) %2717)
          to label %2719 unwind label %2740

2719:                                             ; preds = %2707
  %.fca.0.extract185 = extractvalue { <2 x float>, float } %2718, 0
  %.fca.1.extract186 = extractvalue { <2 x float>, float } %2718, 1
  store <2 x float> %.fca.0.extract185, ptr %385, align 8
  store float %.fca.1.extract186, ptr %.sroa.2188.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %386) #11
  %2720 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %385, i32 noundef 0)
  %2721 = load float, ptr %2720, align 4, !tbaa !57
  %2722 = fpext float %2721 to double
  store double %2722, ptr %386, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(8) %386)
          to label %2723 unwind label %2742

2723:                                             ; preds = %2719
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %386) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %387) #11
  %2724 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %385, i32 noundef 1)
  %2725 = load float, ptr %2724, align 4, !tbaa !57
  %2726 = fpext float %2725 to double
  store double %2726, ptr %387, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(8) %387)
          to label %2727 unwind label %2744

2727:                                             ; preds = %2723
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %387) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %388) #11
  %2728 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12) %385, i32 noundef 2)
  %2729 = load float, ptr %2728, align 4, !tbaa !57
  %2730 = fpext float %2729 to double
  store double %2730, ptr %388, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(8) %388)
          to label %2731 unwind label %2746

2731:                                             ; preds = %2727
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %388) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %385) #11
  br label %2749

2732:                                             ; preds = %2691, %2686, %2673
  %2733 = landingpad { ptr, i32 }
          cleanup
  br label %2754

2734:                                             ; preds = %2693
  %2735 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %382) #11
  br label %2754

2736:                                             ; preds = %2697
  %2737 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %383) #11
  br label %2754

2738:                                             ; preds = %2701
  %2739 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #11
  br label %2754

2740:                                             ; preds = %2707
  %2741 = landingpad { ptr, i32 }
          cleanup
  br label %2748

2742:                                             ; preds = %2719
  %2743 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %386) #11
  br label %2748

2744:                                             ; preds = %2723
  %2745 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %387) #11
  br label %2748

2746:                                             ; preds = %2727
  %2747 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %388) #11
  br label %2748

2748:                                             ; preds = %2746, %2744, %2742, %2740
  %.pn1185 = phi { ptr, i32 } [ %2747, %2746 ], [ %2745, %2744 ], [ %2743, %2742 ], [ %2741, %2740 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %385) #11
  br label %2754

2749:                                             ; preds = %2705, %2731, %2688
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %381) #11
  %2750 = add i32 %.09202037, 1
  %2751 = zext i32 %2750 to i64
  %2752 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %366) #11
  %2753 = icmp ugt i64 %2752, %2751
  br i1 %2753, label %2673, label %._crit_edge2040, !llvm.loop !124

2754:                                             ; preds = %2748, %2738, %2736, %2734, %2732
  %.pn1185.pn = phi { ptr, i32 } [ %.pn1185, %2748 ], [ %2739, %2738 ], [ %2737, %2736 ], [ %2735, %2734 ], [ %2733, %2732 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %381) #11
  br label %2785

2755:                                             ; preds = %._crit_edge2040
  %2756 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2757 = trunc nuw i8 %2756 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(24) %378, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2757, i32 noundef 2)
          to label %2758 unwind label %2771

2758:                                             ; preds = %2755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %390) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %389) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %391) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %392) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull @.str.268, ptr noundef nonnull align 1 dereferenceable(1) %392)
          to label %2759 unwind label %2774

2759:                                             ; preds = %2758
  %2760 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2761 = trunc nuw i8 %2760 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull align 8 dereferenceable(24) %379, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2761, i32 noundef 2)
          to label %2762 unwind label %2776

2762:                                             ; preds = %2759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %392) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %391) #11
  %2763 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %380) #11
  %.not1161 = icmp eq i64 %2763, 0
  br i1 %.not1161, label %2784, label %2764

2764:                                             ; preds = %2762
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %393) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %394) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull @.str.277, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %2765 unwind label %2779

2765:                                             ; preds = %2764
  %2766 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2767 = trunc nuw i8 %2766 to i1
  invoke void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull align 8 dereferenceable(24) %380, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2767, i32 noundef 2)
          to label %2768 unwind label %2781

2768:                                             ; preds = %2765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %394) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #11
  br label %2784

2769:                                             ; preds = %._crit_edge2040
  %2770 = landingpad { ptr, i32 }
          cleanup
  br label %2773

2771:                                             ; preds = %2755
  %2772 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #11
  br label %2773

2773:                                             ; preds = %2771, %2769
  %.pn1157 = phi { ptr, i32 } [ %2772, %2771 ], [ %2770, %2769 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %390) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %390) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %389) #11
  br label %2785

2774:                                             ; preds = %2758
  %2775 = landingpad { ptr, i32 }
          cleanup
  br label %2778

2776:                                             ; preds = %2759
  %2777 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #11
  br label %2778

2778:                                             ; preds = %2776, %2774
  %.pn1159 = phi { ptr, i32 } [ %2777, %2776 ], [ %2775, %2774 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %392) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %392) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %391) #11
  br label %2785

2779:                                             ; preds = %2764
  %2780 = landingpad { ptr, i32 }
          cleanup
  br label %2783

2781:                                             ; preds = %2765
  %2782 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #11
  br label %2783

2783:                                             ; preds = %2781, %2779
  %.pn1162 = phi { ptr, i32 } [ %2782, %2781 ], [ %2780, %2779 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %394) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #11
  br label %2785

2784:                                             ; preds = %2768, %2762
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %380) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %380) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %379) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %379) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %378) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %378) #11
  br label %2786

2785:                                             ; preds = %2783, %2778, %2773, %2754
  %.pn1185.pn.pn = phi { ptr, i32 } [ %.pn1185.pn, %2754 ], [ %.pn1162, %2783 ], [ %.pn1159, %2778 ], [ %.pn1157, %2773 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %380) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %380) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %379) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %379) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %378) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %378) #11
  br label %2867

2786:                                             ; preds = %2784, %2645
  %2787 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2788 = trunc nuw i8 %2787 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2788, i32 noundef 1, i1 noundef zeroext true)
          to label %2789 unwind label %2658

2789:                                             ; preds = %2786
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %395) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %396) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %397) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %397)
          to label %2790 unwind label %2818

2790:                                             ; preds = %2789
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(32) %396)
          to label %2791 unwind label %2820

2791:                                             ; preds = %2790
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %396) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %398) #11
  %2792 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %2792, ptr %398, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %399) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %400) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %400, ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %2793 unwind label %2823

2793:                                             ; preds = %2791
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %399, ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef nonnull @.str.353)
          to label %2794 unwind label %2825

2794:                                             ; preds = %2793
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA18_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull align 1 dereferenceable(18) @.str.354)
          to label %2795 unwind label %2827

2795:                                             ; preds = %2794
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %400) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %401) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %402) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %2796 unwind label %2831

2796:                                             ; preds = %2795
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %403) #11
  store i32 100, ptr %403, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 4 dereferenceable(4) %403)
          to label %2797 unwind label %2833

2797:                                             ; preds = %2796
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %403) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %402) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %404) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %405) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull @.str.355, ptr noundef nonnull align 1 dereferenceable(1) %405)
          to label %2798 unwind label %2836

2798:                                             ; preds = %2797
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %406) #11
  store float 0.000000e+00, ptr %406, align 4, !tbaa !57
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJfEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull align 4 dereferenceable(4) %406)
          to label %2799 unwind label %2838

2799:                                             ; preds = %2798
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %406) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %405) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %404) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %407) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %408) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %409) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %409)
          to label %2800 unwind label %2841

2800:                                             ; preds = %2799
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %407, ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %2801 unwind label %2843

2801:                                             ; preds = %2800
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %409) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %410) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %411) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull @.str.355, ptr noundef nonnull align 1 dereferenceable(1) %411)
          to label %2802 unwind label %2846

2802:                                             ; preds = %2801
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %407, ptr noundef nonnull align 8 dereferenceable(32) %410, double noundef 0.000000e+00)
          to label %2803 unwind label %2848

2803:                                             ; preds = %2802
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(112) %407)
          to label %2804 unwind label %2851

2804:                                             ; preds = %2803
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %412) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %412) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %413) #11
  store double 1.000000e+02, ptr %413, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %412, ptr noundef nonnull align 8 dereferenceable(8) %413)
          to label %2805 unwind label %2853

2805:                                             ; preds = %2804
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %413) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %414) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %415) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef nonnull @.str.356, ptr noundef nonnull align 1 dereferenceable(1) %415)
          to label %2806 unwind label %2855

2806:                                             ; preds = %2805
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIdSaIdEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(32) %414, ptr noundef nonnull align 8 dereferenceable(24) %412)
          to label %2807 unwind label %2857

2807:                                             ; preds = %2806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %415) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %414) #11
  %2808 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %2809 = trunc nuw i8 %2808 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %395, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %2809, i32 noundef 1)
          to label %2810 unwind label %2860

2810:                                             ; preds = %2807
  %2811 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %2190, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull align 8 dereferenceable(8) %357)
          to label %2812 unwind label %2860

2812:                                             ; preds = %2810
  %2813 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlRKlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %2190, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(8) %398)
          to label %2814 unwind label %2860

2814:                                             ; preds = %2812
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %412) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %412) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %407) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %407) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %398) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %395) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %395) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %372) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %369) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %369) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #11
  %indvars.iv.next2353 = add nuw nsw i64 %indvars.iv2352, 1
  %2815 = load i32, ptr %2571, align 8, !tbaa !119
  %2816 = zext i32 %2815 to i64
  %2817 = icmp ult i64 %indvars.iv.next2353, %2816
  br i1 %2817, label %2617, label %._crit_edge2043, !llvm.loop !125

2818:                                             ; preds = %2789
  %2819 = landingpad { ptr, i32 }
          cleanup
  br label %2822

2820:                                             ; preds = %2790
  %2821 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #11
  br label %2822

2822:                                             ; preds = %2820, %2818
  %.pn1164 = phi { ptr, i32 } [ %2821, %2820 ], [ %2819, %2818 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %396) #11
  br label %2866

2823:                                             ; preds = %2791
  %2824 = landingpad { ptr, i32 }
          cleanup
  br label %2830

2825:                                             ; preds = %2793
  %2826 = landingpad { ptr, i32 }
          cleanup
  br label %2829

2827:                                             ; preds = %2794
  %2828 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #11
  br label %2829

2829:                                             ; preds = %2827, %2825
  %.pn1166 = phi { ptr, i32 } [ %2828, %2827 ], [ %2826, %2825 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #11
  br label %2830

2830:                                             ; preds = %2829, %2823
  %.pn1166.pn = phi { ptr, i32 } [ %.pn1166, %2829 ], [ %2824, %2823 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %400) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #11
  br label %2865

2831:                                             ; preds = %2795
  %2832 = landingpad { ptr, i32 }
          cleanup
  br label %2835

2833:                                             ; preds = %2796
  %2834 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %403) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #11
  br label %2835

2835:                                             ; preds = %2833, %2831
  %.pn1169 = phi { ptr, i32 } [ %2834, %2833 ], [ %2832, %2831 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %402) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #11
  br label %2865

2836:                                             ; preds = %2797
  %2837 = landingpad { ptr, i32 }
          cleanup
  br label %2840

2838:                                             ; preds = %2798
  %2839 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %406) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #11
  br label %2840

2840:                                             ; preds = %2838, %2836
  %.pn1171 = phi { ptr, i32 } [ %2839, %2838 ], [ %2837, %2836 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %405) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %404) #11
  br label %2865

2841:                                             ; preds = %2799
  %2842 = landingpad { ptr, i32 }
          cleanup
  br label %2845

2843:                                             ; preds = %2800
  %2844 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #11
  br label %2845

2845:                                             ; preds = %2843, %2841
  %.pn1173 = phi { ptr, i32 } [ %2844, %2843 ], [ %2842, %2841 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %409) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %409) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #11
  br label %2864

2846:                                             ; preds = %2801
  %2847 = landingpad { ptr, i32 }
          cleanup
  br label %2850

2848:                                             ; preds = %2802
  %2849 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #11
  br label %2850

2850:                                             ; preds = %2848, %2846
  %.pn1175 = phi { ptr, i32 } [ %2849, %2848 ], [ %2847, %2846 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #11
  br label %2863

2851:                                             ; preds = %2803
  %2852 = landingpad { ptr, i32 }
          cleanup
  br label %2863

2853:                                             ; preds = %2804
  %2854 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %413) #11
  br label %2862

2855:                                             ; preds = %2805
  %2856 = landingpad { ptr, i32 }
          cleanup
  br label %2859

2857:                                             ; preds = %2806
  %2858 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #11
  br label %2859

2859:                                             ; preds = %2857, %2855
  %.pn1177 = phi { ptr, i32 } [ %2858, %2857 ], [ %2856, %2855 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %415) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %414) #11
  br label %2862

2860:                                             ; preds = %2812, %2810, %2807
  %2861 = landingpad { ptr, i32 }
          cleanup
  br label %2862

2862:                                             ; preds = %2860, %2859, %2853
  %.pn1179 = phi { ptr, i32 } [ %2861, %2860 ], [ %.pn1177, %2859 ], [ %2854, %2853 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %412) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %412) #11
  br label %2863

2863:                                             ; preds = %2862, %2851, %2850
  %.pn1179.pn = phi { ptr, i32 } [ %.pn1179, %2862 ], [ %2852, %2851 ], [ %.pn1175, %2850 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %407) #11
  br label %2864

2864:                                             ; preds = %2863, %2845
  %.pn1179.pn.pn = phi { ptr, i32 } [ %.pn1179.pn, %2863 ], [ %.pn1173, %2845 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %407) #11
  br label %2865

2865:                                             ; preds = %2864, %2840, %2835, %2830
  %.pn1179.pn.pn.pn = phi { ptr, i32 } [ %.pn1179.pn.pn, %2864 ], [ %.pn1171, %2840 ], [ %.pn1169, %2835 ], [ %.pn1166.pn, %2830 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %398) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %395) #11
  br label %2866

2866:                                             ; preds = %2865, %2822
  %.pn1179.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1179.pn.pn.pn, %2865 ], [ %.pn1164, %2822 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %395) #11
  br label %2867

2867:                                             ; preds = %2866, %2785, %2672, %2667, %2658
  %.pn1185.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn, %2785 ], [ %.pn1179.pn.pn.pn.pn, %2866 ], [ %2659, %2658 ], [ %.pn1155, %2672 ], [ %.pn1152.pn, %2667 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %372) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %369) #11
  br label %2868

2868:                                             ; preds = %2867, %2657
  %.pn1185.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn.pn, %2867 ], [ %.pn1150, %2657 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %369) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #11
  br label %2869

2869:                                             ; preds = %2868, %2651
  %.pn1185.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn.pn.pn, %2868 ], [ %2652, %2651 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %366) #11
  br label %2877

2870:                                             ; preds = %2565, %._crit_edge2043
  %2871 = phi ptr [ %2566, %2565 ], [ %.pre2366, %._crit_edge2043 ]
  %2872 = add nuw nsw i64 %.09152045, 1
  %2873 = getelementptr inbounds i8, ptr %2871, i64 16
  %2874 = load i32, ptr %2873, align 8, !tbaa !40
  %2875 = zext i32 %2874 to i64
  %2876 = icmp ult i64 %2872, %2875
  br i1 %2876, label %2565, label %._crit_edge2047, !llvm.loop !126

2877:                                             ; preds = %2869, %2615
  %.pn1185.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn.pn.pn.pn, %2869 ], [ %2616, %2615 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %366) #11
  br label %2878

2878:                                             ; preds = %2877, %2613, %2612, %2607
  %.pn1185.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn.pn.pn.pn.pn, %2877 ], [ %2614, %2613 ], [ %.pn1148, %2612 ], [ %.pn1145.pn, %2607 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %358) #11
  br label %2879

2879:                                             ; preds = %2878, %2599
  %.pn1185.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1185.pn.pn.pn.pn.pn.pn.pn, %2878 ], [ %.pn1143, %2599 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %358) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %357) #11
  br label %4071

2880:                                             ; preds = %._crit_edge2047
  call void @_ZNSt15__new_allocatorISt6vectorIPK6aiNodeSaIS3_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %418) #11
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %418) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %419) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  %2881 = load ptr, ptr %642, align 8, !tbaa !39
  %2882 = getelementptr inbounds i8, ptr %2881, i64 16
  %2883 = load i32, ptr %2882, align 8, !tbaa !40
  %.not2173 = icmp eq i32 %2883, 0
  br i1 %.not2173, label %._crit_edge2055, label %.lr.ph2054

._crit_edge2055:                                  ; preds = %._crit_edge2051, %2880
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %422) #11
  call void @_ZN12aiMatrix4x4tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(64) %422) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %423) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %423) #11
  %2884 = load ptr, ptr %642, align 8, !tbaa !39
  %2885 = getelementptr inbounds i8, ptr %2884, i64 16
  %2886 = load i32, ptr %2885, align 8, !tbaa !40
  %.not2175 = icmp eq i32 %2886, 0
  br i1 %.not2175, label %._crit_edge2109, label %.lr.ph2089

2887:                                             ; preds = %._crit_edge2047
  %2888 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt6vectorIPK6aiNodeSaIS3_EEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #11
  br label %4070

.lr.ph2054:                                       ; preds = %2880, %._crit_edge2051
  %2889 = phi ptr [ %2897, %._crit_edge2051 ], [ %2881, %2880 ]
  %indvars.iv2358 = phi i64 [ %indvars.iv.next2359, %._crit_edge2051 ], [ 0, %2880 ]
  %2890 = getelementptr inbounds i8, ptr %2889, i64 24
  %2891 = load ptr, ptr %2890, align 8, !tbaa !45
  %2892 = getelementptr inbounds ptr, ptr %2891, i64 %indvars.iv2358
  %2893 = load ptr, ptr %2892, align 8, !tbaa !46
  %2894 = getelementptr inbounds i8, ptr %2893, i64 216
  %2895 = load i32, ptr %2894, align 8, !tbaa !127
  %.not2174 = icmp eq i32 %2895, 0
  br i1 %.not2174, label %._crit_edge2051, label %.lr.ph2050

.lr.ph2050:                                       ; preds = %.lr.ph2054
  %2896 = getelementptr inbounds i8, ptr %2893, i64 224
  br label %2902

._crit_edge2051.loopexit:                         ; preds = %2908
  %.pre2367 = load ptr, ptr %642, align 8, !tbaa !39
  br label %._crit_edge2051

._crit_edge2051:                                  ; preds = %._crit_edge2051.loopexit, %.lr.ph2054
  %2897 = phi ptr [ %.pre2367, %._crit_edge2051.loopexit ], [ %2889, %.lr.ph2054 ]
  %indvars.iv.next2359 = add nuw nsw i64 %indvars.iv2358, 1
  %2898 = getelementptr inbounds i8, ptr %2897, i64 16
  %2899 = load i32, ptr %2898, align 8, !tbaa !40
  %2900 = zext i32 %2899 to i64
  %2901 = icmp ult i64 %indvars.iv.next2359, %2900
  br i1 %2901, label %.lr.ph2054, label %._crit_edge2055, !llvm.loop !128

2902:                                             ; preds = %.lr.ph2050, %2908
  %indvars.iv2355 = phi i64 [ 0, %.lr.ph2050 ], [ %indvars.iv.next2356, %2908 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %420) #11
  %2903 = load ptr, ptr %2896, align 8, !tbaa !129
  %2904 = getelementptr inbounds ptr, ptr %2903, i64 %indvars.iv2355
  %2905 = load ptr, ptr %2904, align 8, !tbaa !46
  %2906 = getelementptr inbounds i8, ptr %2905, i64 4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %421) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull %2906, ptr noundef nonnull align 1 dereferenceable(1) %421)
          to label %2907 unwind label %2912

2907:                                             ; preds = %2902
  invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backEOS5_(ptr noundef nonnull align 8 dereferenceable(24) %419, ptr noundef nonnull align 8 dereferenceable(32) %420)
          to label %2908 unwind label %2914

2908:                                             ; preds = %2907
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %421) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %420) #11
  %indvars.iv.next2356 = add nuw nsw i64 %indvars.iv2355, 1
  %2909 = load i32, ptr %2894, align 8, !tbaa !127
  %2910 = zext i32 %2909 to i64
  %2911 = icmp ult i64 %indvars.iv.next2356, %2910
  br i1 %2911, label %2902, label %._crit_edge2051.loopexit, !llvm.loop !130

2912:                                             ; preds = %2902
  %2913 = landingpad { ptr, i32 }
          cleanup
  br label %2916

2914:                                             ; preds = %2907
  %2915 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #11
  br label %2916

2916:                                             ; preds = %2914, %2912
  %.pn1139 = phi { ptr, i32 } [ %2915, %2914 ], [ %2913, %2912 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %421) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %420) #11
  br label %4069

.preheader1559:                                   ; preds = %3062
  %.not2180 = icmp eq i32 %3066, 0
  br i1 %.not2180, label %._crit_edge2109, label %.lr.ph2094

.lr.ph2094:                                       ; preds = %.preheader1559
  %2917 = getelementptr inbounds i8, ptr %0, i64 112
  br label %3074

.lr.ph2089:                                       ; preds = %._crit_edge2055, %3062
  %2918 = phi ptr [ %3064, %3062 ], [ %2884, %._crit_edge2055 ]
  %.09272087 = phi i64 [ %3063, %3062 ], [ 0, %._crit_edge2055 ]
  %2919 = getelementptr inbounds i8, ptr %2918, i64 24
  %2920 = load ptr, ptr %2919, align 8, !tbaa !45
  %2921 = getelementptr inbounds ptr, ptr %2920, i64 %.09272087
  %2922 = load ptr, ptr %2921, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %424) #11
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  %2923 = getelementptr inbounds i8, ptr %2922, i64 216
  %2924 = load i32, ptr %2923, align 8, !tbaa !127
  %.not2176 = icmp eq i32 %2924, 0
  br i1 %.not2176, label %._crit_edge2086, label %.lr.ph2085

.lr.ph2085:                                       ; preds = %.lr.ph2089
  %2925 = getelementptr inbounds i8, ptr %2922, i64 224
  br label %2928

._crit_edge2086:                                  ; preds = %.critedge, %.lr.ph2089
  %2926 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %.09272087) #11
  %2927 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %2926, ptr noundef nonnull align 8 dereferenceable(24) %424)
          to label %3062 unwind label %3069

2928:                                             ; preds = %.lr.ph2085, %.critedge
  %.09282083 = phi i64 [ 0, %.lr.ph2085 ], [ %3054, %.critedge ]
  %2929 = load ptr, ptr %2925, align 8, !tbaa !129
  %2930 = getelementptr inbounds ptr, ptr %2929, i64 %.09282083
  %2931 = load ptr, ptr %2930, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %425) #11
  %2932 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %2931)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %426) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef %2932, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %2933 unwind label %2942

2933:                                             ; preds = %2928
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %426) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %427) #11
  %2934 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %423, ptr noundef nonnull align 8 dereferenceable(32) %425)
          to label %2935 unwind label %2944

2935:                                             ; preds = %2933
  store ptr %2934, ptr %427, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %428) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %429) #11
  %2936 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %423) #11
  store ptr %2936, ptr %429, align 8
  %2937 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeEESD_(ptr noundef nonnull align 8 dereferenceable(8) %427, ptr noundef nonnull align 8 dereferenceable(8) %429) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %429) #11
  br i1 %2937, label %2938, label %2946

2938:                                             ; preds = %2935
  %2939 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %427) #11
  %2940 = getelementptr inbounds i8, ptr %2939, i64 32
  %2941 = load ptr, ptr %2940, align 8, !tbaa !131
  store ptr %2941, ptr %428, align 8, !tbaa !46
  br label %2981

2942:                                             ; preds = %2928
  %2943 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %426) #11
  br label %3061

2944:                                             ; preds = %2933
  %2945 = landingpad { ptr, i32 }
          cleanup
  br label %3060

2946:                                             ; preds = %2935
  %2947 = load ptr, ptr %642, align 8, !tbaa !39
  %2948 = getelementptr inbounds i8, ptr %2947, i64 8
  %2949 = load ptr, ptr %2948, align 8, !tbaa !133
  %2950 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %2949, ptr noundef nonnull align 4 dereferenceable(1028) %2931)
          to label %2951 unwind label %2965

2951:                                             ; preds = %2946
  store ptr %2950, ptr %428, align 8, !tbaa !46
  %.not1122 = icmp eq ptr %2950, null
  br i1 %.not1122, label %2952, label %2977

2952:                                             ; preds = %2951
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %430) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %430)
          to label %2953 unwind label %2967

2953:                                             ; preds = %2952
  %2954 = getelementptr inbounds i8, ptr %430, i64 16
  %2955 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2954, ptr noundef nonnull @.str.357)
          to label %2956 unwind label %2969

2956:                                             ; preds = %2953
  %2957 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %2955, ptr noundef nonnull align 8 dereferenceable(32) %425)
          to label %2958 unwind label %2969

2958:                                             ; preds = %2956
  %2959 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2957, ptr noundef nonnull @.str.332)
          to label %2960 unwind label %2969

2960:                                             ; preds = %2958
  %2961 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %431) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %431, ptr noundef nonnull align 8 dereferenceable(128) %430)
          to label %2962 unwind label %.thread1539

2962:                                             ; preds = %2960
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %2961, ptr noundef nonnull align 8 dereferenceable(32) %431)
          to label %2964 unwind label %.thread1543

.thread1543:                                      ; preds = %2962
  %2963 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %431) #11
  br label %2974

2964:                                             ; preds = %2962
  invoke void @__cxa_throw(ptr nonnull %2961, ptr nonnull @_ZTI17DeadlyExportError, ptr nonnull @_ZNSt13runtime_errorD2Ev) #12
          to label %4079 unwind label %2972

2965:                                             ; preds = %2981, %2979, %2977, %2946
  %2966 = landingpad { ptr, i32 }
          cleanup
  br label %3059

2967:                                             ; preds = %2952
  %2968 = landingpad { ptr, i32 }
          cleanup
  br label %2976

2969:                                             ; preds = %2958, %2956, %2953
  %2970 = landingpad { ptr, i32 }
          cleanup
  br label %2975

.thread1539:                                      ; preds = %2960
  %2971 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %431) #11
  br label %2974

2972:                                             ; preds = %2964
  %2973 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %431) #11
  br label %2975

2974:                                             ; preds = %.thread1543, %.thread1539
  %.pn11231542 = phi { ptr, i32 } [ %2971, %.thread1539 ], [ %2963, %.thread1543 ]
  call void @__cxa_free_exception(ptr %2961) #11
  br label %2975

2975:                                             ; preds = %2972, %2974, %2969
  %.pn1123.pn = phi { ptr, i32 } [ %.pn11231542, %2974 ], [ %2973, %2972 ], [ %2970, %2969 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %430) #11
  br label %2976

2976:                                             ; preds = %2975, %2967
  %.pn1123.pn.pn = phi { ptr, i32 } [ %.pn1123.pn, %2975 ], [ %2968, %2967 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %430) #11
  br label %3059

2977:                                             ; preds = %2951
  %2978 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %423, ptr noundef nonnull align 8 dereferenceable(32) %425)
          to label %2979 unwind label %2965

2979:                                             ; preds = %2977
  store ptr %2950, ptr %2978, align 8, !tbaa !46
  %2980 = invoke { ptr, i8 } @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(56) %418, ptr noundef nonnull align 8 dereferenceable(8) %428)
          to label %2981 unwind label %2965

2981:                                             ; preds = %2979, %2938
  invoke void @_ZNSt6vectorIPK6aiNodeSaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %424, ptr noundef nonnull align 8 dereferenceable(8) %428)
          to label %2982 unwind label %2965

2982:                                             ; preds = %2981
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %432) #11
  %.pn11382074 = load ptr, ptr %428, align 8, !tbaa !46
  %storemerge.in2075 = getelementptr inbounds i8, ptr %.pn11382074, i64 1096
  %storemerge2076 = load ptr, ptr %storemerge.in2075, align 8, !tbaa !134
  store ptr %storemerge2076, ptr %432, align 8, !tbaa !46
  %.not11272077 = icmp eq ptr %storemerge2076, null
  br i1 %.not11272077, label %.critedge, label %.lr.ph2080

.lr.ph2080:                                       ; preds = %2982, %.thread1545.thread2377
  %storemerge2078 = phi ptr [ %storemerge, %.thread1545.thread2377 ], [ %storemerge2076, %2982 ]
  %2983 = load ptr, ptr %642, align 8, !tbaa !39
  %2984 = getelementptr inbounds i8, ptr %2983, i64 8
  %2985 = load ptr, ptr %2984, align 8, !tbaa !133
  %.not1128 = icmp eq ptr %storemerge2078, %2985
  br i1 %.not1128, label %.critedge, label %2986

2986:                                             ; preds = %.lr.ph2080
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %433) #11
  %2987 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  %2988 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  %2989 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS4_SaIS4_EEEES4_ET_SA_SA_RKT0_(ptr %2987, ptr %2988, ptr noundef nonnull align 8 dereferenceable(8) %432)
          to label %2990 unwind label %2993

2990:                                             ; preds = %2986
  store ptr %2989, ptr %433, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %434) #11
  %2991 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  store ptr %2991, ptr %434, align 8
  %2992 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %433, ptr noundef nonnull align 8 dereferenceable(8) %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %433) #11
  br i1 %2992, label %.critedge, label %2995

2993:                                             ; preds = %2986
  %2994 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %433) #11
  br label %3058

2995:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %435) #11
  %2996 = load ptr, ptr %432, align 8, !tbaa !46
  %2997 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %2996)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %436) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef %2997, ptr noundef nonnull align 1 dereferenceable(1) %436)
          to label %2998 unwind label %3000

2998:                                             ; preds = %2995
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %436) #11
  %2999 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m(ptr noundef nonnull align 8 dereferenceable(32) %435, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL14MAGIC_NODE_TAGB5cxx11E, i64 noundef 0) #11
  %.not1129 = icmp eq i64 %2999, -1
  br i1 %.not1129, label %3002, label %.thread1545.thread2377

3000:                                             ; preds = %2995
  %3001 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %436) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %436) #11
  br label %3053

3002:                                             ; preds = %2998
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %437) #11
  %3003 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  %3004 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  %3005 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEES7_ET_SD_SD_RKT0_(ptr %3003, ptr %3004, ptr noundef nonnull align 8 dereferenceable(32) %435)
          to label %3006 unwind label %3013

3006:                                             ; preds = %3002
  store ptr %3005, ptr %437, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %438) #11
  %3007 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  store ptr %3007, ptr %438, align 8
  %3008 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef nonnull align 8 dereferenceable(8) %438) #11
  br i1 %3008, label %3009, label %.critedge3

3009:                                             ; preds = %3006
  %3010 = load ptr, ptr %432, align 8, !tbaa !46
  %3011 = getelementptr inbounds i8, ptr %3010, i64 1028
  %3012 = call noundef zeroext i1 @_ZNK12aiMatrix4x4tIfEeqERKS0_(ptr noundef nonnull align 4 dereferenceable(64) %3011, ptr noundef nonnull align 4 dereferenceable(64) %422)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %438) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %437) #11
  br i1 %3012, label %.thread1545.thread2377, label %3015

3013:                                             ; preds = %3002
  %3014 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %437) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #11
  br label %3053

.critedge3:                                       ; preds = %3006
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %438) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %437) #11
  br label %3015

3015:                                             ; preds = %.critedge3, %3009
  %3016 = load ptr, ptr %432, align 8, !tbaa !46
  %3017 = getelementptr inbounds i8, ptr %3016, i64 1120
  %3018 = load i32, ptr %3017, align 8, !tbaa !137
  %3019 = zext i32 %3018 to i64
  %.not2369 = icmp eq i32 %3018, 0
  br i1 %.not2369, label %._crit_edge2059.thread, label %.lr.ph2058

.lr.ph2058:                                       ; preds = %3015
  %3020 = getelementptr inbounds i8, ptr %3016, i64 1128
  %3021 = load ptr, ptr %3020, align 8, !tbaa !138
  %3022 = load i32, ptr %3021, align 4, !tbaa !48
  %3023 = zext i32 %3022 to i64
  %3024 = icmp eq i64 %.09272087, %3023
  br i1 %3024, label %._crit_edge2059, label %.lr.ph2708

.lr.ph2708:                                       ; preds = %.lr.ph2058, %3026
  %.093620562707 = phi i64 [ %3025, %3026 ], [ 0, %.lr.ph2058 ]
  %3025 = add nuw nsw i64 %.093620562707, 1
  %exitcond2361.not = icmp eq i64 %3025, %3019
  br i1 %exitcond2361.not, label %._crit_edge2059.loopexit, label %3026, !llvm.loop !139

3026:                                             ; preds = %.lr.ph2708
  %3027 = getelementptr inbounds i32, ptr %3021, i64 %3025
  %3028 = load i32, ptr %3027, align 4, !tbaa !48
  %3029 = zext i32 %3028 to i64
  %3030 = icmp eq i64 %.09272087, %3029
  br i1 %3030, label %._crit_edge2059.loopexit, label %.lr.ph2708, !llvm.loop !139

._crit_edge2059.loopexit:                         ; preds = %.lr.ph2708, %3026
  %3031 = icmp ult i64 %3025, %3019
  br label %._crit_edge2059

._crit_edge2059:                                  ; preds = %._crit_edge2059.loopexit, %.lr.ph2058
  %.lcssa1668 = phi i1 [ true, %.lr.ph2058 ], [ %3031, %._crit_edge2059.loopexit ]
  %3032 = getelementptr inbounds i8, ptr %3016, i64 1104
  %3033 = load i32, ptr %3032, align 8, !tbaa !140
  %.not2177 = icmp eq i32 %3033, 0
  br i1 %.not2177, label %.thread1545, label %.lr.ph2071

._crit_edge2059.thread:                           ; preds = %3015
  %3034 = getelementptr inbounds i8, ptr %3016, i64 1104
  %3035 = load i32, ptr %3034, align 8, !tbaa !140
  %.not21772372 = icmp eq i32 %3035, 0
  br i1 %.not21772372, label %.thread1545.thread2377, label %.lr.ph2071.split.preheader

.lr.ph2071:                                       ; preds = %._crit_edge2059
  br i1 %.lcssa1668, label %.thread1545.thread, label %.lr.ph2071.split.preheader

.lr.ph2071.split.preheader:                       ; preds = %._crit_edge2059.thread, %.lr.ph2071
  %.in2547 = phi i32 [ %3033, %.lr.ph2071 ], [ %3035, %._crit_edge2059.thread ]
  %3036 = zext i32 %.in2547 to i64
  %.in = getelementptr inbounds i8, ptr %3016, i64 1112
  %3037 = load ptr, ptr %.in, align 8, !tbaa !141
  br label %.lr.ph2071.split

.lr.ph2071.split:                                 ; preds = %.lr.ph2071.split.preheader, %._crit_edge2068
  %.09392069 = phi i64 [ %3052, %._crit_edge2068 ], [ 0, %.lr.ph2071.split.preheader ]
  %3038 = getelementptr inbounds ptr, ptr %3037, i64 %.09392069
  %3039 = load ptr, ptr %3038, align 8, !tbaa !46
  %3040 = getelementptr inbounds i8, ptr %3039, i64 1120
  %3041 = load i32, ptr %3040, align 8, !tbaa !137
  %3042 = zext i32 %3041 to i64
  %.not2178 = icmp eq i32 %3041, 0
  br i1 %.not2178, label %._crit_edge2068, label %.lr.ph2067

.lr.ph2067:                                       ; preds = %.lr.ph2071.split
  %3043 = getelementptr inbounds i8, ptr %3039, i64 1128
  %3044 = load ptr, ptr %3043, align 8, !tbaa !138
  br label %3047

3045:                                             ; preds = %3047
  %3046 = add nuw nsw i64 %.09382065, 1
  %exitcond2362.not = icmp eq i64 %3046, %3042
  br i1 %exitcond2362.not, label %._crit_edge2068, label %3047, !llvm.loop !142

3047:                                             ; preds = %.lr.ph2067, %3045
  %.09382065 = phi i64 [ 0, %.lr.ph2067 ], [ %3046, %3045 ]
  %3048 = getelementptr inbounds i32, ptr %3044, i64 %.09382065
  %3049 = load i32, ptr %3048, align 4, !tbaa !48
  %3050 = zext i32 %3049 to i64
  %3051 = icmp eq i64 %.09272087, %3050
  br i1 %3051, label %.thread1545.thread, label %3045

._crit_edge2068:                                  ; preds = %3045, %.lr.ph2071.split
  %3052 = add nuw nsw i64 %.09392069, 1
  %exitcond2363.not = icmp eq i64 %3052, %3036
  br i1 %exitcond2363.not, label %.thread1545.thread2377, label %.lr.ph2071.split, !llvm.loop !143

.thread1545:                                      ; preds = %._crit_edge2059
  br i1 %.lcssa1668, label %.thread1545.thread, label %.thread1545.thread2377

.thread1545.thread:                               ; preds = %.thread1545, %.lr.ph2071, %3047
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #11
  br label %.critedge

.thread1545.thread2377:                           ; preds = %._crit_edge2068, %._crit_edge2059.thread, %.thread1545, %2998, %3009
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #11
  %.pn1138 = load ptr, ptr %432, align 8, !tbaa !46
  %storemerge.in = getelementptr inbounds i8, ptr %.pn1138, i64 1096
  %storemerge = load ptr, ptr %storemerge.in, align 8, !tbaa !134
  store ptr %storemerge, ptr %432, align 8, !tbaa !46
  %.not1127 = icmp eq ptr %storemerge, null
  br i1 %.not1127, label %.critedge, label %.lr.ph2080, !llvm.loop !144

3053:                                             ; preds = %3013, %3000
  %.pn1130 = phi { ptr, i32 } [ %3014, %3013 ], [ %3001, %3000 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #11
  br label %3058

.critedge:                                        ; preds = %.thread1545.thread2377, %.lr.ph2080, %2990, %2982, %.thread1545.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %432) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %428) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %427) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %425) #11
  %3054 = add nuw nsw i64 %.09282083, 1
  %3055 = load i32, ptr %2923, align 8, !tbaa !127
  %3056 = zext i32 %3055 to i64
  %3057 = icmp ult i64 %3054, %3056
  br i1 %3057, label %2928, label %._crit_edge2086, !llvm.loop !145

3058:                                             ; preds = %3053, %2993
  %.pn1130.pn = phi { ptr, i32 } [ %.pn1130, %3053 ], [ %2994, %2993 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %432) #11
  br label %3059

3059:                                             ; preds = %3058, %2976, %2965
  %.pn1130.pn.pn = phi { ptr, i32 } [ %.pn1130.pn, %3058 ], [ %2966, %2965 ], [ %.pn1123.pn.pn, %2976 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %428) #11
  br label %3060

3060:                                             ; preds = %3059, %2944
  %.pn1130.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn, %3059 ], [ %2945, %2944 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %427) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #11
  br label %3061

3061:                                             ; preds = %3060, %2942
  %.pn1130.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn, %3060 ], [ %2943, %2942 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %425) #11
  br label %3071

3062:                                             ; preds = %._crit_edge2086
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %424) #11
  %3063 = add nuw nsw i64 %.09272087, 1
  %3064 = load ptr, ptr %642, align 8, !tbaa !39
  %3065 = getelementptr inbounds i8, ptr %3064, i64 16
  %3066 = load i32, ptr %3065, align 8, !tbaa !40
  %3067 = zext i32 %3066 to i64
  %3068 = icmp ult i64 %3063, %3067
  br i1 %3068, label %.lr.ph2089, label %.preheader1559, !llvm.loop !146

3069:                                             ; preds = %._crit_edge2086
  %3070 = landingpad { ptr, i32 }
          cleanup
  br label %3071

3071:                                             ; preds = %3069, %3061
  %.pn1130.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn, %3061 ], [ %3070, %3069 ]
  call void @_ZNSt6vectorIPK6aiNodeSaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %424) #11
  br label %4068

.preheader1558:                                   ; preds = %._crit_edge2092
  %.not2181 = icmp eq i32 %3082, 0
  br i1 %.not2181, label %._crit_edge2109, label %.lr.ph2108

.lr.ph2108:                                       ; preds = %.preheader1558
  %3072 = getelementptr inbounds i8, ptr %0, i64 40
  %3073 = getelementptr inbounds i8, ptr %0, i64 112
  br label %3104

3074:                                             ; preds = %.lr.ph2094, %._crit_edge2092
  %.09372093 = phi i64 [ 0, %.lr.ph2094 ], [ %3079, %._crit_edge2092 ]
  %3075 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %.09372093) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %439) #11
  %3076 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3075) #11
  store ptr %3076, ptr %439, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %440) #11
  %3077 = call ptr @_ZNSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3075) #11
  store ptr %3077, ptr %440, align 8
  %3078 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef nonnull align 8 dereferenceable(8) %440) #11
  br i1 %3078, label %.lr.ph2091, label %._crit_edge2092

._crit_edge2092:                                  ; preds = %3097, %3074
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %440) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %439) #11
  %3079 = add nuw nsw i64 %.09372093, 1
  %3080 = load ptr, ptr %642, align 8, !tbaa !39
  %3081 = getelementptr inbounds i8, ptr %3080, i64 16
  %3082 = load i32, ptr %3081, align 8, !tbaa !40
  %3083 = zext i32 %3082 to i64
  %3084 = icmp ult i64 %3079, %3083
  br i1 %3084, label %3074, label %.preheader1558, !llvm.loop !147

.lr.ph2091:                                       ; preds = %3074, %3097
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %441) #11
  %3085 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %439) #11
  %3086 = load ptr, ptr %3085, align 8, !tbaa !46
  store ptr %3086, ptr %441, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %442) #11
  %3087 = invoke ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2917, ptr noundef nonnull align 8 dereferenceable(8) %441)
          to label %3088 unwind label %3095

3088:                                             ; preds = %.lr.ph2091
  store ptr %3087, ptr %442, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %443) #11
  %3089 = call ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %2917) #11
  store ptr %3089, ptr %443, align 8
  %3090 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKPK6aiNodelEES8_(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull align 8 dereferenceable(8) %443) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %443) #11
  br i1 %3090, label %3091, label %3097

3091:                                             ; preds = %3088
  %3092 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %3093 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %2917, ptr noundef nonnull align 8 dereferenceable(8) %441)
          to label %3094 unwind label %3095

3094:                                             ; preds = %3091
  store i64 %3092, ptr %3093, align 8, !tbaa !47
  br label %3097

3095:                                             ; preds = %3091, %.lr.ph2091
  %3096 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %442) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %441) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %440) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %439) #11
  br label %4068

3097:                                             ; preds = %3094, %3088
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %442) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %441) #11
  %3098 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPK6aiNodeSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %439) #11
  %3099 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %439, ptr noundef nonnull align 8 dereferenceable(8) %440) #11
  br i1 %3099, label %.lr.ph2091, label %._crit_edge2092

._crit_edge2109:                                  ; preds = %3414, %._crit_edge2055, %.preheader1559, %.preheader1558
  %3100 = getelementptr inbounds i8, ptr %0, i64 160
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE5clearEv(ptr noundef nonnull align 8 dereferenceable(48) %3100) #11
  %3101 = load ptr, ptr %642, align 8, !tbaa !39
  %3102 = getelementptr inbounds i8, ptr %3101, i64 80
  %3103 = load i32, ptr %3102, align 8, !tbaa !148
  %.not2184 = icmp eq i32 %3103, 0
  br i1 %.not2184, label %._crit_edge2113, label %.lr.ph2112

3104:                                             ; preds = %.lr.ph2108, %3414
  %3105 = phi ptr [ %3080, %.lr.ph2108 ], [ %3416, %3414 ]
  %.09312106 = phi i64 [ 0, %.lr.ph2108 ], [ %3415, %3414 ]
  %3106 = getelementptr inbounds i8, ptr %3105, i64 24
  %3107 = load ptr, ptr %3106, align 8, !tbaa !45
  %3108 = getelementptr inbounds ptr, ptr %3107, i64 %.09312106
  %3109 = load ptr, ptr %3108, align 8, !tbaa !46
  %3110 = call noundef zeroext i1 @_ZNK6aiMesh8HasBonesEv(ptr noundef nonnull align 8 dereferenceable(1320) %3109)
  br i1 %3110, label %3111, label %3414

3111:                                             ; preds = %3104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %444) #11
  %3112 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %3112, ptr %444, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %445) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %446) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %447) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %447)
          to label %3113 unwind label %3145

3113:                                             ; preds = %3111
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(32) %446)
          to label %3114 unwind label %3147

3114:                                             ; preds = %3113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %447) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %448) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %448, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef nonnull @.str.261)
          to label %3115 unwind label %3150

3115:                                             ; preds = %3114
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA5_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull align 1 dereferenceable(5) @.str.358)
          to label %3116 unwind label %3152

3116:                                             ; preds = %3115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %449) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %450) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %450) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %449, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %450)
          to label %3117 unwind label %3155

3117:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %451) #11
  store i32 101, ptr %451, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(32) %449, ptr noundef nonnull align 4 dereferenceable(4) %451)
          to label %3118 unwind label %3157

3118:                                             ; preds = %3117
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %451) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %450) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %450) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %449) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %452) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %453) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull @.str.359, ptr noundef nonnull align 1 dereferenceable(1) %453)
          to label %3119 unwind label %3160

3119:                                             ; preds = %3118
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %454) #11
  store double 5.000000e+01, ptr %454, align 8, !tbaa !58
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJdEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(32) %452, ptr noundef nonnull align 8 dereferenceable(8) %454)
          to label %3120 unwind label %3162

3120:                                             ; preds = %3119
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %454) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %453) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %452) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %455) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %456) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull @.str.360, ptr noundef nonnull align 1 dereferenceable(1) %456)
          to label %3121 unwind label %3165

3121:                                             ; preds = %3120
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA7_KcEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull align 1 dereferenceable(7) @.str.361)
          to label %3122 unwind label %3167

3122:                                             ; preds = %3121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %456) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %455) #11
  %3123 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3124 = trunc nuw i8 %3123 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %445, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3124, i32 noundef 1)
          to label %3125 unwind label %3170

3125:                                             ; preds = %3122
  %3126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %641, i64 noundef %.09312106) #11
  %3127 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3072, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull align 8 dereferenceable(8) %3126)
          to label %3128 unwind label %3170

3128:                                             ; preds = %3125
  %3129 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %.09312106) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %457) #11
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %458) #11
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  %3130 = trunc nuw i64 %.09312106 to i32
  %3131 = load ptr, ptr %642, align 8, !tbaa !39
  %3132 = getelementptr inbounds i8, ptr %3131, i64 8
  %3133 = load ptr, ptr %3132, align 8, !tbaa !133
  %3134 = invoke noundef ptr @_Z17get_node_for_meshjP6aiNode(i32 noundef %3130, ptr noundef %3133)
          to label %3135 unwind label %3172

3135:                                             ; preds = %3128
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %459) #11
  %3136 = load ptr, ptr %642, align 8, !tbaa !39
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix4x4t) align 4 %459, ptr noundef %3134, ptr noundef %3136)
          to label %3137 unwind label %3174

3137:                                             ; preds = %3135
  %3138 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %.09312106) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %460) #11
  %3139 = call ptr @_ZNKSt6vectorIPK6aiNodeSaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3138) #11
  store ptr %3139, ptr %460, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %461) #11
  %3140 = call ptr @_ZNKSt6vectorIPK6aiNodeSaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3138) #11
  store ptr %3140, ptr %461, align 8
  %3141 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef nonnull align 8 dereferenceable(8) %461) #11
  br i1 %3141, label %.lr.ph2104, label %._crit_edge2105

.lr.ph2104:                                       ; preds = %3137
  %3142 = getelementptr inbounds i8, ptr %3109, i64 216
  %3143 = getelementptr inbounds i8, ptr %3109, i64 224
  br label %3176

._crit_edge2105:                                  ; preds = %3308, %3137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %461) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %460) #11
  %3144 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  %.not = icmp eq i64 %3144, 0
  br i1 %.not, label %3413, label %3334

3145:                                             ; preds = %3111
  %3146 = landingpad { ptr, i32 }
          cleanup
  br label %3149

3147:                                             ; preds = %3113
  %3148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #11
  br label %3149

3149:                                             ; preds = %3147, %3145
  %.pn1071 = phi { ptr, i32 } [ %3148, %3147 ], [ %3146, %3145 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %447) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %447) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #11
  br label %3424

3150:                                             ; preds = %3114
  %3151 = landingpad { ptr, i32 }
          cleanup
  br label %3154

3152:                                             ; preds = %3115
  %3153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #11
  br label %3154

3154:                                             ; preds = %3152, %3150
  %.pn1073 = phi { ptr, i32 } [ %3153, %3152 ], [ %3151, %3150 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #11
  br label %3423

3155:                                             ; preds = %3116
  %3156 = landingpad { ptr, i32 }
          cleanup
  br label %3159

3157:                                             ; preds = %3117
  %3158 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %451) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #11
  br label %3159

3159:                                             ; preds = %3157, %3155
  %.pn1075 = phi { ptr, i32 } [ %3158, %3157 ], [ %3156, %3155 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %450) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %450) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %449) #11
  br label %3423

3160:                                             ; preds = %3118
  %3161 = landingpad { ptr, i32 }
          cleanup
  br label %3164

3162:                                             ; preds = %3119
  %3163 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %454) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #11
  br label %3164

3164:                                             ; preds = %3162, %3160
  %.pn1077 = phi { ptr, i32 } [ %3163, %3162 ], [ %3161, %3160 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %453) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %453) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %452) #11
  br label %3423

3165:                                             ; preds = %3120
  %3166 = landingpad { ptr, i32 }
          cleanup
  br label %3169

3167:                                             ; preds = %3121
  %3168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #11
  br label %3169

3169:                                             ; preds = %3167, %3165
  %.pn1079 = phi { ptr, i32 } [ %3168, %3167 ], [ %3166, %3165 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %456) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %456) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %455) #11
  br label %3423

3170:                                             ; preds = %3125, %3122
  %3171 = landingpad { ptr, i32 }
          cleanup
  br label %3423

3172:                                             ; preds = %3128
  %3173 = landingpad { ptr, i32 }
          cleanup
  br label %3422

3174:                                             ; preds = %3135
  %3175 = landingpad { ptr, i32 }
          cleanup
  br label %3421

3176:                                             ; preds = %.lr.ph2104, %3308
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %462) #11
  %3177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %460) #11
  %3178 = load ptr, ptr %3177, align 8, !tbaa !46
  store ptr %3178, ptr %462, align 8, !tbaa !46
  %3179 = load i32, ptr %3142, align 8, !tbaa !127
  %.not2182 = icmp eq i32 %3179, 0
  br i1 %.not2182, label %.loopexit.thread, label %.lr.ph2097

.lr.ph2097:                                       ; preds = %3176, %3193
  %.09212095 = phi i64 [ %3194, %3193 ], [ 0, %3176 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %463) #11
  %3180 = load ptr, ptr %3143, align 8, !tbaa !129
  %3181 = getelementptr inbounds ptr, ptr %3180, i64 %.09212095
  %3182 = load ptr, ptr %3181, align 8, !tbaa !46
  %3183 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3182)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %464) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %463, ptr noundef %3183, ptr noundef nonnull align 1 dereferenceable(1) %464)
          to label %3184 unwind label %3189

3184:                                             ; preds = %.lr.ph2097
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %464) #11
  %3185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %423, ptr noundef nonnull align 8 dereferenceable(32) %463)
          to label %3186 unwind label %3191

3186:                                             ; preds = %3184
  %3187 = load ptr, ptr %3185, align 8, !tbaa !46
  %3188 = load ptr, ptr %462, align 8, !tbaa !46
  %.not1088 = icmp eq ptr %3187, %3188
  br i1 %.not1088, label %.loopexit, label %3193

3189:                                             ; preds = %.lr.ph2097
  %3190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %464) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %464) #11
  br label %3198

3191:                                             ; preds = %3184
  %3192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #11
  br label %3198

3193:                                             ; preds = %3186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %463) #11
  %3194 = add nuw nsw i64 %.09212095, 1
  %3195 = load i32, ptr %3142, align 8, !tbaa !127
  %3196 = zext i32 %3195 to i64
  %3197 = icmp ult i64 %3194, %3196
  br i1 %3197, label %.lr.ph2097, label %.loopexit.thread, !llvm.loop !149

3198:                                             ; preds = %3191, %3189
  %.pn1086 = phi { ptr, i32 } [ %3192, %3191 ], [ %3190, %3189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %463) #11
  br label %3333

.loopexit:                                        ; preds = %3186
  %3199 = load ptr, ptr %3143, align 8, !tbaa !129
  %3200 = getelementptr inbounds ptr, ptr %3199, i64 %.09212095
  %3201 = load ptr, ptr %3200, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %463) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %463) #11
  %.not1089 = icmp eq ptr %3201, null
  br i1 %.not1089, label %.loopexit.thread, label %3205

.loopexit.thread:                                 ; preds = %3193, %3176, %.loopexit
  %3202 = invoke { ptr, i8 } @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE6insertERKS2_(ptr noundef nonnull align 8 dereferenceable(48) %458, ptr noundef nonnull align 8 dereferenceable(8) %462)
          to label %3205 unwind label %3203

3203:                                             ; preds = %.loopexit.thread
  %3204 = landingpad { ptr, i32 }
          cleanup
  br label %3333

3205:                                             ; preds = %.loopexit.thread, %.loopexit
  %.not10892384 = phi i1 [ true, %.loopexit.thread ], [ false, %.loopexit ]
  %.29242382 = phi ptr [ null, %.loopexit.thread ], [ %3201, %.loopexit ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %465) #11
  %3206 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %3206, ptr %465, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %466) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %467) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %468) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef nonnull @.str.261, ptr noundef nonnull align 1 dereferenceable(1) %468)
          to label %3207 unwind label %3219

3207:                                             ; preds = %3205
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %467)
          to label %3208 unwind label %3221

3208:                                             ; preds = %3207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %468) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %467) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %469) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %469, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef nonnull @.str.353)
          to label %3209 unwind label %3224

3209:                                             ; preds = %3208
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRKlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA8_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(32) %469, ptr noundef nonnull align 1 dereferenceable(8) @.str.362)
          to label %3210 unwind label %3226

3210:                                             ; preds = %3209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %469) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %470) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %471) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %471)
          to label %3211 unwind label %3229

3211:                                             ; preds = %3210
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %472) #11
  store i32 100, ptr %472, align 4, !tbaa !48
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull align 4 dereferenceable(4) %472)
          to label %3212 unwind label %3231

3212:                                             ; preds = %3211
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %472) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %471) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %470) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %473) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %474) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %473, ptr noundef nonnull @.str.363, ptr noundef nonnull align 1 dereferenceable(1) %474)
          to label %3213 unwind label %3234

3213:                                             ; preds = %3212
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRA1_KcS5_EEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %473, ptr noundef nonnull align 1 dereferenceable(1) @.str.67, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %3214 unwind label %3236

3214:                                             ; preds = %3213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %473) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %474) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %473) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %475) #11
  call void @_ZNSt3setIiSt4lessIiESaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %475) #11
  br i1 %.not10892384, label %3289, label %3215

3215:                                             ; preds = %3214
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %476) #11
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %476) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %477) #11
  call void @_ZNSt6vectorIdSaIdEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %477) #11
  %3216 = getelementptr inbounds i8, ptr %.29242382, i64 1028
  %3217 = load i32, ptr %3216, align 4, !tbaa !150
  %.not2183 = icmp eq i32 %3217, 0
  br i1 %.not2183, label %._crit_edge2102, label %.lr.ph2101

.lr.ph2101:                                       ; preds = %3215
  %3218 = getelementptr inbounds i8, ptr %.29242382, i64 1048
  br label %3239

._crit_edge2102:                                  ; preds = %3264, %3215
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %482) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %483) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull @.str.352, ptr noundef nonnull align 1 dereferenceable(1) %483)
          to label %3274 unwind label %3278

3219:                                             ; preds = %3205
  %3220 = landingpad { ptr, i32 }
          cleanup
  br label %3223

3221:                                             ; preds = %3207
  %3222 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #11
  br label %3223

3223:                                             ; preds = %3221, %3219
  %.pn1090 = phi { ptr, i32 } [ %3222, %3221 ], [ %3220, %3219 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %468) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %467) #11
  br label %3332

3224:                                             ; preds = %3208
  %3225 = landingpad { ptr, i32 }
          cleanup
  br label %3228

3226:                                             ; preds = %3209
  %3227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %469) #11
  br label %3228

3228:                                             ; preds = %3226, %3224
  %.pn1092 = phi { ptr, i32 } [ %3227, %3226 ], [ %3225, %3224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %469) #11
  br label %3331

3229:                                             ; preds = %3210
  %3230 = landingpad { ptr, i32 }
          cleanup
  br label %3233

3231:                                             ; preds = %3211
  %3232 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %472) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #11
  br label %3233

3233:                                             ; preds = %3231, %3229
  %.pn1094 = phi { ptr, i32 } [ %3232, %3231 ], [ %3230, %3229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %471) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %471) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %470) #11
  br label %3331

3234:                                             ; preds = %3212
  %3235 = landingpad { ptr, i32 }
          cleanup
  br label %3238

3236:                                             ; preds = %3213
  %3237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %473) #11
  br label %3238

3238:                                             ; preds = %3236, %3234
  %.pn1096 = phi { ptr, i32 } [ %3237, %3236 ], [ %3235, %3234 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %474) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %474) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %473) #11
  br label %3331

3239:                                             ; preds = %.lr.ph2101, %3264
  %.09162099 = phi i64 [ 0, %.lr.ph2101 ], [ %3265, %3264 ]
  %.09172098 = phi i32 [ -1, %.lr.ph2101 ], [ %.1918, %3264 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %478) #11
  %3240 = load ptr, ptr %3218, align 8, !tbaa !152
  %3241 = getelementptr inbounds %struct.aiVertexWeight, ptr %3240, i64 %.09162099
  %3242 = load i32, ptr %3241, align 4, !tbaa !153
  %3243 = zext i32 %3242 to i64
  %3244 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3129, i64 noundef %3243) #11
  %3245 = load i32, ptr %3244, align 4, !tbaa !48
  store i32 %3245, ptr %478, align 4, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %479) #11
  %3246 = invoke ptr @_ZNSt3setIiSt4lessIiESaIiEE4findERKi(ptr noundef nonnull align 8 dereferenceable(48) %475, ptr noundef nonnull align 4 dereferenceable(4) %478)
          to label %3247 unwind label %3252

3247:                                             ; preds = %3239
  store ptr %3246, ptr %479, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %480) #11
  %3248 = call ptr @_ZNKSt3setIiSt4lessIiESaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %475) #11
  store ptr %3248, ptr %480, align 8
  %3249 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIiES2_(ptr noundef nonnull align 8 dereferenceable(8) %479, ptr noundef nonnull align 8 dereferenceable(8) %480) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %480) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %479) #11
  %3250 = load i32, ptr %478, align 4, !tbaa !48
  %3251 = icmp eq i32 %3250, %.09172098
  %brmerge = or i1 %3249, %3251
  br i1 %brmerge, label %3264, label %3254

3252:                                             ; preds = %3239
  %3253 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %479) #11
  br label %3273

3254:                                             ; preds = %3247
  %3255 = invoke { ptr, i8 } @_ZNSt3setIiSt4lessIiESaIiEE6insertERKi(ptr noundef nonnull align 8 dereferenceable(48) %475, ptr noundef nonnull align 4 dereferenceable(4) %478)
          to label %3256 unwind label %3269

3256:                                             ; preds = %3254
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %476, ptr noundef nonnull align 4 dereferenceable(4) %478)
          to label %3257 unwind label %3269

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %481) #11
  %3258 = load ptr, ptr %3218, align 8, !tbaa !152
  %3259 = getelementptr inbounds %struct.aiVertexWeight, ptr %3258, i64 %.09162099, i32 1
  %3260 = load float, ptr %3259, align 4, !tbaa !155
  %3261 = fpext float %3260 to double
  store double %3261, ptr %481, align 8, !tbaa !58
  invoke void @_ZNSt6vectorIdSaIdEE9push_backEOd(ptr noundef nonnull align 8 dereferenceable(24) %477, ptr noundef nonnull align 8 dereferenceable(8) %481)
          to label %3262 unwind label %3271

3262:                                             ; preds = %3257
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %481) #11
  %3263 = load i32, ptr %478, align 4, !tbaa !48
  br label %3264

3264:                                             ; preds = %3247, %3262
  %.1918 = phi i32 [ %3263, %3262 ], [ %.09172098, %3247 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %478) #11
  %3265 = add nuw nsw i64 %.09162099, 1
  %3266 = load i32, ptr %3216, align 4, !tbaa !150
  %3267 = zext i32 %3266 to i64
  %3268 = icmp ult i64 %3265, %3267
  br i1 %3268, label %3239, label %._crit_edge2102, !llvm.loop !156

3269:                                             ; preds = %3256, %3254
  %3270 = landingpad { ptr, i32 }
          cleanup
  br label %3273

3271:                                             ; preds = %3257
  %3272 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %481) #11
  br label %3273

3273:                                             ; preds = %3271, %3269, %3252
  %.pn1110 = phi { ptr, i32 } [ %3272, %3271 ], [ %3270, %3269 ], [ %3253, %3252 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %478) #11
  br label %3288

3274:                                             ; preds = %._crit_edge2102
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIiSaIiEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull align 8 dereferenceable(24) %476)
          to label %3275 unwind label %3280

3275:                                             ; preds = %3274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %483) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %482) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %484) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %485) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull @.str.364, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %3276 unwind label %3283

3276:                                             ; preds = %3275
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJRSt6vectorIdSaIdEEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull align 8 dereferenceable(24) %477)
          to label %3277 unwind label %3285

3277:                                             ; preds = %3276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %485) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #11
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %477) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %477) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %476) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %476) #11
  br label %3289

3278:                                             ; preds = %._crit_edge2102
  %3279 = landingpad { ptr, i32 }
          cleanup
  br label %3282

3280:                                             ; preds = %3274
  %3281 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #11
  br label %3282

3282:                                             ; preds = %3280, %3278
  %.pn1098 = phi { ptr, i32 } [ %3281, %3280 ], [ %3279, %3278 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %483) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %483) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %482) #11
  br label %3288

3283:                                             ; preds = %3275
  %3284 = landingpad { ptr, i32 }
          cleanup
  br label %3287

3285:                                             ; preds = %3276
  %3286 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #11
  br label %3287

3287:                                             ; preds = %3285, %3283
  %.pn1100 = phi { ptr, i32 } [ %3286, %3285 ], [ %3284, %3283 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %485) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %484) #11
  br label %3288

3288:                                             ; preds = %3287, %3282, %3273
  %.pn1110.pn = phi { ptr, i32 } [ %.pn1110, %3273 ], [ %.pn1100, %3287 ], [ %.pn1098, %3282 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %477) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %477) #11
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %476) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %476) #11
  br label %3330

3289:                                             ; preds = %3277, %3214
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %486) #11
  %3290 = load ptr, ptr %462, align 8, !tbaa !46
  %3291 = load ptr, ptr %642, align 8, !tbaa !39
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix4x4t) align 4 %486, ptr noundef %3290, ptr noundef %3291)
          to label %3292 unwind label %3311

3292:                                             ; preds = %3289
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %487) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %487, ptr noundef nonnull align 4 dereferenceable(64) %486, i64 64, i1 false), !tbaa.struct !157
  %3293 = invoke noundef nonnull align 4 dereferenceable(64) ptr @_ZN12aiMatrix4x4tIfE7InverseEv(ptr noundef nonnull align 4 dereferenceable(64) %487)
          to label %3294 unwind label %3313

3294:                                             ; preds = %3292
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %488) #11
  invoke void @_ZNK12aiMatrix4x4tIfEmlERKS0_(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix4x4t) align 4 %488, ptr noundef nonnull align 4 dereferenceable(64) %487, ptr noundef nonnull align 4 dereferenceable(64) %459)
          to label %3295 unwind label %3315

3295:                                             ; preds = %3294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %489) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %490) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %489, ptr noundef nonnull @.str.365, ptr noundef nonnull align 1 dereferenceable(1) %490)
          to label %3296 unwind label %3317

3296:                                             ; preds = %3295
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJR12aiMatrix4x4tIfEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %489, ptr noundef nonnull align 4 dereferenceable(64) %488)
          to label %3297 unwind label %3319

3297:                                             ; preds = %3296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %489) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %490) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %489) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %491) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %492) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull @.str.366, ptr noundef nonnull align 1 dereferenceable(1) %492)
          to label %3298 unwind label %3322

3298:                                             ; preds = %3297
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJR12aiMatrix4x4tIfEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(32) %491, ptr noundef nonnull align 4 dereferenceable(64) %486)
          to label %3299 unwind label %3324

3299:                                             ; preds = %3298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %492) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %491) #11
  %3300 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3301 = trunc nuw i8 %3300 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %466, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3301, i32 noundef 1)
          to label %3302 unwind label %3315

3302:                                             ; preds = %3299
  %3303 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RKlRlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3072, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(8) %444)
          to label %3304 unwind label %3315

3304:                                             ; preds = %3302
  %3305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %3073, ptr noundef nonnull align 8 dereferenceable(8) %462)
          to label %3306 unwind label %3315

3306:                                             ; preds = %3304
  %3307 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlRKlEEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3072, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %3305, ptr noundef nonnull align 8 dereferenceable(8) %465)
          to label %3308 unwind label %3315

3308:                                             ; preds = %3306
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %488) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %487) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %486) #11
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %475) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %475) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %466) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %466) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %465) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %462) #11
  %3309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %460) #11
  %3310 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPK6aiNodeSt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef nonnull align 8 dereferenceable(8) %461) #11
  br i1 %3310, label %3176, label %._crit_edge2105

3311:                                             ; preds = %3289
  %3312 = landingpad { ptr, i32 }
          cleanup
  br label %3329

3313:                                             ; preds = %3292
  %3314 = landingpad { ptr, i32 }
          cleanup
  br label %3328

3315:                                             ; preds = %3306, %3304, %3302, %3299, %3294
  %3316 = landingpad { ptr, i32 }
          cleanup
  br label %3327

3317:                                             ; preds = %3295
  %3318 = landingpad { ptr, i32 }
          cleanup
  br label %3321

3319:                                             ; preds = %3296
  %3320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %489) #11
  br label %3321

3321:                                             ; preds = %3319, %3317
  %.pn1102 = phi { ptr, i32 } [ %3320, %3319 ], [ %3318, %3317 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %490) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %490) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %489) #11
  br label %3327

3322:                                             ; preds = %3297
  %3323 = landingpad { ptr, i32 }
          cleanup
  br label %3326

3324:                                             ; preds = %3298
  %3325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %491) #11
  br label %3326

3326:                                             ; preds = %3324, %3322
  %.pn1104 = phi { ptr, i32 } [ %3325, %3324 ], [ %3323, %3322 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %492) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %492) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %491) #11
  br label %3327

3327:                                             ; preds = %3326, %3321, %3315
  %.pn1106 = phi { ptr, i32 } [ %3316, %3315 ], [ %.pn1104, %3326 ], [ %.pn1102, %3321 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %488) #11
  br label %3328

3328:                                             ; preds = %3327, %3313
  %.pn1106.pn = phi { ptr, i32 } [ %.pn1106, %3327 ], [ %3314, %3313 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %487) #11
  br label %3329

3329:                                             ; preds = %3328, %3311
  %.pn1106.pn.pn = phi { ptr, i32 } [ %.pn1106.pn, %3328 ], [ %3312, %3311 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %486) #11
  br label %3330

3330:                                             ; preds = %3329, %3288
  %.pn1110.pn.pn = phi { ptr, i32 } [ %.pn1110.pn, %3288 ], [ %.pn1106.pn.pn, %3329 ]
  call void @_ZNSt3setIiSt4lessIiESaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %475) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %475) #11
  br label %3331

3331:                                             ; preds = %3330, %3238, %3233, %3228
  %.pn1110.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn, %3330 ], [ %.pn1096, %3238 ], [ %.pn1094, %3233 ], [ %.pn1092, %3228 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %466) #11
  br label %3332

3332:                                             ; preds = %3331, %3223
  %.pn1110.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn.pn, %3331 ], [ %.pn1090, %3223 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %466) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %465) #11
  br label %3333

3333:                                             ; preds = %3332, %3203, %3198
  %.pn1110.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn.pn.pn, %3332 ], [ %3204, %3203 ], [ %.pn1086, %3198 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %462) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %461) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %460) #11
  br label %3421

3334:                                             ; preds = %._crit_edge2105
  %3335 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  %.not1081 = icmp eq i64 %3335, 0
  br i1 %.not1081, label %3413, label %3336

3336:                                             ; preds = %3334
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %493) #11
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %493)
          to label %3337 unwind label %3367

3337:                                             ; preds = %3336
  %3338 = getelementptr inbounds i8, ptr %493, i64 16
  %3339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.367)
          to label %3340 unwind label %3369

3340:                                             ; preds = %3337
  %3341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.368)
          to label %3342 unwind label %3369

3342:                                             ; preds = %3340
  %3343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3341, i64 noundef %.09312106)
          to label %3344 unwind label %3369

3344:                                             ; preds = %3342
  %3345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3343, ptr noundef nonnull @.str.369)
          to label %3346 unwind label %3369

3346:                                             ; preds = %3344
  %3347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.370)
          to label %3348 unwind label %3369

3348:                                             ; preds = %3346
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %494) #11
  %3349 = call ptr @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  store ptr %3349, ptr %494, align 8
  %3350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK6aiBoneEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %494) #11
  %3351 = load ptr, ptr %3350, align 8, !tbaa !46
  %3352 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3351)
  %3353 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef %3352)
          to label %3354 unwind label %3371

3354:                                             ; preds = %3348
  %3355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3353, ptr noundef nonnull @.str.332)
          to label %3356 unwind label %3371

3356:                                             ; preds = %3354
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #11
  %3357 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  %3358 = icmp ugt i64 %3357, 1
  br i1 %3358, label %3359, label %3373

3359:                                             ; preds = %3356
  %3360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.371)
          to label %3361 unwind label %3369

3361:                                             ; preds = %3359
  %3362 = call noundef i64 @_ZNKSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  %3363 = add i64 %3362, -1
  %3364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3360, i64 noundef %3363)
          to label %3365 unwind label %3369

3365:                                             ; preds = %3361
  %3366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3364, ptr noundef nonnull @.str.372)
          to label %3373 unwind label %3369

3367:                                             ; preds = %3336
  %3368 = landingpad { ptr, i32 }
          cleanup
  br label %3412

3369:                                             ; preds = %3400, %3398, %3394, %3390, %3388, %3375, %3373, %3365, %3361, %3359, %3346, %3344, %3342, %3340, %3337
  %3370 = landingpad { ptr, i32 }
          cleanup
  br label %3411

3371:                                             ; preds = %3354, %3348
  %3372 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #11
  br label %3411

3373:                                             ; preds = %3365, %3356
  %3374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.373)
          to label %3375 unwind label %3369

3375:                                             ; preds = %3373
  %3376 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.374)
          to label %3377 unwind label %3369

3377:                                             ; preds = %3375
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %495) #11
  %3378 = call ptr @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  store ptr %3378, ptr %495, align 8
  %3379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt23_Rb_tree_const_iteratorIPK6aiNodeEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %495) #11
  %3380 = load ptr, ptr %3379, align 8, !tbaa !46
  %3381 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3380)
  %3382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef %3381)
          to label %3383 unwind label %3396

3383:                                             ; preds = %3377
  %3384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3382, ptr noundef nonnull @.str.332)
          to label %3385 unwind label %3396

3385:                                             ; preds = %3383
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %495) #11
  %3386 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  %3387 = icmp ugt i64 %3386, 1
  br i1 %3387, label %3388, label %3398

3388:                                             ; preds = %3385
  %3389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.371)
          to label %3390 unwind label %3369

3390:                                             ; preds = %3388
  %3391 = call noundef i64 @_ZNKSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  %3392 = add i64 %3391, -1
  %3393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %3389, i64 noundef %3392)
          to label %3394 unwind label %3369

3394:                                             ; preds = %3390
  %3395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3393, ptr noundef nonnull @.str.372)
          to label %3398 unwind label %3369

3396:                                             ; preds = %3383, %3377
  %3397 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %495) #11
  br label %3411

3398:                                             ; preds = %3394, %3385
  %3399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.375)
          to label %3400 unwind label %3369

3400:                                             ; preds = %3398
  %3401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3338, ptr noundef nonnull @.str.376)
          to label %3402 unwind label %3369

3402:                                             ; preds = %3400
  %3403 = call ptr @__cxa_allocate_exception(i64 16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %496) #11
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %496, ptr noundef nonnull align 8 dereferenceable(128) %493)
          to label %3404 unwind label %.thread1551

3404:                                             ; preds = %3402
  invoke void @_ZN17DeadlyExportErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(16) %3403, ptr noundef nonnull align 8 dereferenceable(32) %496)
          to label %3406 unwind label %.thread1555

.thread1555:                                      ; preds = %3404
  %3405 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %496) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %496) #11
  br label %3410

3406:                                             ; preds = %3404
  invoke void @__cxa_throw(ptr nonnull %3403, ptr nonnull @_ZTI17DeadlyExportError, ptr nonnull @_ZNSt13runtime_errorD2Ev) #12
          to label %4079 unwind label %3408

.thread1551:                                      ; preds = %3402
  %3407 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %496) #11
  br label %3410

3408:                                             ; preds = %3406
  %3409 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %496) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %496) #11
  br label %3411

3410:                                             ; preds = %.thread1555, %.thread1551
  %.pn10821554 = phi { ptr, i32 } [ %3407, %.thread1551 ], [ %3405, %.thread1555 ]
  call void @__cxa_free_exception(ptr %3403) #11
  br label %3411

3411:                                             ; preds = %3408, %3410, %3396, %3371, %3369
  %.pn1082.pn = phi { ptr, i32 } [ %.pn10821554, %3410 ], [ %3409, %3408 ], [ %3370, %3369 ], [ %3397, %3396 ], [ %3372, %3371 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %493) #11
  br label %3412

3412:                                             ; preds = %3411, %3367
  %.pn1082.pn.pn = phi { ptr, i32 } [ %.pn1082.pn, %3411 ], [ %3368, %3367 ]
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %493) #11
  br label %3421

3413:                                             ; preds = %3334, %._crit_edge2105
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %459) #11
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %458) #11
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %457) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %445) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %445) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %444) #11
  br label %3414

3414:                                             ; preds = %3104, %3413
  %3415 = add nuw nsw i64 %.09312106, 1
  %3416 = load ptr, ptr %642, align 8, !tbaa !39
  %3417 = getelementptr inbounds i8, ptr %3416, i64 16
  %3418 = load i32, ptr %3417, align 8, !tbaa !40
  %3419 = zext i32 %3418 to i64
  %3420 = icmp ult i64 %3415, %3419
  br i1 %3420, label %3104, label %._crit_edge2109, !llvm.loop !158

3421:                                             ; preds = %3333, %3412, %3174
  %.pn1110.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %3175, %3174 ], [ %.pn1110.pn.pn.pn.pn.pn, %3333 ], [ %.pn1082.pn.pn, %3412 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %459) #11
  br label %3422

3422:                                             ; preds = %3421, %3172
  %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn.pn.pn.pn.pn.pn, %3421 ], [ %3173, %3172 ]
  call void @_ZNSt3setIPK6aiNodeSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %458) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %458) #11
  call void @_ZNSt3setIPK6aiBoneSt4lessIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %457) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %457) #11
  br label %3423

3423:                                             ; preds = %3422, %3170, %3169, %3164, %3159, %3154
  %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn, %3422 ], [ %3171, %3170 ], [ %.pn1079, %3169 ], [ %.pn1077, %3164 ], [ %.pn1075, %3159 ], [ %.pn1073, %3154 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %445) #11
  br label %3424

3424:                                             ; preds = %3423, %3149
  %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3423 ], [ %.pn1071, %3149 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %445) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %444) #11
  br label %4068

._crit_edge2113:                                  ; preds = %3546, %._crit_edge2109
  %.lcssa1590 = phi ptr [ %3101, %._crit_edge2109 ], [ %3548, %3546 ]
  %3425 = getelementptr inbounds i8, ptr %.lcssa1590, i64 8
  %3426 = load ptr, ptr %3425, align 8, !tbaa !133
  invoke void @_ZN6Assimp11FBXExporter15WriteModelNodesERNS_12StreamWriterILb0ELb0EEEPK6aiNodelRKSt13unordered_setIS6_St4hashIS6_ESt8equal_toIS6_ESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef %3426, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(56) %418)
          to label %3586 unwind label %3596

.lr.ph2112:                                       ; preds = %._crit_edge2109, %3546
  %3427 = phi ptr [ %3548, %3546 ], [ %3101, %._crit_edge2109 ]
  %.09082110 = phi i64 [ %3547, %3546 ], [ 0, %._crit_edge2109 ]
  %3428 = getelementptr inbounds i8, ptr %3427, i64 88
  %3429 = load ptr, ptr %3428, align 8, !tbaa !159
  %3430 = getelementptr inbounds ptr, ptr %3429, i64 %.09082110
  %3431 = load ptr, ptr %3430, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %497) #11
  %3432 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %3432, ptr %497, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %498) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %499) #11
  %3433 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3431)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %499, ptr noundef %3433, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %3434 unwind label %3456

3434:                                             ; preds = %.lr.ph2112
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %498, ptr noundef nonnull align 8 dereferenceable(32) %499, ptr noundef nonnull @.str.106)
          to label %3435 unwind label %3458

3435:                                             ; preds = %3434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %499) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %499) #11
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %500) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %501) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %502) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %502) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %501, ptr noundef nonnull @.str.106, ptr noundef nonnull align 1 dereferenceable(1) %502)
          to label %3436 unwind label %3461

3436:                                             ; preds = %3435
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(32) %501)
          to label %3437 unwind label %3463

3437:                                             ; preds = %3436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %501) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %502) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %502) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %501) #11
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA6_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 1 dereferenceable(6) @.str.377)
          to label %3438 unwind label %3466

3438:                                             ; preds = %3437
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %503) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %504) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %505) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %505) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %504, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %505)
          to label %3439 unwind label %3468

3439:                                             ; preds = %3438
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %504)
          to label %3440 unwind label %3470

3440:                                             ; preds = %3439
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %504) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %505) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %505) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %504) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %506) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %507) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %506, ptr noundef nonnull @.str.99, ptr noundef nonnull align 1 dereferenceable(1) %507)
          to label %3441 unwind label %3473

3441:                                             ; preds = %3440
  %3442 = getelementptr inbounds i8, ptr %3431, i64 1080
  %3443 = load float, ptr %3442, align 4, !tbaa !160
  %3444 = fpext float %3443 to double
  %3445 = getelementptr inbounds i8, ptr %3431, i64 1084
  %3446 = load float, ptr %3445, align 4, !tbaa !163
  %3447 = fpext float %3446 to double
  %3448 = getelementptr inbounds i8, ptr %3431, i64 1088
  %3449 = load float, ptr %3448, align 4, !tbaa !164
  %3450 = fpext float %3449 to double
  invoke void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %506, double noundef %3444, double noundef %3447, double noundef %3450)
          to label %3451 unwind label %3475

3451:                                             ; preds = %3441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %507) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %506) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %508) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %509) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %508, ptr noundef nonnull @.str.378, ptr noundef nonnull align 1 dereferenceable(1) %509)
          to label %3452 unwind label %3478

3452:                                             ; preds = %3451
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %508, double noundef 1.000000e+03)
          to label %3453 unwind label %3480

3453:                                             ; preds = %3452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %508) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %509) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %508) #11
  %3454 = getelementptr inbounds i8, ptr %3431, i64 1028
  %3455 = load i32, ptr %3454, align 4, !tbaa !165
  switch i32 %3455, label %3529 [
    i32 2, label %3483
    i32 1, label %3491
    i32 3, label %3499
  ]

3456:                                             ; preds = %.lr.ph2112
  %3457 = landingpad { ptr, i32 }
          cleanup
  br label %3460

3458:                                             ; preds = %3434
  %3459 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %499) #11
  br label %3460

3460:                                             ; preds = %3458, %3456
  %.pn1036 = phi { ptr, i32 } [ %3459, %3458 ], [ %3457, %3456 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %499) #11
  br label %3585

3461:                                             ; preds = %3435
  %3462 = landingpad { ptr, i32 }
          cleanup
  br label %3465

3463:                                             ; preds = %3436
  %3464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %501) #11
  br label %3465

3465:                                             ; preds = %3463, %3461
  %.pn1038 = phi { ptr, i32 } [ %3464, %3463 ], [ %3462, %3461 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %502) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %502) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %501) #11
  br label %3584

3466:                                             ; preds = %3437
  %3467 = landingpad { ptr, i32 }
          cleanup
  br label %3583

3468:                                             ; preds = %3438
  %3469 = landingpad { ptr, i32 }
          cleanup
  br label %3472

3470:                                             ; preds = %3439
  %3471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %504) #11
  br label %3472

3472:                                             ; preds = %3470, %3468
  %.pn1040 = phi { ptr, i32 } [ %3471, %3470 ], [ %3469, %3468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %505) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %505) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %504) #11
  br label %3582

3473:                                             ; preds = %3440
  %3474 = landingpad { ptr, i32 }
          cleanup
  br label %3477

3475:                                             ; preds = %3441
  %3476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %506) #11
  br label %3477

3477:                                             ; preds = %3475, %3473
  %.pn1042 = phi { ptr, i32 } [ %3476, %3475 ], [ %3474, %3473 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %507) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %507) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %506) #11
  br label %3581

3478:                                             ; preds = %3451
  %3479 = landingpad { ptr, i32 }
          cleanup
  br label %3482

3480:                                             ; preds = %3452
  %3481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %508) #11
  br label %3482

3482:                                             ; preds = %3480, %3478
  %.pn1044 = phi { ptr, i32 } [ %3481, %3480 ], [ %3479, %3478 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %509) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %509) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %508) #11
  br label %3581

3483:                                             ; preds = %3453
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %510) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %511) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %510, ptr noundef nonnull @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %511)
          to label %3484 unwind label %3486

3484:                                             ; preds = %3483
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %510, i32 noundef 0)
          to label %3485 unwind label %3488

3485:                                             ; preds = %3484
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %511) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %510) #11
  br label %3529

3486:                                             ; preds = %3483
  %3487 = landingpad { ptr, i32 }
          cleanup
  br label %3490

3488:                                             ; preds = %3484
  %3489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %510) #11
  br label %3490

3490:                                             ; preds = %3488, %3486
  %.pn1054 = phi { ptr, i32 } [ %3489, %3488 ], [ %3487, %3486 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %511) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %511) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %510) #11
  br label %3581

3491:                                             ; preds = %3453
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %512) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %513) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %512, ptr noundef nonnull @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %513)
          to label %3492 unwind label %3494

3492:                                             ; preds = %3491
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %512, i32 noundef 1)
          to label %3493 unwind label %3496

3493:                                             ; preds = %3492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %512) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %513) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %512) #11
  br label %3529

3494:                                             ; preds = %3491
  %3495 = landingpad { ptr, i32 }
          cleanup
  br label %3498

3496:                                             ; preds = %3492
  %3497 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %512) #11
  br label %3498

3498:                                             ; preds = %3496, %3494
  %.pn1052 = phi { ptr, i32 } [ %3497, %3496 ], [ %3495, %3494 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %513) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %513) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %512) #11
  br label %3581

3499:                                             ; preds = %3453
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %514) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %515) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %515) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %514, ptr noundef nonnull @.str.379, ptr noundef nonnull align 1 dereferenceable(1) %515)
          to label %3500 unwind label %3514

3500:                                             ; preds = %3499
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %514, i32 noundef 2)
          to label %3501 unwind label %3516

3501:                                             ; preds = %3500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %514) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %515) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %515) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %514) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %516) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %517) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %516, ptr noundef nonnull @.str.380, ptr noundef nonnull align 1 dereferenceable(1) %517)
          to label %3502 unwind label %3519

3502:                                             ; preds = %3501
  %3503 = getelementptr inbounds i8, ptr %3431, i64 1116
  %3504 = load float, ptr %3503, align 4, !tbaa !166
  %3505 = fmul float %3504, 0x404CA5DC20000000
  %3506 = fpext float %3505 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %516, double noundef %3506)
          to label %3507 unwind label %3521

3507:                                             ; preds = %3502
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %517) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %516) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %518) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %519) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %519) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull @.str.381, ptr noundef nonnull align 1 dereferenceable(1) %519)
          to label %3508 unwind label %3524

3508:                                             ; preds = %3507
  %3509 = getelementptr inbounds i8, ptr %3431, i64 1120
  %3510 = load float, ptr %3509, align 4, !tbaa !167
  %3511 = fmul float %3510, 0x404CA5DC20000000
  %3512 = fpext float %3511 to double
  invoke void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %518, double noundef %3512)
          to label %3513 unwind label %3526

3513:                                             ; preds = %3508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %519) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %519) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #11
  br label %3529

3514:                                             ; preds = %3499
  %3515 = landingpad { ptr, i32 }
          cleanup
  br label %3518

3516:                                             ; preds = %3500
  %3517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %514) #11
  br label %3518

3518:                                             ; preds = %3516, %3514
  %.pn1046 = phi { ptr, i32 } [ %3517, %3516 ], [ %3515, %3514 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %515) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %515) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %514) #11
  br label %3581

3519:                                             ; preds = %3501
  %3520 = landingpad { ptr, i32 }
          cleanup
  br label %3523

3521:                                             ; preds = %3502
  %3522 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %516) #11
  br label %3523

3523:                                             ; preds = %3521, %3519
  %.pn1048 = phi { ptr, i32 } [ %3522, %3521 ], [ %3520, %3519 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %517) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %517) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %516) #11
  br label %3581

3524:                                             ; preds = %3507
  %3525 = landingpad { ptr, i32 }
          cleanup
  br label %3528

3526:                                             ; preds = %3508
  %3527 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #11
  br label %3528

3528:                                             ; preds = %3526, %3524
  %.pn1050 = phi { ptr, i32 } [ %3527, %3526 ], [ %3525, %3524 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %519) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %519) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #11
  br label %3581

3529:                                             ; preds = %3453, %3513, %3493, %3485
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %520) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %521) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %521) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %520, ptr noundef nonnull @.str.382, ptr noundef nonnull align 1 dereferenceable(1) %521)
          to label %3530 unwind label %3553

3530:                                             ; preds = %3529
  invoke void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112) %503, ptr noundef nonnull align 8 dereferenceable(32) %520, i32 noundef 0)
          to label %3531 unwind label %3555

3531:                                             ; preds = %3530
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %520) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %521) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %521) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %520) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(112) %503)
          to label %3532 unwind label %3558

3532:                                             ; preds = %3531
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %522) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %523) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull @.str.383, ptr noundef nonnull align 1 dereferenceable(1) %523)
          to label %3533 unwind label %3560

3533:                                             ; preds = %3532
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %524) #11
  invoke void @_ZN6Assimp3FBX17FBXExportPropertyC1EPKcb(ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef nonnull @.str.377, i1 noundef zeroext false)
          to label %3534 unwind label %3562

3534:                                             ; preds = %3533
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJNS0_17FBXExportPropertyEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull align 8 dereferenceable(32) %524)
          to label %3535 unwind label %3564

3535:                                             ; preds = %3534
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %524) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %523) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %522) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %525) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %526) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %525, ptr noundef nonnull @.str.270, ptr noundef nonnull align 1 dereferenceable(1) %526)
          to label %3536 unwind label %3568

3536:                                             ; preds = %3535
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %527) #11
  invoke void @_ZN6Assimp3FBX17FBXExportPropertyC1Ei(ptr noundef nonnull align 8 dereferenceable(32) %527, i32 noundef 124)
          to label %3537 unwind label %3570

3537:                                             ; preds = %3536
  invoke void @_ZN6Assimp3FBX4Node8AddChildIJNS0_17FBXExportPropertyEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(32) %525, ptr noundef nonnull align 8 dereferenceable(32) %527)
          to label %3538 unwind label %3572

3538:                                             ; preds = %3537
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %527) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %527) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %525) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %526) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %525) #11
  %3539 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3540 = trunc nuw i8 %3539 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %500, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3540, i32 noundef 1)
          to label %3541 unwind label %3558

3541:                                             ; preds = %3538
  %3542 = load i64, ptr %497, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %528) #11
  %3543 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3431)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %529) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %529) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %528, ptr noundef %3543, ptr noundef nonnull align 1 dereferenceable(1) %529)
          to label %3544 unwind label %3576

3544:                                             ; preds = %3541
  %3545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %3100, ptr noundef nonnull align 8 dereferenceable(32) %528)
          to label %3546 unwind label %3578

3546:                                             ; preds = %3544
  store i64 %3542, ptr %3545, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %528) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %529) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %529) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %528) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %503) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %503) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %500) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %498) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %497) #11
  %3547 = add nuw nsw i64 %.09082110, 1
  %3548 = load ptr, ptr %642, align 8, !tbaa !39
  %3549 = getelementptr inbounds i8, ptr %3548, i64 80
  %3550 = load i32, ptr %3549, align 8, !tbaa !148
  %3551 = zext i32 %3550 to i64
  %3552 = icmp ult i64 %3547, %3551
  br i1 %3552, label %.lr.ph2112, label %._crit_edge2113, !llvm.loop !168

3553:                                             ; preds = %3529
  %3554 = landingpad { ptr, i32 }
          cleanup
  br label %3557

3555:                                             ; preds = %3530
  %3556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %520) #11
  br label %3557

3557:                                             ; preds = %3555, %3553
  %.pn1056 = phi { ptr, i32 } [ %3556, %3555 ], [ %3554, %3553 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %521) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %521) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %520) #11
  br label %3581

3558:                                             ; preds = %3538, %3531
  %3559 = landingpad { ptr, i32 }
          cleanup
  br label %3581

3560:                                             ; preds = %3532
  %3561 = landingpad { ptr, i32 }
          cleanup
  br label %3567

3562:                                             ; preds = %3533
  %3563 = landingpad { ptr, i32 }
          cleanup
  br label %3566

3564:                                             ; preds = %3534
  %3565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #11
  br label %3566

3566:                                             ; preds = %3564, %3562
  %.pn1058 = phi { ptr, i32 } [ %3565, %3564 ], [ %3563, %3562 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %524) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #11
  br label %3567

3567:                                             ; preds = %3566, %3560
  %.pn1058.pn = phi { ptr, i32 } [ %.pn1058, %3566 ], [ %3561, %3560 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %523) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %523) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %522) #11
  br label %3581

3568:                                             ; preds = %3535
  %3569 = landingpad { ptr, i32 }
          cleanup
  br label %3575

3570:                                             ; preds = %3536
  %3571 = landingpad { ptr, i32 }
          cleanup
  br label %3574

3572:                                             ; preds = %3537
  %3573 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6Assimp3FBX17FBXExportPropertyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %527) #11
  br label %3574

3574:                                             ; preds = %3572, %3570
  %.pn1061 = phi { ptr, i32 } [ %3573, %3572 ], [ %3571, %3570 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %527) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %525) #11
  br label %3575

3575:                                             ; preds = %3574, %3568
  %.pn1061.pn = phi { ptr, i32 } [ %.pn1061, %3574 ], [ %3569, %3568 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %526) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %526) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %525) #11
  br label %3581

3576:                                             ; preds = %3541
  %3577 = landingpad { ptr, i32 }
          cleanup
  br label %3580

3578:                                             ; preds = %3544
  %3579 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %528) #11
  br label %3580

3580:                                             ; preds = %3578, %3576
  %.pn1064 = phi { ptr, i32 } [ %3579, %3578 ], [ %3577, %3576 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %529) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %529) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %528) #11
  br label %3581

3581:                                             ; preds = %3580, %3575, %3567, %3558, %3557, %3528, %3523, %3518, %3498, %3490, %3482, %3477
  %.pn1064.pn = phi { ptr, i32 } [ %.pn1064, %3580 ], [ %3559, %3558 ], [ %.pn1061.pn, %3575 ], [ %.pn1058.pn, %3567 ], [ %.pn1056, %3557 ], [ %.pn1050, %3528 ], [ %.pn1048, %3523 ], [ %.pn1046, %3518 ], [ %.pn1052, %3498 ], [ %.pn1054, %3490 ], [ %.pn1044, %3482 ], [ %.pn1042, %3477 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %503) #11
  br label %3582

3582:                                             ; preds = %3581, %3472
  %.pn1064.pn.pn = phi { ptr, i32 } [ %.pn1064.pn, %3581 ], [ %.pn1040, %3472 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %503) #11
  br label %3583

3583:                                             ; preds = %3582, %3466
  %.pn1064.pn.pn.pn = phi { ptr, i32 } [ %.pn1064.pn.pn, %3582 ], [ %3467, %3466 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %500) #11
  br label %3584

3584:                                             ; preds = %3583, %3465
  %.pn1064.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1064.pn.pn.pn, %3583 ], [ %.pn1038, %3465 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %500) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %498) #11
  br label %3585

3585:                                             ; preds = %3584, %3460
  %.pn1064.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1064.pn.pn.pn.pn, %3584 ], [ %.pn1036, %3460 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %498) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %497) #11
  br label %4068

3586:                                             ; preds = %._crit_edge2113
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %530) #11
  %3587 = load ptr, ptr %642, align 8, !tbaa !39
  %3588 = getelementptr inbounds i8, ptr %3587, i64 48
  %3589 = load i32, ptr %3588, align 8, !tbaa !169
  %3590 = zext i32 %3589 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %531) #11
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %531) #11
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %530, i64 noundef %3590, ptr noundef nonnull align 1 dereferenceable(1) %531)
          to label %3591 unwind label %3598

3591:                                             ; preds = %3586
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %531) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %531) #11
  %3592 = load ptr, ptr %642, align 8, !tbaa !39
  %3593 = getelementptr inbounds i8, ptr %3592, i64 48
  %3594 = load i32, ptr %3593, align 8, !tbaa !169
  %.not2185 = icmp eq i32 %3594, 0
  br i1 %.not2185, label %._crit_edge2118, label %.lr.ph2117

.lr.ph2117:                                       ; preds = %3591
  %3595 = getelementptr inbounds i8, ptr %533, i64 80
  br label %3600

._crit_edge2118:                                  ; preds = %3634, %3591
  %.lcssa = phi i64 [ 0, %3591 ], [ %3639, %3634 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %549) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %550) #11
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #11
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %.lcssa, ptr noundef nonnull align 1 dereferenceable(1) %550)
          to label %3685 unwind label %3695

3596:                                             ; preds = %._crit_edge2113
  %3597 = landingpad { ptr, i32 }
          cleanup
  br label %4068

3598:                                             ; preds = %3586
  %3599 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %531) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %531) #11
  br label %4067

3600:                                             ; preds = %.lr.ph2117, %3634
  %.09062115 = phi i64 [ 0, %.lr.ph2117 ], [ %3635, %3634 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %532) #11
  %3601 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %3601, ptr %532, align 8, !tbaa !47
  %3602 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %530, i64 noundef %.09062115) #11
  store i64 %3601, ptr %3602, align 8, !tbaa !47
  %3603 = load ptr, ptr %642, align 8, !tbaa !39
  %3604 = getelementptr inbounds i8, ptr %3603, i64 56
  %3605 = load ptr, ptr %3604, align 8, !tbaa !170
  %3606 = getelementptr inbounds ptr, ptr %3605, i64 %.09062115
  %3607 = load ptr, ptr %3606, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %533) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %534) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %535) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %534, ptr noundef nonnull @.str.83, ptr noundef nonnull align 1 dereferenceable(1) %535)
          to label %3608 unwind label %3641

3608:                                             ; preds = %3600
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %533, ptr noundef nonnull align 8 dereferenceable(32) %534)
          to label %3609 unwind label %3643

3609:                                             ; preds = %3608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %534) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %535) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %534) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %536) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %537) #11
  %3610 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %3607)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %537, ptr noundef %3610, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E)
          to label %3611 unwind label %3646

3611:                                             ; preds = %3609
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %536, ptr noundef nonnull align 8 dereferenceable(32) %537, ptr noundef nonnull @.str.384)
          to label %3612 unwind label %3648

3612:                                             ; preds = %3611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %537) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %537) #11
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %533, ptr noundef nonnull align 8 dereferenceable(8) %532, ptr noundef nonnull align 8 dereferenceable(32) %536, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %3613 unwind label %3651

3613:                                             ; preds = %3612
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %538) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %539) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %540) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %540)
          to label %3614 unwind label %3653

3614:                                             ; preds = %3613
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %539)
          to label %3615 unwind label %3655

3615:                                             ; preds = %3614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %540) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %539) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %541) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %542) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %541, ptr noundef nonnull @.str.87, ptr noundef nonnull align 1 dereferenceable(1) %542)
          to label %3616 unwind label %3658

3616:                                             ; preds = %3615
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %541, i64 noundef 0)
          to label %3617 unwind label %3660

3617:                                             ; preds = %3616
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %541) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %542) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %541) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %543) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %544) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %543, ptr noundef nonnull @.str.88, ptr noundef nonnull align 1 dereferenceable(1) %544)
          to label %3618 unwind label %3663

3618:                                             ; preds = %3617
  %3619 = getelementptr inbounds i8, ptr %3607, i64 1032
  %3620 = load double, ptr %3619, align 8, !tbaa !171
  %3621 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %3620, ptr noundef nonnull %3607)
          to label %3622 unwind label %3665

3622:                                             ; preds = %3618
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %543, i64 noundef %3621)
          to label %3623 unwind label %3665

3623:                                             ; preds = %3622
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %543) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %544) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %543) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %545) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %546) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %545, ptr noundef nonnull @.str.89, ptr noundef nonnull align 1 dereferenceable(1) %546)
          to label %3624 unwind label %3668

3624:                                             ; preds = %3623
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %545, i64 noundef 0)
          to label %3625 unwind label %3670

3625:                                             ; preds = %3624
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %545) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %546) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %545) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %547) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %548) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %547, ptr noundef nonnull @.str.90, ptr noundef nonnull align 1 dereferenceable(1) %548)
          to label %3626 unwind label %3673

3626:                                             ; preds = %3625
  %3627 = load double, ptr %3619, align 8, !tbaa !171
  %3628 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %3627, ptr noundef nonnull %3607)
          to label %3629 unwind label %3675

3629:                                             ; preds = %3626
  invoke void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112) %538, ptr noundef nonnull align 8 dereferenceable(32) %547, i64 noundef %3628)
          to label %3630 unwind label %3675

3630:                                             ; preds = %3629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %548) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %547) #11
  invoke void @_ZN6Assimp3FBX4Node8AddChildERKS1_(ptr noundef nonnull align 8 dereferenceable(112) %533, ptr noundef nonnull align 8 dereferenceable(112) %538)
          to label %3631 unwind label %3678

3631:                                             ; preds = %3630
  store i8 1, ptr %3595, align 8, !tbaa !173
  %3632 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3633 = trunc nuw i8 %3632 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %533, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3633, i32 noundef 1)
          to label %3634 unwind label %3678

3634:                                             ; preds = %3631
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %538) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %538) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %536) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %533) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %533) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %532) #11
  %3635 = add nuw nsw i64 %.09062115, 1
  %3636 = load ptr, ptr %642, align 8, !tbaa !39
  %3637 = getelementptr inbounds i8, ptr %3636, i64 48
  %3638 = load i32, ptr %3637, align 8, !tbaa !169
  %3639 = zext i32 %3638 to i64
  %3640 = icmp ult i64 %3635, %3639
  br i1 %3640, label %3600, label %._crit_edge2118, !llvm.loop !179

3641:                                             ; preds = %3600
  %3642 = landingpad { ptr, i32 }
          cleanup
  br label %3645

3643:                                             ; preds = %3608
  %3644 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %534) #11
  br label %3645

3645:                                             ; preds = %3643, %3641
  %.pn1014 = phi { ptr, i32 } [ %3644, %3643 ], [ %3642, %3641 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %535) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %535) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %534) #11
  br label %3684

3646:                                             ; preds = %3609
  %3647 = landingpad { ptr, i32 }
          cleanup
  br label %3650

3648:                                             ; preds = %3611
  %3649 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %537) #11
  br label %3650

3650:                                             ; preds = %3648, %3646
  %.pn1016 = phi { ptr, i32 } [ %3649, %3648 ], [ %3647, %3646 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %537) #11
  br label %3683

3651:                                             ; preds = %3612
  %3652 = landingpad { ptr, i32 }
          cleanup
  br label %3682

3653:                                             ; preds = %3613
  %3654 = landingpad { ptr, i32 }
          cleanup
  br label %3657

3655:                                             ; preds = %3614
  %3656 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #11
  br label %3657

3657:                                             ; preds = %3655, %3653
  %.pn1018 = phi { ptr, i32 } [ %3656, %3655 ], [ %3654, %3653 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %540) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %540) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %539) #11
  br label %3681

3658:                                             ; preds = %3615
  %3659 = landingpad { ptr, i32 }
          cleanup
  br label %3662

3660:                                             ; preds = %3616
  %3661 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %541) #11
  br label %3662

3662:                                             ; preds = %3660, %3658
  %.pn1020 = phi { ptr, i32 } [ %3661, %3660 ], [ %3659, %3658 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %542) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %541) #11
  br label %3680

3663:                                             ; preds = %3617
  %3664 = landingpad { ptr, i32 }
          cleanup
  br label %3667

3665:                                             ; preds = %3622, %3618
  %3666 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %543) #11
  br label %3667

3667:                                             ; preds = %3665, %3663
  %.pn1022 = phi { ptr, i32 } [ %3666, %3665 ], [ %3664, %3663 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %544) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %544) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %543) #11
  br label %3680

3668:                                             ; preds = %3623
  %3669 = landingpad { ptr, i32 }
          cleanup
  br label %3672

3670:                                             ; preds = %3624
  %3671 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %545) #11
  br label %3672

3672:                                             ; preds = %3670, %3668
  %.pn1024 = phi { ptr, i32 } [ %3671, %3670 ], [ %3669, %3668 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %546) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %546) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %545) #11
  br label %3680

3673:                                             ; preds = %3625
  %3674 = landingpad { ptr, i32 }
          cleanup
  br label %3677

3675:                                             ; preds = %3629, %3626
  %3676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #11
  br label %3677

3677:                                             ; preds = %3675, %3673
  %.pn1026 = phi { ptr, i32 } [ %3676, %3675 ], [ %3674, %3673 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %548) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %547) #11
  br label %3680

3678:                                             ; preds = %3631, %3630
  %3679 = landingpad { ptr, i32 }
          cleanup
  br label %3680

3680:                                             ; preds = %3678, %3677, %3672, %3667, %3662
  %.pn1028 = phi { ptr, i32 } [ %3679, %3678 ], [ %.pn1026, %3677 ], [ %.pn1024, %3672 ], [ %.pn1022, %3667 ], [ %.pn1020, %3662 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %538) #11
  br label %3681

3681:                                             ; preds = %3680, %3657
  %.pn1028.pn = phi { ptr, i32 } [ %.pn1028, %3680 ], [ %.pn1018, %3657 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %538) #11
  br label %3682

3682:                                             ; preds = %3681, %3651
  %.pn1028.pn.pn = phi { ptr, i32 } [ %.pn1028.pn, %3681 ], [ %3652, %3651 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %536) #11
  br label %3683

3683:                                             ; preds = %3682, %3650
  %.pn1028.pn.pn.pn = phi { ptr, i32 } [ %.pn1028.pn.pn, %3682 ], [ %.pn1016, %3650 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %536) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %533) #11
  br label %3684

3684:                                             ; preds = %3683, %3645
  %.pn1028.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1028.pn.pn.pn, %3683 ], [ %.pn1014, %3645 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %533) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %532) #11
  br label %4066

3685:                                             ; preds = %._crit_edge2118
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %550) #11
  %3686 = load ptr, ptr %642, align 8, !tbaa !39
  %3687 = getelementptr inbounds i8, ptr %3686, i64 48
  %3688 = load i32, ptr %3687, align 8, !tbaa !169
  %.not2186 = icmp eq i32 %3688, 0
  br i1 %.not2186, label %._crit_edge2123, label %.lr.ph2122

.lr.ph2122:                                       ; preds = %3685
  %3689 = getelementptr inbounds i8, ptr %552, i64 80
  %3690 = getelementptr inbounds i8, ptr %0, i64 40
  br label %3697

._crit_edge2123:                                  ; preds = %3709, %3685
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %556) #11
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #11
  %3691 = load ptr, ptr %642, align 8, !tbaa !39
  %3692 = getelementptr inbounds i8, ptr %3691, i64 48
  %3693 = load i32, ptr %3692, align 8, !tbaa !169
  %.not2187 = icmp eq i32 %3693, 0
  br i1 %.not2187, label %._crit_edge2149, label %.lr.ph2130

.lr.ph2130:                                       ; preds = %._crit_edge2123
  %.sroa.264.0..sroa_idx = getelementptr inbounds i8, ptr %560, i64 8
  %3694 = getelementptr inbounds i8, ptr %0, i64 112
  %.sroa.260.0..sroa_idx = getelementptr inbounds i8, ptr %561, i64 8
  %.sroa.256.0..sroa_idx = getelementptr inbounds i8, ptr %562, i64 8
  br label %3737

3695:                                             ; preds = %._crit_edge2118
  %3696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %550) #11
  br label %4065

3697:                                             ; preds = %.lr.ph2122, %3709
  %.09042120 = phi i64 [ 0, %.lr.ph2122 ], [ %3710, %3709 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %551) #11
  %3698 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  store i64 %3698, ptr %551, align 8, !tbaa !47
  %3699 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %.09042120) #11
  store i64 %3698, ptr %3699, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %552) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %553) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %554) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %553, ptr noundef nonnull @.str.91, ptr noundef nonnull align 1 dereferenceable(1) %554)
          to label %3700 unwind label %3716

3700:                                             ; preds = %3697
  invoke void @_ZN6Assimp3FBX4NodeC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(112) %552, ptr noundef nonnull align 8 dereferenceable(32) %553)
          to label %3701 unwind label %3718

3701:                                             ; preds = %3700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %553) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %554) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %553) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %555) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %555, ptr noundef nonnull align 8 dereferenceable(32) @_ZN6Assimp3FBXL9SEPARATORB5cxx11E, ptr noundef nonnull @.str.385)
          to label %3702 unwind label %3721

3702:                                             ; preds = %3701
  invoke void @_ZN6Assimp3FBX4Node13AddPropertiesIRlJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERA1_KcEEEvOT_DpOT0_(ptr noundef nonnull align 8 dereferenceable(112) %552, ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull align 8 dereferenceable(32) %555, ptr noundef nonnull align 1 dereferenceable(1) @.str.67)
          to label %3703 unwind label %3723

3703:                                             ; preds = %3702
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %555) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %555) #11
  store i8 1, ptr %3689, align 8, !tbaa !173
  %3704 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3705 = trunc nuw i8 %3704 to i1
  invoke void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112) %552, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3705, i32 noundef 1)
          to label %3706 unwind label %3726

3706:                                             ; preds = %3703
  %3707 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %530, i64 noundef %.09042120) #11
  %3708 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZNSt6vectorIN6Assimp3FBX4NodeESaIS2_EE12emplace_backIJRA2_KcRA3_S6_RlSB_EEERS2_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %3690, ptr noundef nonnull align 1 dereferenceable(2) @.str.337, ptr noundef nonnull align 1 dereferenceable(3) @.str.339, ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull align 8 dereferenceable(8) %3707)
          to label %3709 unwind label %3726

3709:                                             ; preds = %3706
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %552) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %552) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %551) #11
  %3710 = add nuw nsw i64 %.09042120, 1
  %3711 = load ptr, ptr %642, align 8, !tbaa !39
  %3712 = getelementptr inbounds i8, ptr %3711, i64 48
  %3713 = load i32, ptr %3712, align 8, !tbaa !169
  %3714 = zext i32 %3713 to i64
  %3715 = icmp ult i64 %3710, %3714
  br i1 %3715, label %3697, label %._crit_edge2123, !llvm.loop !180

3716:                                             ; preds = %3697
  %3717 = landingpad { ptr, i32 }
          cleanup
  br label %3720

3718:                                             ; preds = %3700
  %3719 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %553) #11
  br label %3720

3720:                                             ; preds = %3718, %3716
  %.pn1005 = phi { ptr, i32 } [ %3719, %3718 ], [ %3717, %3716 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %554) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %553) #11
  br label %3729

3721:                                             ; preds = %3701
  %3722 = landingpad { ptr, i32 }
          cleanup
  br label %3725

3723:                                             ; preds = %3702
  %3724 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %555) #11
  br label %3725

3725:                                             ; preds = %3723, %3721
  %.pn1007 = phi { ptr, i32 } [ %3724, %3723 ], [ %3722, %3721 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %555) #11
  br label %3728

3726:                                             ; preds = %3706, %3703
  %3727 = landingpad { ptr, i32 }
          cleanup
  br label %3728

3728:                                             ; preds = %3726, %3725
  %.pn1009 = phi { ptr, i32 } [ %3727, %3726 ], [ %.pn1007, %3725 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %552) #11
  br label %3729

3729:                                             ; preds = %3728, %3720
  %.pn1009.pn = phi { ptr, i32 } [ %.pn1009, %3728 ], [ %.pn1005, %3720 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %552) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %551) #11
  br label %4064

.preheader:                                       ; preds = %3831
  %.not2189 = icmp eq i32 %3835, 0
  br i1 %.not2189, label %._crit_edge2149, label %.lr.ph2148

.lr.ph2148:                                       ; preds = %.preheader
  %3730 = getelementptr inbounds i8, ptr %577, i64 4
  %3731 = getelementptr inbounds i8, ptr %577, i64 8
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %595, i64 8
  %3732 = getelementptr inbounds i8, ptr %595, i64 4
  %3733 = getelementptr inbounds i8, ptr %578, i64 4
  %3734 = getelementptr inbounds i8, ptr %578, i64 8
  %3735 = getelementptr inbounds i8, ptr %579, i64 4
  %3736 = getelementptr inbounds i8, ptr %579, i64 8
  br label %3843

3737:                                             ; preds = %.lr.ph2130, %3831
  %3738 = phi ptr [ %3691, %.lr.ph2130 ], [ %3833, %3831 ]
  %.09032128 = phi i64 [ 0, %.lr.ph2130 ], [ %3832, %3831 ]
  %3739 = getelementptr inbounds i8, ptr %3738, i64 56
  %3740 = load ptr, ptr %3739, align 8, !tbaa !170
  %3741 = getelementptr inbounds ptr, ptr %3740, i64 %.09032128
  %3742 = load ptr, ptr %3741, align 8, !tbaa !46
  %3743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %549, i64 noundef %.09032128) #11
  %3744 = load i64, ptr %3743, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %557) #11
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %557) #11
  %3745 = getelementptr inbounds i8, ptr %3742, i64 1048
  %3746 = load i32, ptr %3745, align 8, !tbaa !181
  %.not2188 = icmp eq i32 %3746, 0
  br i1 %.not2188, label %._crit_edge2127, label %.lr.ph2126

.lr.ph2126:                                       ; preds = %3737
  %3747 = getelementptr inbounds i8, ptr %3742, i64 1056
  br label %3748

._crit_edge2127:                                  ; preds = %3790, %3737
  invoke void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %556, ptr noundef nonnull align 8 dereferenceable(24) %557)
          to label %3831 unwind label %3838

3748:                                             ; preds = %.lr.ph2126, %3790
  %.08832124 = phi i64 [ 0, %.lr.ph2126 ], [ %3791, %3790 ]
  %3749 = load ptr, ptr %3747, align 8, !tbaa !182
  %3750 = getelementptr inbounds ptr, ptr %3749, i64 %.08832124
  %3751 = load ptr, ptr %3750, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %558) #11
  %3752 = load ptr, ptr %642, align 8, !tbaa !39
  %3753 = getelementptr inbounds i8, ptr %3752, i64 8
  %3754 = load ptr, ptr %3753, align 8, !tbaa !133
  %3755 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %3754, ptr noundef nonnull align 4 dereferenceable(1028) %3751)
          to label %3756 unwind label %3795

3756:                                             ; preds = %3748
  store ptr %3755, ptr %558, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %559) #11
  %3757 = load ptr, ptr %642, align 8, !tbaa !39
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix4x4t) align 4 %559, ptr noundef %3755, ptr noundef %3757)
          to label %3758 unwind label %3797

3758:                                             ; preds = %3756
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %560) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %560) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %561) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %561) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %562) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %562) #11
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %559, ptr noundef nonnull align 4 dereferenceable(12) %562, ptr noundef nonnull align 4 dereferenceable(12) %561, ptr noundef nonnull align 4 dereferenceable(12) %560)
          to label %3759 unwind label %3799

3759:                                             ; preds = %3758
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %563) #11
  %3760 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %3761 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 0) #11
  store i64 %3760, ptr %3761, align 8, !tbaa !47
  %3762 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %3763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 1) #11
  store i64 %3762, ptr %3763, align 8, !tbaa !47
  %3764 = call noundef i64 @_ZN6Assimp11FBXExporter12generate_uidEv(ptr noundef nonnull align 8 dereferenceable(216) %0)
  %3765 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 2) #11
  store i64 %3764, ptr %3765, align 8, !tbaa !47
  %3766 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 0) #11
  %3767 = load i64, ptr %3766, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %564) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %565) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %564, ptr noundef nonnull @.str.386, ptr noundef nonnull align 1 dereferenceable(1) %565)
          to label %3768 unwind label %3803

3768:                                             ; preds = %3759
  %.sroa.063.0.copyload = load <2 x float>, ptr %560, align 8
  %.sroa.264.0.copyload = load float, ptr %.sroa.264.0..sroa_idx, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %566) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %567) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %567) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %566, ptr noundef nonnull @.str.180, ptr noundef nonnull align 1 dereferenceable(1) %567)
          to label %3769 unwind label %3805

3769:                                             ; preds = %3768
  %3770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %3694, ptr noundef nonnull align 8 dereferenceable(8) %558)
          to label %3771 unwind label %3807

3771:                                             ; preds = %3769
  %3772 = load i64, ptr %3770, align 8, !tbaa !47
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 noundef %3767, ptr noundef nonnull align 8 dereferenceable(32) %564, <2 x float> %.sroa.063.0.copyload, float %.sroa.264.0.copyload, ptr noundef nonnull align 8 dereferenceable(32) %566, i64 noundef %3744, i64 noundef %3772)
          to label %3773 unwind label %3807

3773:                                             ; preds = %3771
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %567) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %567) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %566) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %564) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %565) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %564) #11
  %3774 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 1) #11
  %3775 = load i64, ptr %3774, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %568) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %569) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %569) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %568, ptr noundef nonnull @.str.387, ptr noundef nonnull align 1 dereferenceable(1) %569)
          to label %3776 unwind label %3811

3776:                                             ; preds = %3773
  %.sroa.059.0.copyload = load <2 x float>, ptr %561, align 8
  %.sroa.260.0.copyload = load float, ptr %.sroa.260.0..sroa_idx, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %570) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %571) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull @.str.181, ptr noundef nonnull align 1 dereferenceable(1) %571)
          to label %3777 unwind label %3813

3777:                                             ; preds = %3776
  %3778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %3694, ptr noundef nonnull align 8 dereferenceable(8) %558)
          to label %3779 unwind label %3815

3779:                                             ; preds = %3777
  %3780 = load i64, ptr %3778, align 8, !tbaa !47
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 noundef %3775, ptr noundef nonnull align 8 dereferenceable(32) %568, <2 x float> %.sroa.059.0.copyload, float %.sroa.260.0.copyload, ptr noundef nonnull align 8 dereferenceable(32) %570, i64 noundef %3744, i64 noundef %3780)
          to label %3781 unwind label %3815

3781:                                             ; preds = %3779
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %568) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %569) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %569) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %568) #11
  %3782 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef 2) #11
  %3783 = load i64, ptr %3782, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %572) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %573) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %573) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull @.str.388, ptr noundef nonnull align 1 dereferenceable(1) %573)
          to label %3784 unwind label %3819

3784:                                             ; preds = %3781
  %.sroa.055.0.copyload = load <2 x float>, ptr %562, align 8
  %.sroa.256.0.copyload = load float, ptr %.sroa.256.0..sroa_idx, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %574) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %575) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull @.str.389, ptr noundef nonnull align 1 dereferenceable(1) %575)
          to label %3785 unwind label %3821

3785:                                             ; preds = %3784
  %3786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEEixERS6_(ptr noundef nonnull align 8 dereferenceable(48) %3694, ptr noundef nonnull align 8 dereferenceable(8) %558)
          to label %3787 unwind label %3823

3787:                                             ; preds = %3785
  %3788 = load i64, ptr %3786, align 8, !tbaa !47
  invoke void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 noundef %3783, ptr noundef nonnull align 8 dereferenceable(32) %572, <2 x float> %.sroa.055.0.copyload, float %.sroa.256.0.copyload, ptr noundef nonnull align 8 dereferenceable(32) %574, i64 noundef %3744, i64 noundef %3788)
          to label %3789 unwind label %3823

3789:                                             ; preds = %3787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %575) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %574) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %573) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %573) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %572) #11
  invoke void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %557, ptr noundef nonnull align 8 dereferenceable(24) %563)
          to label %3790 unwind label %3801

3790:                                             ; preds = %3789
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %563) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %562) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %561) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %560) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %559) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %558) #11
  %3791 = add nuw nsw i64 %.08832124, 1
  %3792 = load i32, ptr %3745, align 8, !tbaa !181
  %3793 = zext i32 %3792 to i64
  %3794 = icmp ult i64 %3791, %3793
  br i1 %3794, label %3748, label %._crit_edge2127, !llvm.loop !183

3795:                                             ; preds = %3748
  %3796 = landingpad { ptr, i32 }
          cleanup
  br label %3830

3797:                                             ; preds = %3756
  %3798 = landingpad { ptr, i32 }
          cleanup
  br label %3829

3799:                                             ; preds = %3758
  %3800 = landingpad { ptr, i32 }
          cleanup
  br label %3828

3801:                                             ; preds = %3789
  %3802 = landingpad { ptr, i32 }
          cleanup
  br label %3827

3803:                                             ; preds = %3759
  %3804 = landingpad { ptr, i32 }
          cleanup
  br label %3810

3805:                                             ; preds = %3768
  %3806 = landingpad { ptr, i32 }
          cleanup
  br label %3809

3807:                                             ; preds = %3771, %3769
  %3808 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %566) #11
  br label %3809

3809:                                             ; preds = %3807, %3805
  %.pn989 = phi { ptr, i32 } [ %3808, %3807 ], [ %3806, %3805 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %567) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %567) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %566) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %564) #11
  br label %3810

3810:                                             ; preds = %3809, %3803
  %.pn989.pn = phi { ptr, i32 } [ %.pn989, %3809 ], [ %3804, %3803 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %565) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %565) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %564) #11
  br label %3827

3811:                                             ; preds = %3773
  %3812 = landingpad { ptr, i32 }
          cleanup
  br label %3818

3813:                                             ; preds = %3776
  %3814 = landingpad { ptr, i32 }
          cleanup
  br label %3817

3815:                                             ; preds = %3779, %3777
  %3816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #11
  br label %3817

3817:                                             ; preds = %3815, %3813
  %.pn992 = phi { ptr, i32 } [ %3816, %3815 ], [ %3814, %3813 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %568) #11
  br label %3818

3818:                                             ; preds = %3817, %3811
  %.pn992.pn = phi { ptr, i32 } [ %.pn992, %3817 ], [ %3812, %3811 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %569) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %569) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %568) #11
  br label %3827

3819:                                             ; preds = %3781
  %3820 = landingpad { ptr, i32 }
          cleanup
  br label %3826

3821:                                             ; preds = %3784
  %3822 = landingpad { ptr, i32 }
          cleanup
  br label %3825

3823:                                             ; preds = %3787, %3785
  %3824 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #11
  br label %3825

3825:                                             ; preds = %3823, %3821
  %.pn995 = phi { ptr, i32 } [ %3824, %3823 ], [ %3822, %3821 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %575) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %574) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #11
  br label %3826

3826:                                             ; preds = %3825, %3819
  %.pn995.pn = phi { ptr, i32 } [ %.pn995, %3825 ], [ %3820, %3819 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %573) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %573) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %572) #11
  br label %3827

3827:                                             ; preds = %3826, %3818, %3810, %3801
  %.pn998 = phi { ptr, i32 } [ %3802, %3801 ], [ %.pn995.pn, %3826 ], [ %.pn992.pn, %3818 ], [ %.pn989.pn, %3810 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %563) #11
  br label %3828

3828:                                             ; preds = %3827, %3799
  %.pn998.pn = phi { ptr, i32 } [ %.pn998, %3827 ], [ %3800, %3799 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %562) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %561) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %560) #11
  br label %3829

3829:                                             ; preds = %3828, %3797
  %.pn998.pn.pn = phi { ptr, i32 } [ %.pn998.pn, %3828 ], [ %3798, %3797 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %559) #11
  br label %3830

3830:                                             ; preds = %3829, %3795
  %.pn998.pn.pn.pn = phi { ptr, i32 } [ %.pn998.pn.pn, %3829 ], [ %3796, %3795 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %558) #11
  br label %3840

3831:                                             ; preds = %._crit_edge2127
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %557) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %557) #11
  %3832 = add nuw nsw i64 %.09032128, 1
  %3833 = load ptr, ptr %642, align 8, !tbaa !39
  %3834 = getelementptr inbounds i8, ptr %3833, i64 48
  %3835 = load i32, ptr %3834, align 8, !tbaa !169
  %3836 = zext i32 %3835 to i64
  %3837 = icmp ult i64 %3832, %3836
  br i1 %3837, label %3737, label %.preheader, !llvm.loop !184

3838:                                             ; preds = %._crit_edge2127
  %3839 = landingpad { ptr, i32 }
          cleanup
  br label %3840

3840:                                             ; preds = %3838, %3830
  %.pn998.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn998.pn.pn.pn, %3830 ], [ %3839, %3838 ]
  call void @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %557) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %557) #11
  br label %4063

._crit_edge2149:                                  ; preds = %._crit_edge2146, %._crit_edge2123, %.preheader
  %3841 = load i8, ptr %0, align 8, !tbaa !5, !range !36, !noundef !37
  %3842 = trunc nuw i8 %3841 to i1
  invoke void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(56) %4, i1 noundef zeroext %3842, i32 noundef 0, i1 noundef zeroext true)
          to label %4060 unwind label %4061

3843:                                             ; preds = %.lr.ph2148, %._crit_edge2146
  %3844 = phi ptr [ %3833, %.lr.ph2148 ], [ %3852, %._crit_edge2146 ]
  %.08692147 = phi i64 [ 0, %.lr.ph2148 ], [ %3853, %._crit_edge2146 ]
  %3845 = getelementptr inbounds i8, ptr %3844, i64 56
  %3846 = load ptr, ptr %3845, align 8, !tbaa !170
  %3847 = getelementptr inbounds ptr, ptr %3846, i64 %.08692147
  %3848 = load ptr, ptr %3847, align 8, !tbaa !46
  %3849 = getelementptr inbounds i8, ptr %3848, i64 1048
  %3850 = load i32, ptr %3849, align 8, !tbaa !181
  %.not2190 = icmp eq i32 %3850, 0
  br i1 %.not2190, label %._crit_edge2146, label %.lr.ph2145

.lr.ph2145:                                       ; preds = %3843
  %3851 = getelementptr inbounds i8, ptr %3848, i64 1056
  br label %3858

._crit_edge2146.loopexit:                         ; preds = %4037
  %.pre2368 = load ptr, ptr %642, align 8, !tbaa !39
  br label %._crit_edge2146

._crit_edge2146:                                  ; preds = %._crit_edge2146.loopexit, %3843
  %3852 = phi ptr [ %.pre2368, %._crit_edge2146.loopexit ], [ %3844, %3843 ]
  %3853 = add nuw nsw i64 %.08692147, 1
  %3854 = getelementptr inbounds i8, ptr %3852, i64 48
  %3855 = load i32, ptr %3854, align 8, !tbaa !169
  %3856 = zext i32 %3855 to i64
  %3857 = icmp ult i64 %3853, %3856
  br i1 %3857, label %3843, label %._crit_edge2149, !llvm.loop !185

3858:                                             ; preds = %.lr.ph2145, %4037
  %.08672143 = phi i64 [ 0, %.lr.ph2145 ], [ %4038, %4037 ]
  %3859 = load ptr, ptr %3851, align 8, !tbaa !182
  %3860 = getelementptr inbounds ptr, ptr %3859, i64 %.08672143
  %3861 = load ptr, ptr %3860, align 8, !tbaa !46
  %3862 = load ptr, ptr %642, align 8, !tbaa !39
  %3863 = getelementptr inbounds i8, ptr %3862, i64 8
  %3864 = load ptr, ptr %3863, align 8, !tbaa !133
  %3865 = invoke noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144) %3864, ptr noundef nonnull align 4 dereferenceable(1028) %3861)
          to label %3866 unwind label %3878

3866:                                             ; preds = %3858
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %576) #11
  %3867 = load ptr, ptr %642, align 8, !tbaa !39
  invoke void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix4x4t) align 4 %576, ptr noundef %3865, ptr noundef %3867)
          to label %3868 unwind label %3880

3868:                                             ; preds = %3866
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %577) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %577) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %578) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %578) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %579) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %579) #11
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %576, ptr noundef nonnull align 4 dereferenceable(12) %579, ptr noundef nonnull align 4 dereferenceable(12) %578, ptr noundef nonnull align 4 dereferenceable(12) %577)
          to label %3869 unwind label %3882

3869:                                             ; preds = %3868
  %3870 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %556, i64 noundef %.08692147) #11
  %3871 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt5arrayIlLm3EESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3870, i64 noundef %.08672143) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %580) #11
  call void @_ZNSt6vectorIlSaIlEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %580) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %581) #11
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %581) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %582) #11
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %582) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %583) #11
  call void @_ZNSt6vectorIfSaIfEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %583) #11
  %3872 = getelementptr inbounds i8, ptr %3861, i64 1028
  %3873 = load i32, ptr %3872, align 4, !tbaa !186
  %.not2191 = icmp eq i32 %3873, 0
  br i1 %.not2191, label %._crit_edge2134, label %.lr.ph2133

.lr.ph2133:                                       ; preds = %3869
  %3874 = getelementptr inbounds i8, ptr %3861, i64 1032
  br label %3884

._crit_edge2134:                                  ; preds = %3896, %3869
  %3875 = load float, ptr %577, align 4, !tbaa !74
  %3876 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 0) #11
  %3877 = load i64, ptr %3876, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %585) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %586) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %585, ptr noundef nonnull @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %586)
          to label %3905 unwind label %3926

3878:                                             ; preds = %3858
  %3879 = landingpad { ptr, i32 }
          cleanup
  br label %4063

3880:                                             ; preds = %3866
  %3881 = landingpad { ptr, i32 }
          cleanup
  br label %4059

3882:                                             ; preds = %3868
  %3883 = landingpad { ptr, i32 }
          cleanup
  br label %4058

3884:                                             ; preds = %.lr.ph2133, %3896
  %.08632131 = phi i64 [ 0, %.lr.ph2133 ], [ %3897, %3896 ]
  %3885 = load ptr, ptr %3874, align 8, !tbaa !189
  %3886 = getelementptr inbounds %struct.aiVectorKey, ptr %3885, i64 %.08632131
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %584) #11
  %3887 = load double, ptr %3886, align 8, !tbaa !190
  %3888 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %3887, ptr noundef %3848)
          to label %3889 unwind label %3901

3889:                                             ; preds = %3884
  store i64 %3888, ptr %584, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(8) %584)
          to label %3890 unwind label %3901

3890:                                             ; preds = %3889
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %584) #11
  %3891 = getelementptr inbounds i8, ptr %3886, i64 8
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %581, ptr noundef nonnull align 4 dereferenceable(4) %3891)
          to label %3892 unwind label %3903

3892:                                             ; preds = %3890
  %3893 = getelementptr inbounds i8, ptr %3886, i64 12
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 4 dereferenceable(4) %3893)
          to label %3894 unwind label %3903

3894:                                             ; preds = %3892
  %3895 = getelementptr inbounds i8, ptr %3886, i64 16
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %583, ptr noundef nonnull align 4 dereferenceable(4) %3895)
          to label %3896 unwind label %3903

3896:                                             ; preds = %3894
  %3897 = add nuw nsw i64 %.08632131, 1
  %3898 = load i32, ptr %3872, align 4, !tbaa !186
  %3899 = zext i32 %3898 to i64
  %3900 = icmp ult i64 %3897, %3899
  br i1 %3900, label %3884, label %._crit_edge2134, !llvm.loop !193

3901:                                             ; preds = %3889, %3884
  %3902 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %584) #11
  br label %4057

3903:                                             ; preds = %3894, %3892, %3890
  %3904 = landingpad { ptr, i32 }
          cleanup
  br label %4057

3905:                                             ; preds = %._crit_edge2134
  %3906 = fpext float %3875 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3906, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %3877, ptr noundef nonnull align 8 dereferenceable(32) %585)
          to label %3907 unwind label %3928

3907:                                             ; preds = %3905
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %586) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %585) #11
  %3908 = load float, ptr %3730, align 4, !tbaa !75
  %3909 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 0) #11
  %3910 = load i64, ptr %3909, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %587) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %588) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %588) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef nonnull @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %588)
          to label %3911 unwind label %3931

3911:                                             ; preds = %3907
  %3912 = fpext float %3908 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3912, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef %3910, ptr noundef nonnull align 8 dereferenceable(32) %587)
          to label %3913 unwind label %3933

3913:                                             ; preds = %3911
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %587) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %588) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %588) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %587) #11
  %3914 = load float, ptr %3731, align 4, !tbaa !76
  %3915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 0) #11
  %3916 = load i64, ptr %3915, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %589) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %590) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %590) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %589, ptr noundef nonnull @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %590)
          to label %3917 unwind label %3936

3917:                                             ; preds = %3913
  %3918 = fpext float %3914 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3918, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %3916, ptr noundef nonnull align 8 dereferenceable(32) %589)
          to label %3919 unwind label %3938

3919:                                             ; preds = %3917
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %589) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %590) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %590) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %589) #11
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %581) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %582) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %583) #11
  %3920 = getelementptr inbounds i8, ptr %3861, i64 1040
  %3921 = load i32, ptr %3920, align 8, !tbaa !194
  %.not2192 = icmp eq i32 %3921, 0
  br i1 %.not2192, label %._crit_edge2138, label %.lr.ph2137

.lr.ph2137:                                       ; preds = %3919
  %3922 = getelementptr inbounds i8, ptr %3861, i64 1048
  br label %3941

._crit_edge2138:                                  ; preds = %3954, %3919
  %3923 = load float, ptr %578, align 4, !tbaa !74
  %3924 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 1) #11
  %3925 = load i64, ptr %3924, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %597) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %598) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %598) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %597, ptr noundef nonnull @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %598)
          to label %3966 unwind label %3987

3926:                                             ; preds = %._crit_edge2134
  %3927 = landingpad { ptr, i32 }
          cleanup
  br label %3930

3928:                                             ; preds = %3905
  %3929 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %585) #11
  br label %3930

3930:                                             ; preds = %3928, %3926
  %.pn960 = phi { ptr, i32 } [ %3929, %3928 ], [ %3927, %3926 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %586) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %586) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %585) #11
  br label %4057

3931:                                             ; preds = %3907
  %3932 = landingpad { ptr, i32 }
          cleanup
  br label %3935

3933:                                             ; preds = %3911
  %3934 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %587) #11
  br label %3935

3935:                                             ; preds = %3933, %3931
  %.pn962 = phi { ptr, i32 } [ %3934, %3933 ], [ %3932, %3931 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %588) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %588) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %587) #11
  br label %4057

3936:                                             ; preds = %3913
  %3937 = landingpad { ptr, i32 }
          cleanup
  br label %3940

3938:                                             ; preds = %3917
  %3939 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %589) #11
  br label %3940

3940:                                             ; preds = %3938, %3936
  %.pn964 = phi { ptr, i32 } [ %3939, %3938 ], [ %3937, %3936 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %590) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %590) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %589) #11
  br label %4057

3941:                                             ; preds = %.lr.ph2137, %3954
  %.08612135 = phi i64 [ 0, %.lr.ph2137 ], [ %3955, %3954 ]
  %3942 = load ptr, ptr %3922, align 8, !tbaa !195
  %3943 = getelementptr inbounds %struct.aiQuatKey, ptr %3942, i64 %.08612135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %591) #11
  %3944 = load double, ptr %3943, align 8, !tbaa !196
  %3945 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %3944, ptr noundef %3848)
          to label %3946 unwind label %3959

3946:                                             ; preds = %3941
  store i64 %3945, ptr %591, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(8) %591)
          to label %3947 unwind label %3959

3947:                                             ; preds = %3946
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %591) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %592) #11
  call void @llvm.lifetime.start.p0(i64 36, ptr nonnull %593) #11
  %3948 = getelementptr inbounds i8, ptr %3943, i64 8
  call void @_ZNK13aiQuaterniontIfE9GetMatrixEv(ptr dead_on_unwind nonnull writable sret(%class.aiMatrix3x3t) align 4 %593, ptr noundef nonnull align 4 dereferenceable(16) %3948)
  call void @_ZN12aiMatrix4x4tIfEC2ERK12aiMatrix3x3tIfE(ptr noundef nonnull align 4 dereferenceable(64) %592, ptr noundef nonnull align 4 dereferenceable(36) %593)
  call void @llvm.lifetime.end.p0(i64 36, ptr nonnull %593) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %594) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %594) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %595) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %595) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %596) #11
  call void @_ZN10aiVector3tIfEC2Ev(ptr noundef nonnull align 4 dereferenceable(12) %596) #11
  invoke void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64) %592, ptr noundef nonnull align 4 dereferenceable(12) %594, ptr noundef nonnull align 4 dereferenceable(12) %595, ptr noundef nonnull align 4 dereferenceable(12) %596)
          to label %3949 unwind label %3961

3949:                                             ; preds = %3947
  %3950 = invoke { <2 x float>, float } @_ZmlIfE10aiVector3tIT_ERKS2_S1_(ptr noundef nonnull align 4 dereferenceable(12) %595, float noundef 0x404CA5DC20000000)
          to label %3951 unwind label %3963

3951:                                             ; preds = %3949
  %.fca.0.extract = extractvalue { <2 x float>, float } %3950, 0
  %.fca.1.extract = extractvalue { <2 x float>, float } %3950, 1
  store <2 x float> %.fca.0.extract, ptr %595, align 8
  store float %.fca.1.extract, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !57
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %581, ptr noundef nonnull align 4 dereferenceable(4) %595)
          to label %3952 unwind label %3961

3952:                                             ; preds = %3951
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 4 dereferenceable(4) %3732)
          to label %3953 unwind label %3961

3953:                                             ; preds = %3952
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %583, ptr noundef nonnull align 4 dereferenceable(4) %.sroa.5.0..sroa_idx)
          to label %3954 unwind label %3961

3954:                                             ; preds = %3953
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %596) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %595) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %594) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %592) #11
  %3955 = add nuw nsw i64 %.08612135, 1
  %3956 = load i32, ptr %3920, align 8, !tbaa !194
  %3957 = zext i32 %3956 to i64
  %3958 = icmp ult i64 %3955, %3957
  br i1 %3958, label %3941, label %._crit_edge2138, !llvm.loop !199

3959:                                             ; preds = %3946, %3941
  %3960 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %591) #11
  br label %4057

3961:                                             ; preds = %3953, %3952, %3951, %3947
  %3962 = landingpad { ptr, i32 }
          cleanup
  br label %3965

3963:                                             ; preds = %3949
  %3964 = landingpad { ptr, i32 }
          cleanup
  br label %3965

3965:                                             ; preds = %3963, %3961
  %.pn980 = phi { ptr, i32 } [ %3962, %3961 ], [ %3964, %3963 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %596) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %595) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %594) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %592) #11
  br label %4057

3966:                                             ; preds = %._crit_edge2138
  %3967 = fpext float %3923 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3967, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %3925, ptr noundef nonnull align 8 dereferenceable(32) %597)
          to label %3968 unwind label %3989

3968:                                             ; preds = %3966
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %597) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %598) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %598) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %597) #11
  %3969 = load float, ptr %3733, align 4, !tbaa !75
  %3970 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 1) #11
  %3971 = load i64, ptr %3970, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %599) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %600) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %599, ptr noundef nonnull @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %600)
          to label %3972 unwind label %3992

3972:                                             ; preds = %3968
  %3973 = fpext float %3969 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3973, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef %3971, ptr noundef nonnull align 8 dereferenceable(32) %599)
          to label %3974 unwind label %3994

3974:                                             ; preds = %3972
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %599) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %600) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %599) #11
  %3975 = load float, ptr %3734, align 4, !tbaa !76
  %3976 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 1) #11
  %3977 = load i64, ptr %3976, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %601) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %602) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %601, ptr noundef nonnull @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %602)
          to label %3978 unwind label %3997

3978:                                             ; preds = %3974
  %3979 = fpext float %3975 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %3979, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %3977, ptr noundef nonnull align 8 dereferenceable(32) %601)
          to label %3980 unwind label %3999

3980:                                             ; preds = %3978
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %601) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %602) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %601) #11
  call void @_ZNSt6vectorIlSaIlEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %581) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %582) #11
  call void @_ZNSt6vectorIfSaIfEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %583) #11
  %3981 = getelementptr inbounds i8, ptr %3861, i64 1056
  %3982 = load i32, ptr %3981, align 8, !tbaa !200
  %.not2193 = icmp eq i32 %3982, 0
  br i1 %.not2193, label %._crit_edge2142, label %.lr.ph2141

.lr.ph2141:                                       ; preds = %3980
  %3983 = getelementptr inbounds i8, ptr %3861, i64 1064
  br label %4002

._crit_edge2142:                                  ; preds = %4014, %3980
  %3984 = load float, ptr %579, align 4, !tbaa !74
  %3985 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 2) #11
  %3986 = load i64, ptr %3985, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %604) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %605) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %605) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %604, ptr noundef nonnull @.str.390, ptr noundef nonnull align 1 dereferenceable(1) %605)
          to label %4023 unwind label %4042

3987:                                             ; preds = %._crit_edge2138
  %3988 = landingpad { ptr, i32 }
          cleanup
  br label %3991

3989:                                             ; preds = %3966
  %3990 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %597) #11
  br label %3991

3991:                                             ; preds = %3989, %3987
  %.pn966 = phi { ptr, i32 } [ %3990, %3989 ], [ %3988, %3987 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %598) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %598) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %597) #11
  br label %4057

3992:                                             ; preds = %3968
  %3993 = landingpad { ptr, i32 }
          cleanup
  br label %3996

3994:                                             ; preds = %3972
  %3995 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %599) #11
  br label %3996

3996:                                             ; preds = %3994, %3992
  %.pn968 = phi { ptr, i32 } [ %3995, %3994 ], [ %3993, %3992 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %600) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %600) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %599) #11
  br label %4057

3997:                                             ; preds = %3974
  %3998 = landingpad { ptr, i32 }
          cleanup
  br label %4001

3999:                                             ; preds = %3978
  %4000 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %601) #11
  br label %4001

4001:                                             ; preds = %3999, %3997
  %.pn970 = phi { ptr, i32 } [ %4000, %3999 ], [ %3998, %3997 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %602) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %602) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %601) #11
  br label %4057

4002:                                             ; preds = %.lr.ph2141, %4014
  %.04902139 = phi i64 [ 0, %.lr.ph2141 ], [ %4015, %4014 ]
  %4003 = load ptr, ptr %3983, align 8, !tbaa !201
  %4004 = getelementptr inbounds %struct.aiVectorKey, ptr %4003, i64 %.04902139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %603) #11
  %4005 = load double, ptr %4004, align 8, !tbaa !190
  %4006 = invoke noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef %4005, ptr noundef %3848)
          to label %4007 unwind label %4019

4007:                                             ; preds = %4002
  store i64 %4006, ptr %603, align 8, !tbaa !47
  invoke void @_ZNSt6vectorIlSaIlEE9push_backEOl(ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(8) %603)
          to label %4008 unwind label %4019

4008:                                             ; preds = %4007
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %603) #11
  %4009 = getelementptr inbounds i8, ptr %4004, i64 8
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %581, ptr noundef nonnull align 4 dereferenceable(4) %4009)
          to label %4010 unwind label %4021

4010:                                             ; preds = %4008
  %4011 = getelementptr inbounds i8, ptr %4004, i64 12
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %582, ptr noundef nonnull align 4 dereferenceable(4) %4011)
          to label %4012 unwind label %4021

4012:                                             ; preds = %4010
  %4013 = getelementptr inbounds i8, ptr %4004, i64 16
  invoke void @_ZNSt6vectorIfSaIfEE9push_backERKf(ptr noundef nonnull align 8 dereferenceable(24) %583, ptr noundef nonnull align 4 dereferenceable(4) %4013)
          to label %4014 unwind label %4021

4014:                                             ; preds = %4012
  %4015 = add nuw nsw i64 %.04902139, 1
  %4016 = load i32, ptr %3981, align 8, !tbaa !200
  %4017 = zext i32 %4016 to i64
  %4018 = icmp ult i64 %4015, %4017
  br i1 %4018, label %4002, label %._crit_edge2142, !llvm.loop !202

4019:                                             ; preds = %4007, %4002
  %4020 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %603) #11
  br label %4057

4021:                                             ; preds = %4012, %4010, %4008
  %4022 = landingpad { ptr, i32 }
          cleanup
  br label %4057

4023:                                             ; preds = %._crit_edge2142
  %4024 = fpext float %3984 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %4024, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %3986, ptr noundef nonnull align 8 dereferenceable(32) %604)
          to label %4025 unwind label %4044

4025:                                             ; preds = %4023
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %604) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %605) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %605) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %604) #11
  %4026 = load float, ptr %3735, align 4, !tbaa !75
  %4027 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 2) #11
  %4028 = load i64, ptr %4027, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %606) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %607) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %606, ptr noundef nonnull @.str.391, ptr noundef nonnull align 1 dereferenceable(1) %607)
          to label %4029 unwind label %4047

4029:                                             ; preds = %4025
  %4030 = fpext float %4026 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %4030, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %582, i64 noundef %4028, ptr noundef nonnull align 8 dereferenceable(32) %606)
          to label %4031 unwind label %4049

4031:                                             ; preds = %4029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %606) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %607) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %606) #11
  %4032 = load float, ptr %3736, align 4, !tbaa !76
  %4033 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt5arrayIlLm3EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %3871, i64 noundef 2) #11
  %4034 = load i64, ptr %4033, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %608) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %609) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %608, ptr noundef nonnull @.str.392, ptr noundef nonnull align 1 dereferenceable(1) %609)
          to label %4035 unwind label %4052

4035:                                             ; preds = %4031
  %4036 = fpext float %4032 to double
  invoke void @_ZN6Assimp11FBXExporter19WriteAnimationCurveERNS_12StreamWriterILb0ELb0EEEdRKSt6vectorIlSaIlEERKS4_IfSaIfEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(216) %0, ptr noundef nonnull align 8 dereferenceable(56) %4, double noundef %4036, ptr noundef nonnull align 8 dereferenceable(24) %580, ptr noundef nonnull align 8 dereferenceable(24) %583, i64 noundef %4034, ptr noundef nonnull align 8 dereferenceable(32) %608)
          to label %4037 unwind label %4054

4037:                                             ; preds = %4035
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %608) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %609) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %608) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %583) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %583) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %582) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %582) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %581) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %581) #11
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %580) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %580) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %579) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %578) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %577) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %576) #11
  %4038 = add nuw nsw i64 %.08672143, 1
  %4039 = load i32, ptr %3849, align 8, !tbaa !181
  %4040 = zext i32 %4039 to i64
  %4041 = icmp ult i64 %4038, %4040
  br i1 %4041, label %3858, label %._crit_edge2146.loopexit, !llvm.loop !203

4042:                                             ; preds = %._crit_edge2142
  %4043 = landingpad { ptr, i32 }
          cleanup
  br label %4046

4044:                                             ; preds = %4023
  %4045 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %604) #11
  br label %4046

4046:                                             ; preds = %4044, %4042
  %.pn972 = phi { ptr, i32 } [ %4045, %4044 ], [ %4043, %4042 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %605) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %605) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %604) #11
  br label %4057

4047:                                             ; preds = %4025
  %4048 = landingpad { ptr, i32 }
          cleanup
  br label %4051

4049:                                             ; preds = %4029
  %4050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %606) #11
  br label %4051

4051:                                             ; preds = %4049, %4047
  %.pn974 = phi { ptr, i32 } [ %4050, %4049 ], [ %4048, %4047 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %607) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %607) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %606) #11
  br label %4057

4052:                                             ; preds = %4031
  %4053 = landingpad { ptr, i32 }
          cleanup
  br label %4056

4054:                                             ; preds = %4035
  %4055 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %608) #11
  br label %4056

4056:                                             ; preds = %4054, %4052
  %.pn976 = phi { ptr, i32 } [ %4055, %4054 ], [ %4053, %4052 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %609) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %609) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %608) #11
  br label %4057

4057:                                             ; preds = %4019, %4021, %3959, %3965, %3901, %3903, %4056, %4051, %4046, %4001, %3996, %3991, %3940, %3935, %3930
  %.pn983.pn = phi { ptr, i32 } [ %.pn976, %4056 ], [ %.pn974, %4051 ], [ %.pn972, %4046 ], [ %.pn970, %4001 ], [ %.pn968, %3996 ], [ %.pn966, %3991 ], [ %.pn964, %3940 ], [ %.pn962, %3935 ], [ %.pn960, %3930 ], [ %3904, %3903 ], [ %3902, %3901 ], [ %.pn980, %3965 ], [ %3960, %3959 ], [ %4022, %4021 ], [ %4020, %4019 ]
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %583) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %583) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %582) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %582) #11
  call void @_ZNSt6vectorIfSaIfEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %581) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %581) #11
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %580) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %580) #11
  br label %4058

4058:                                             ; preds = %4057, %3882
  %.pn983.pn.pn = phi { ptr, i32 } [ %.pn983.pn, %4057 ], [ %3883, %3882 ]
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %579) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %578) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %577) #11
  br label %4059

4059:                                             ; preds = %4058, %3880
  %.pn983.pn.pn.pn = phi { ptr, i32 } [ %.pn983.pn.pn, %4058 ], [ %3881, %3880 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %576) #11
  br label %4063

4060:                                             ; preds = %._crit_edge2149
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %556) #11
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %549) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %549) #11
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %530) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %423) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %423) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %422) #11
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %419) #11
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %418) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %418) #11
  call void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %416) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %416) #11
  call void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %277) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %277) #11
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %276) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %276) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %230) #11
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #11
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #11
  call void @_ZN6Assimp12StreamWriterILb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #11
  ret void

4061:                                             ; preds = %._crit_edge2149
  %4062 = landingpad { ptr, i32 }
          cleanup
  br label %4063

4063:                                             ; preds = %3878, %4059, %4061, %3840
  %.pn998.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn998.pn.pn.pn.pn, %3840 ], [ %4062, %4061 ], [ %.pn983.pn.pn.pn, %4059 ], [ %3879, %3878 ]
  call void @_ZNSt6vectorIS_ISt5arrayIlLm3EESaIS1_EESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %556) #11
  br label %4064

4064:                                             ; preds = %4063, %3729
  %.pn1009.pn.pn = phi { ptr, i32 } [ %.pn1009.pn, %3729 ], [ %.pn998.pn.pn.pn.pn.pn, %4063 ]
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %549) #11
  br label %4065

4065:                                             ; preds = %4064, %3695
  %.pn1009.pn.pn.pn = phi { ptr, i32 } [ %.pn1009.pn.pn, %4064 ], [ %3696, %3695 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %549) #11
  br label %4066

4066:                                             ; preds = %4065, %3684
  %.pn1028.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1028.pn.pn.pn.pn, %3684 ], [ %.pn1009.pn.pn.pn, %4065 ]
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #11
  br label %4067

4067:                                             ; preds = %4066, %3598
  %.pn1028.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1028.pn.pn.pn.pn.pn, %4066 ], [ %3599, %3598 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %530) #11
  br label %4068

4068:                                             ; preds = %4067, %3596, %3585, %3424, %3095, %3071
  %.pn1130.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn, %3071 ], [ %3096, %3095 ], [ %.pn1110.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %3424 ], [ %.pn1064.pn.pn.pn.pn.pn, %3585 ], [ %.pn1028.pn.pn.pn.pn.pn.pn, %4067 ], [ %3597, %3596 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %423) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %423) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %422) #11
  br label %4069

4069:                                             ; preds = %4068, %2916
  %.pn1139.pn = phi { ptr, i32 } [ %.pn1139, %2916 ], [ %.pn1130.pn.pn.pn.pn.pn.pn, %4068 ]
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %419) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %419) #11
  call void @_ZNSt13unordered_setIPK6aiNodeSt4hashIS2_ESt8equal_toIS2_ESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %418) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %418) #11
  call void @_ZNSt6vectorIS_IPK6aiNodeSaIS2_EESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %416) #11
  br label %4070

4070:                                             ; preds = %4069, %2887
  %.pn1139.pn.pn = phi { ptr, i32 } [ %.pn1139.pn, %4069 ], [ %2888, %2887 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %416) #11
  br label %4071

4071:                                             ; preds = %4070, %2879, %2562
  %.pn1254.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1254.pn.pn.pn.pn, %2562 ], [ %.pn1185.pn.pn.pn.pn.pn.pn.pn.pn, %2879 ], [ %.pn1139.pn.pn, %4070 ]
  call void @_ZNSt3mapI13aiTextureTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS0_ESaISt4pairIKS0_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %277) #11
  br label %4072

4072:                                             ; preds = %4071, %.loopexit1565
  %.pn1254.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1254.pn.pn.pn.pn.pn, %4071 ], [ %.pn949.pn.pn.pn.pn.pn.pn.pn.pn.pn1526, %.loopexit1565 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %277) #11
  call void @_ZNSt3mapISt4pairImmElSt4lessIS1_ESaIS0_IKS1_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %276) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %276) #11
  br label %4073

4073:                                             ; preds = %4072, %2149, %1972
  %.pn1305.pn.pn.pn = phi { ptr, i32 } [ %.pn1305.pn.pn, %1972 ], [ %.pn1298.pn.pn.pn.pn.pn, %2149 ], [ %.pn1254.pn.pn.pn.pn.pn.pn, %4072 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %230) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %230) #11
  br label %4074

4074:                                             ; preds = %4073, %1925, %1535, %664
  %.pn1508.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1508.pn.pn.pn, %1535 ], [ %.pn1361.pn.pn.pn.pn.pn, %1925 ], [ %.pn1305.pn.pn.pn, %4073 ], [ %665, %664 ]
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #11
  br label %4075

4075:                                             ; preds = %662, %4074, %660
  %.pn1508.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %661, %660 ], [ %.pn1508.pn.pn.pn.pn, %4074 ], [ %663, %662 ]
  call void @_ZN6Assimp3FBX4NodeD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #11
  br label %4076

4076:                                             ; preds = %4075, %659
  %.pn1508.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1508.pn.pn.pn.pn.pn.pn, %4075 ], [ %.pn947, %659 ]
  call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) #11
  call void @_ZN6Assimp12StreamWriterILb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %4) #11
  br label %4077

4077:                                             ; preds = %4076, %653
  %.pn1508.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1508.pn.pn.pn.pn.pn.pn.pn, %4076 ], [ %654, %653 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) #11
  br label %4078

4078:                                             ; preds = %4077, %619
  %.pn1508.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1508.pn.pn.pn.pn.pn.pn.pn.pn, %4077 ], [ %.pn, %619 ]
  resume { ptr, i32 } %.pn1508.pn.pn.pn.pn.pn.pn.pn.pn.pn

4079:                                             ; preds = %3406, %2964, %2344, %2302
  unreachable
}

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

declare void @_ZN6Assimp3FBX4Node5BeginERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node13BeginChildrenERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node17WritePropertyNodeIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node8AddChildIJiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

declare void @_ZN6Assimp3FBX4Node4DumpERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

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

declare void @_ZN6Assimp3FBX4Node3EndERNS_12StreamWriterILb0ELb0EEEbib(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef, i1 noundef zeroext) local_unnamed_addr #7

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

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

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

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

declare void @_ZN6Assimp3FBX4Node12AddP70doubleERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node10AddP70enumERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #7

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

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

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

declare void @_ZN6Assimp3FBX4Node10AddP70timeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEl(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #7

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial3GetEPKcjjRf(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial15GetTextureCountE13aiTextureType(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial10GetTextureE13aiTextureTypejP8aiStringP16aiTextureMappingPjPfP11aiTextureOpP16aiTextureMapMode(ptr noundef nonnull align 8 dereferenceable(16), i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZN6Assimp3FBX4NodeaSEOS1_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #8 align 2

declare void @_ZN6Assimp3FBX4Node10AddP70boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), i1 noundef zeroext) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node12AddP70vectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node12AddP70colorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node13AddP70numberAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef) local_unnamed_addr #7

declare void @_ZN6Assimp3FBX4Node13AddP70vectorAERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEddd(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), double noundef, double noundef, double noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_Z17get_node_for_meshjP6aiNode(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z19get_world_transformPK6aiNodePK7aiScene(ptr dead_on_unwind noalias writable sret(%class.aiMatrix4x4t) align 4, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

declare void @_ZN6Assimp3FBX4Node13EndPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node11AddPropertyIRA5_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #2 align 2

declare void @_ZN6Assimp3FBX4Node14DumpPropertiesERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) local_unnamed_addr #8 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZSt4iotaIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiEvT_S7_T0_(ptr, ptr, i32 noundef) local_unnamed_addr #1

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

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

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

declare void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIdSaIdEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

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

declare void @_ZN6Assimp3FBX4Node17WritePropertyNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIiSaIiEERNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node17WritePropertyNodeIPKcEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RNS_12StreamWriterILb0ELb0EEEbi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(56), i1 noundef zeroext, i32 noundef) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #9

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

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

declare noundef ptr @_ZN6Assimp13DefaultLogger3getEv() local_unnamed_addr #7

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK10aiVector3tIfEixEj(ptr noundef nonnull align 4 dereferenceable(12), i32 noundef) local_unnamed_addr #8 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial3GetEPKcjjR8aiString(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(1028)) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK10aiMaterial3GetEPKcjjR9aiColor3D(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i32 noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #7

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

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

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

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

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

declare void @_ZN6Assimp3FBX4Util12EncodeBase64B5cxx11EPKcm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, i64 noundef) local_unnamed_addr #7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare i32 @aiGetMaterialFloatArray(ptr noundef, ptr noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK10aiVector2tIfEixEj(ptr noundef nonnull align 4 dereferenceable(8), i32 noundef) local_unnamed_addr #8 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node8AddChildIJiiiiEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node11AddPropertyIRA6_KcEEvOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(6)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZmiIfE10aiVector3tIT_ERKS2_S4_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef float @_ZNK10aiVector3tIfE6LengthEv(ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node8AddChildIJfEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN6aiNode8FindNodeERK8aiString(ptr noundef nonnull align 8 dereferenceable(1144), ptr noundef nonnull align 4 dereferenceable(1028)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(64) ptr @_ZN12aiMatrix4x4tIfE7InverseEv(ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK12aiMatrix4x4tIfEmlERKS0_(ptr dead_on_unwind noalias writable sret(%class.aiMatrix4x4t) align 4, ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX4Node8AddChildIJR12aiMatrix4x4tIfEEEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN6Assimp3FBX17FBXExportPropertyC1EPKcb(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i1 noundef zeroext) unnamed_addr #7

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

declare void @_ZN6Assimp3FBX17FBXExportPropertyC1Ei(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #7

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_Z8to_ktimedPK11aiAnimation(double noundef, ptr noundef) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNK12aiMatrix4x4tIfE9DecomposeER10aiVector3tIfES3_S3_(ptr noundef nonnull align 4 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #10 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp11FBXExporter23WriteAnimationCurveNodeERNS_12StreamWriterILb0ELb0EEElRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10aiVector3tIfESB_ll(ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 8 dereferenceable(32), <2 x float>, float, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #6 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNK13aiQuaterniontIfE9GetMatrixEv(ptr dead_on_unwind noalias writable sret(%class.aiMatrix3x3t) align 4, ptr noundef nonnull align 4 dereferenceable(16)) local_unnamed_addr #8 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZmlIfE10aiVector3tIT_ERKS2_S1_(ptr noundef nonnull align 4 dereferenceable(12), float noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN6Assimp11FBXExporterE", !7, i64 0, !10, i64 8, !10, i64 16, !11, i64 24, !14, i64 40, !18, i64 64, !18, i64 88, !22, i64 112, !31, i64 160, !30, i64 208}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"_ZTSSt10shared_ptrIN6Assimp8IOStreamEE", !12, i64 0}
!12 = !{!"_ZTSSt12__shared_ptrIN6Assimp8IOStreamELN9__gnu_cxx12_Lock_policyE2EE", !10, i64 0, !13, i64 8}
!13 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !10, i64 0}
!14 = !{!"_ZTSSt6vectorIN6Assimp3FBX4NodeESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX4NodeESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!18 = !{!"_ZTSSt6vectorIlSaIlEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIlSaIlEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIlSaIlEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!22 = !{!"_ZTSSt3mapIPK6aiNodelSt4lessIS2_ESaISt4pairIKS2_lEEE", !23, i64 0}
!23 = !{!"_ZTSSt8_Rb_treeIPK6aiNodeSt4pairIKS2_lESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE", !24, i64 0}
!24 = !{!"_ZTSNSt8_Rb_treeIPK6aiNodeSt4pairIKS2_lESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !25, i64 0, !27, i64 8}
!25 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPK6aiNodeEE", !26, i64 0}
!26 = !{!"_ZTSSt4lessIPK6aiNodeE"}
!27 = !{!"_ZTSSt15_Rb_tree_header", !28, i64 0, !30, i64 32}
!28 = !{!"_ZTSSt18_Rb_tree_node_base", !29, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!29 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!30 = !{!"long", !8, i64 0}
!31 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElSt4lessIS5_ESaISt4pairIKS5_lEEE", !32, i64 0}
!32 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_lESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !33, i64 0}
!33 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_lESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !34, i64 0, !27, i64 8}
!34 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !35, i64 0}
!35 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!36 = !{i8 0, i8 2}
!37 = !{}
!38 = !{!6, !10, i64 16}
!39 = !{!6, !10, i64 8}
!40 = !{!41, !42, i64 16}
!41 = !{!"_ZTS7aiScene", !42, i64 0, !10, i64 8, !42, i64 16, !10, i64 24, !42, i64 32, !10, i64 40, !42, i64 48, !10, i64 56, !42, i64 64, !10, i64 72, !42, i64 80, !10, i64 88, !42, i64 96, !10, i64 104, !10, i64 112, !43, i64 120, !42, i64 1148, !10, i64 1152, !10, i64 1160}
!42 = !{!"int", !8, i64 0}
!43 = !{!"_ZTS8aiString", !42, i64 0, !8, i64 4}
!44 = !{!41, !42, i64 32}
!45 = !{!41, !10, i64 24}
!46 = !{!10, !10, i64 0}
!47 = !{!30, !30, i64 0}
!48 = !{!42, !42, i64 0}
!49 = !{!50, !42, i64 4}
!50 = !{!"_ZTS6aiMesh", !42, i64 0, !42, i64 4, !42, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !8, i64 48, !8, i64 112, !8, i64 176, !10, i64 208, !42, i64 216, !10, i64 224, !42, i64 232, !43, i64 236, !42, i64 1264, !10, i64 1272, !51, i64 1280, !52, i64 1284, !10, i64 1312}
!51 = !{!"_ZTS16aiMorphingMethod", !8, i64 0}
!52 = !{!"_ZTS6aiAABB", !53, i64 0, !53, i64 12}
!53 = !{!"_ZTS10aiVector3tIfE", !54, i64 0, !54, i64 4, !54, i64 8}
!54 = !{!"float", !8, i64 0}
!55 = !{!50, !10, i64 16}
!56 = !{i64 0, i64 4, !57, i64 4, i64 4, !57, i64 8, i64 4, !57}
!57 = !{!54, !54, i64 0}
!58 = !{!59, !59, i64 0}
!59 = !{!"double", !8, i64 0}
!60 = !{!61, !30, i64 16}
!61 = !{!"_ZTSSt4pairIK10aiVector3tIfEmE", !53, i64 0, !30, i64 16}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}
!64 = distinct !{!64, !63}
!65 = !{!50, !42, i64 8}
!66 = !{!50, !10, i64 208}
!67 = !{!68, !42, i64 0}
!68 = !{!"_ZTS6aiFace", !42, i64 0, !10, i64 8}
!69 = !{!68, !10, i64 8}
!70 = distinct !{!70, !63}
!71 = distinct !{!71, !63}
!72 = distinct !{!72, !63}
!73 = !{!50, !10, i64 24}
!74 = !{!53, !54, i64 0}
!75 = !{!53, !54, i64 4}
!76 = !{!53, !54, i64 8}
!77 = distinct !{!77, !63}
!78 = distinct !{!78, !63}
!79 = !{!80, !54, i64 0}
!80 = !{!"_ZTS9aiColor4tIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12}
!81 = !{!80, !54, i64 4}
!82 = !{!80, !54, i64 8}
!83 = !{!80, !54, i64 12}
!84 = distinct !{!84, !63}
!85 = distinct !{!85, !63}
!86 = !{!50, !42, i64 236}
!87 = distinct !{!87, !63}
!88 = distinct !{!88, !63}
!89 = distinct !{!89, !63}
!90 = distinct !{!90, !63}
!91 = distinct !{!91, !63}
!92 = distinct !{!92, !63}
!93 = distinct !{!93, !63}
!94 = !{!41, !10, i64 40}
!95 = !{!96, !54, i64 0}
!96 = !{!"_ZTS9aiColor3D", !54, i64 0, !54, i64 4, !54, i64 8}
!97 = !{!96, !54, i64 4}
!98 = !{!96, !54, i64 8}
!99 = distinct !{!99, !63}
!100 = distinct !{!100, !63}
!101 = distinct !{!101, !63}
!102 = distinct !{!102, !63}
!103 = !{!104, !104, i64 0}
!104 = !{!"_ZTS13aiTextureType", !8, i64 0}
!105 = !{!106, !42, i64 32}
!106 = !{!"_ZTS9aiTexture", !42, i64 0, !42, i64 4, !8, i64 8, !10, i64 24, !43, i64 32}
!107 = !{!8, !8, i64 0}
!108 = !{!106, !42, i64 0}
!109 = !{!106, !10, i64 24}
!110 = distinct !{!110, !63}
!111 = !{!112, !30, i64 32}
!112 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElE", !113, i64 0, !30, i64 32}
!113 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !114, i64 0, !30, i64 8, !8, i64 16}
!114 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!115 = !{!116, !54, i64 16}
!116 = !{!"_ZTS13aiUVTransform", !117, i64 0, !117, i64 8, !54, i64 16}
!117 = !{!"_ZTS10aiVector2tIfE", !54, i64 0, !54, i64 4}
!118 = distinct !{!118, !63}
!119 = !{!50, !42, i64 1264}
!120 = !{!50, !10, i64 1272}
!121 = !{!122, !10, i64 1032}
!122 = !{!"_ZTS10aiAnimMesh", !43, i64 0, !10, i64 1032, !10, i64 1040, !10, i64 1048, !10, i64 1056, !8, i64 1064, !8, i64 1128, !42, i64 1192, !54, i64 1196}
!123 = !{!122, !10, i64 1040}
!124 = distinct !{!124, !63}
!125 = distinct !{!125, !63}
!126 = distinct !{!126, !63}
!127 = !{!50, !42, i64 216}
!128 = distinct !{!128, !63}
!129 = !{!50, !10, i64 224}
!130 = distinct !{!130, !63}
!131 = !{!132, !10, i64 32}
!132 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiNodeE", !113, i64 0, !10, i64 32}
!133 = !{!41, !10, i64 8}
!134 = !{!135, !10, i64 1096}
!135 = !{!"_ZTS6aiNode", !43, i64 0, !136, i64 1028, !10, i64 1096, !42, i64 1104, !10, i64 1112, !42, i64 1120, !10, i64 1128, !10, i64 1136}
!136 = !{!"_ZTS12aiMatrix4x4tIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12, !54, i64 16, !54, i64 20, !54, i64 24, !54, i64 28, !54, i64 32, !54, i64 36, !54, i64 40, !54, i64 44, !54, i64 48, !54, i64 52, !54, i64 56, !54, i64 60}
!137 = !{!135, !42, i64 1120}
!138 = !{!135, !10, i64 1128}
!139 = distinct !{!139, !63}
!140 = !{!135, !42, i64 1104}
!141 = !{!135, !10, i64 1112}
!142 = distinct !{!142, !63}
!143 = distinct !{!143, !63}
!144 = distinct !{!144, !63}
!145 = distinct !{!145, !63}
!146 = distinct !{!146, !63}
!147 = distinct !{!147, !63}
!148 = !{!41, !42, i64 80}
!149 = distinct !{!149, !63}
!150 = !{!151, !42, i64 1028}
!151 = !{!"_ZTS6aiBone", !43, i64 0, !42, i64 1028, !10, i64 1032, !10, i64 1040, !10, i64 1048, !136, i64 1056}
!152 = !{!151, !10, i64 1048}
!153 = !{!154, !42, i64 0}
!154 = !{!"_ZTS14aiVertexWeight", !42, i64 0, !54, i64 4}
!155 = !{!154, !54, i64 4}
!156 = distinct !{!156, !63}
!157 = !{i64 0, i64 4, !57, i64 4, i64 4, !57, i64 8, i64 4, !57, i64 12, i64 4, !57, i64 16, i64 4, !57, i64 20, i64 4, !57, i64 24, i64 4, !57, i64 28, i64 4, !57, i64 32, i64 4, !57, i64 36, i64 4, !57, i64 40, i64 4, !57, i64 44, i64 4, !57, i64 48, i64 4, !57, i64 52, i64 4, !57, i64 56, i64 4, !57, i64 60, i64 4, !57}
!158 = distinct !{!158, !63}
!159 = !{!41, !10, i64 88}
!160 = !{!161, !54, i64 1080}
!161 = !{!"_ZTS7aiLight", !43, i64 0, !162, i64 1028, !53, i64 1032, !53, i64 1044, !53, i64 1056, !54, i64 1068, !54, i64 1072, !54, i64 1076, !96, i64 1080, !96, i64 1092, !96, i64 1104, !54, i64 1116, !54, i64 1120, !117, i64 1124}
!162 = !{!"_ZTS17aiLightSourceType", !8, i64 0}
!163 = !{!161, !54, i64 1084}
!164 = !{!161, !54, i64 1088}
!165 = !{!161, !162, i64 1028}
!166 = !{!161, !54, i64 1116}
!167 = !{!161, !54, i64 1120}
!168 = distinct !{!168, !63}
!169 = !{!41, !42, i64 48}
!170 = !{!41, !10, i64 56}
!171 = !{!172, !59, i64 1032}
!172 = !{!"_ZTS11aiAnimation", !43, i64 0, !59, i64 1032, !59, i64 1040, !42, i64 1048, !10, i64 1056, !42, i64 1064, !10, i64 1072, !42, i64 1080, !10, i64 1088}
!173 = !{!174, !7, i64 80}
!174 = !{!"_ZTSN6Assimp3FBX4NodeE", !113, i64 0, !175, i64 32, !14, i64 56, !7, i64 80, !30, i64 88, !30, i64 96, !30, i64 104}
!175 = !{!"_ZTSSt6vectorIN6Assimp3FBX17FBXExportPropertyESaIS2_EE", !176, i64 0}
!176 = !{!"_ZTSSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE", !177, i64 0}
!177 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE12_Vector_implE", !178, i64 0}
!178 = !{!"_ZTSNSt12_Vector_baseIN6Assimp3FBX17FBXExportPropertyESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!179 = distinct !{!179, !63}
!180 = distinct !{!180, !63}
!181 = !{!172, !42, i64 1048}
!182 = !{!172, !10, i64 1056}
!183 = distinct !{!183, !63}
!184 = distinct !{!184, !63}
!185 = distinct !{!185, !63}
!186 = !{!187, !42, i64 1028}
!187 = !{!"_ZTS10aiNodeAnim", !43, i64 0, !42, i64 1028, !10, i64 1032, !42, i64 1040, !10, i64 1048, !42, i64 1056, !10, i64 1064, !188, i64 1072, !188, i64 1076}
!188 = !{!"_ZTS15aiAnimBehaviour", !8, i64 0}
!189 = !{!187, !10, i64 1032}
!190 = !{!191, !59, i64 0}
!191 = !{!"_ZTS11aiVectorKey", !59, i64 0, !53, i64 8, !192, i64 20}
!192 = !{!"_ZTS19aiAnimInterpolation", !8, i64 0}
!193 = distinct !{!193, !63}
!194 = !{!187, !42, i64 1040}
!195 = !{!187, !10, i64 1048}
!196 = !{!197, !59, i64 0}
!197 = !{!"_ZTS9aiQuatKey", !59, i64 0, !198, i64 8, !192, i64 24}
!198 = !{!"_ZTS13aiQuaterniontIfE", !54, i64 0, !54, i64 4, !54, i64 8, !54, i64 12}
!199 = distinct !{!199, !63}
!200 = !{!187, !42, i64 1056}
!201 = !{!187, !10, i64 1064}
!202 = distinct !{!202, !63}
!203 = distinct !{!203, !63}


; Effective O3 passes: ADCEPass,BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass