; LLVM IR from Razakhel/RaZ :: extern/fastgltf/src/fastgltf.ll (ZN8fastgltf8validateERKNS_5AssetE)

; 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::basic_string_view" = type { i64, ptr }
%class.anon.224 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.225" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.226" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.227" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.234" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.235" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.236" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.237" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.262" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.263" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.266" = type { ptr }
%class.anon.363 = type { ptr }
%"class.std::optional.364" = type { %"struct.std::_Optional_base.365" }
%"struct.std::_Optional_base.365" = type { %"struct.std::_Optional_payload.367" }
%"struct.std::_Optional_payload.367" = type { %"struct.std::_Optional_payload_base.base.369", [7 x i8] }
%"struct.std::_Optional_payload_base.base.369" = type <{ %"union.std::_Optional_payload_base<unsigned long>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned long>::_Storage" = type { i64 }
%"class.__gnu_cxx::__normal_iterator.372" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.373" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.374" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.375" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.401" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.405" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.406" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.407" = type { ptr }
%"class.fastgltf::Asset" = type <{ %"class.std::shared_ptr", %"class.std::optional", %"class.std::vector.88", %"class.std::vector.88", %"class.fastgltf::OptionalWithFlagValue", %"class.std::vector.91", %"class.std::vector.96", %"class.std::vector.101", %"class.std::vector.106", %"class.std::vector.111", %"class.std::vector.116", %"class.std::vector.121", %"class.std::vector.126", %"class.std::vector.131", %"class.std::vector.136", %"class.std::vector.141", %"class.std::vector.146", %"class.std::vector.151", %"class.std::vector.156", %"class.std::vector.161", i32, [4 x i8] }>
%"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::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<fastgltf::AssetInfo>::_Storage", i8 }>
%"union.std::_Optional_payload_base<fastgltf::AssetInfo>::_Storage" = type { %"struct.fastgltf::AssetInfo" }
%"struct.fastgltf::AssetInfo" = type { %"class.std::__cxx11::basic_string.74", %"class.std::__cxx11::basic_string.74", %"class.std::__cxx11::basic_string.74" }
%"class.std::__cxx11::basic_string.74" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>::_Alloc_hider", i64, %union.anon.76 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>::_Alloc_hider" = type { %"class.std::pmr::polymorphic_allocator.75", ptr }
%"class.std::pmr::polymorphic_allocator.75" = type { ptr }
%union.anon.76 = type { i64, [8 x i8] }
%"class.std::vector.88" = type { %"struct.std::_Vector_base.89" }
%"struct.std::_Vector_base.89" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>, std::pmr::polymorphic_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>, std::pmr::polymorphic_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.90", %"struct.std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>, std::pmr::polymorphic_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.90" = type { ptr }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>, std::pmr::polymorphic_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.fastgltf::OptionalWithFlagValue" = type { %union.anon }
%union.anon = type { i64 }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<fastgltf::Accessor, std::allocator<fastgltf::Accessor>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Accessor, std::allocator<fastgltf::Accessor>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Accessor, std::allocator<fastgltf::Accessor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Accessor, std::allocator<fastgltf::Accessor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.96" = type { %"struct.std::_Vector_base.97" }
%"struct.std::_Vector_base.97" = type { %"struct.std::_Vector_base<fastgltf::Animation, std::allocator<fastgltf::Animation>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Animation, std::allocator<fastgltf::Animation>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Animation, std::allocator<fastgltf::Animation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Animation, std::allocator<fastgltf::Animation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.101" = type { %"struct.std::_Vector_base.102" }
%"struct.std::_Vector_base.102" = type { %"struct.std::_Vector_base<fastgltf::Buffer, std::allocator<fastgltf::Buffer>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Buffer, std::allocator<fastgltf::Buffer>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Buffer, std::allocator<fastgltf::Buffer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Buffer, std::allocator<fastgltf::Buffer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.106" = type { %"struct.std::_Vector_base.107" }
%"struct.std::_Vector_base.107" = type { %"struct.std::_Vector_base<fastgltf::BufferView, std::allocator<fastgltf::BufferView>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::BufferView, std::allocator<fastgltf::BufferView>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::BufferView, std::allocator<fastgltf::BufferView>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::BufferView, std::allocator<fastgltf::BufferView>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.111" = type { %"struct.std::_Vector_base.112" }
%"struct.std::_Vector_base.112" = type { %"struct.std::_Vector_base<fastgltf::Camera, std::allocator<fastgltf::Camera>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Camera, std::allocator<fastgltf::Camera>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Camera, std::allocator<fastgltf::Camera>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Camera, std::allocator<fastgltf::Camera>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.116" = type { %"struct.std::_Vector_base.117" }
%"struct.std::_Vector_base.117" = type { %"struct.std::_Vector_base<fastgltf::Image, std::allocator<fastgltf::Image>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Image, std::allocator<fastgltf::Image>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Image, std::allocator<fastgltf::Image>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Image, std::allocator<fastgltf::Image>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.121" = type { %"struct.std::_Vector_base.122" }
%"struct.std::_Vector_base.122" = type { %"struct.std::_Vector_base<fastgltf::Light, std::allocator<fastgltf::Light>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Light, std::allocator<fastgltf::Light>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Light, std::allocator<fastgltf::Light>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Light, std::allocator<fastgltf::Light>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.126" = type { %"struct.std::_Vector_base.127" }
%"struct.std::_Vector_base.127" = type { %"struct.std::_Vector_base<fastgltf::Material, std::allocator<fastgltf::Material>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Material, std::allocator<fastgltf::Material>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Material, std::allocator<fastgltf::Material>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Material, std::allocator<fastgltf::Material>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.131" = type { %"struct.std::_Vector_base.132" }
%"struct.std::_Vector_base.132" = type { %"struct.std::_Vector_base<fastgltf::Mesh, std::allocator<fastgltf::Mesh>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Mesh, std::allocator<fastgltf::Mesh>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Mesh, std::allocator<fastgltf::Mesh>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Mesh, std::allocator<fastgltf::Mesh>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.136" = type { %"struct.std::_Vector_base.137" }
%"struct.std::_Vector_base.137" = type { %"struct.std::_Vector_base<fastgltf::Node, std::allocator<fastgltf::Node>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Node, std::allocator<fastgltf::Node>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Node, std::allocator<fastgltf::Node>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Node, std::allocator<fastgltf::Node>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.141" = type { %"struct.std::_Vector_base.142" }
%"struct.std::_Vector_base.142" = type { %"struct.std::_Vector_base<fastgltf::Sampler, std::allocator<fastgltf::Sampler>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Sampler, std::allocator<fastgltf::Sampler>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Sampler, std::allocator<fastgltf::Sampler>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Sampler, std::allocator<fastgltf::Sampler>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.146" = type { %"struct.std::_Vector_base.147" }
%"struct.std::_Vector_base.147" = type { %"struct.std::_Vector_base<fastgltf::Scene, std::allocator<fastgltf::Scene>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Scene, std::allocator<fastgltf::Scene>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Scene, std::allocator<fastgltf::Scene>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Scene, std::allocator<fastgltf::Scene>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.151" = type { %"struct.std::_Vector_base.152" }
%"struct.std::_Vector_base.152" = type { %"struct.std::_Vector_base<fastgltf::Skin, std::allocator<fastgltf::Skin>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Skin, std::allocator<fastgltf::Skin>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Skin, std::allocator<fastgltf::Skin>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Skin, std::allocator<fastgltf::Skin>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.156" = type { %"struct.std::_Vector_base.157" }
%"struct.std::_Vector_base.157" = type { %"struct.std::_Vector_base<fastgltf::Texture, std::allocator<fastgltf::Texture>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Texture, std::allocator<fastgltf::Texture>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::Texture, std::allocator<fastgltf::Texture>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Texture, std::allocator<fastgltf::Texture>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.161" = type { %"struct.std::_Vector_base.162" }
%"struct.std::_Vector_base.162" = 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 }
%"struct.fastgltf::Accessor" = type { i64, i64, i8, i16, i8, [3 x i8], %"class.std::variant.181", %"class.std::variant.181", %"class.fastgltf::OptionalWithFlagValue", %"class.std::optional.205", %"class.std::__cxx11::basic_string.74" }
%"class.std::variant.181" = type { %"struct.std::__detail::__variant::_Variant_base.base.200", [7 x i8] }
%"struct.std::__detail::__variant::_Variant_base.base.200" = type { %"struct.std::__detail::__variant::_Move_assign_base.base.199" }
%"struct.std::__detail::__variant::_Move_assign_base.base.199" = type { %"struct.std::__detail::__variant::_Copy_assign_base.base.198" }
%"struct.std::__detail::__variant::_Copy_assign_base.base.198" = type { %"struct.std::__detail::__variant::_Move_ctor_base.base.197" }
%"struct.std::__detail::__variant::_Move_ctor_base.base.197" = type { %"struct.std::__detail::__variant::_Copy_ctor_base.base.196" }
%"struct.std::__detail::__variant::_Copy_ctor_base.base.196" = type { %"struct.std::__detail::__variant::_Variant_storage.base.195" }
%"struct.std::__detail::__variant::_Variant_storage.base.195" = type { %"union.std::__detail::__variant::_Variadic_union.188", i8 }
%"union.std::__detail::__variant::_Variadic_union.188" = type { %"union.std::__detail::__variant::_Variadic_union.189" }
%"union.std::__detail::__variant::_Variadic_union.189" = type { %"struct.std::__detail::__variant::_Uninitialized.190" }
%"struct.std::__detail::__variant::_Uninitialized.190" = type { %"struct.__gnu_cxx::__aligned_membuf.191" }
%"struct.__gnu_cxx::__aligned_membuf.191" = type { [32 x i8] }
%"class.std::optional.205" = type { %"struct.std::_Optional_base.206" }
%"struct.std::_Optional_base.206" = type { %"struct.std::_Optional_payload.208" }
%"struct.std::_Optional_payload.208" = type { %"struct.std::_Optional_payload_base.base.210", [7 x i8] }
%"struct.std::_Optional_payload_base.base.210" = type { %"union.std::_Optional_payload_base<fastgltf::SparseAccessor>::_Storage", i8 }
%"union.std::_Optional_payload_base<fastgltf::SparseAccessor>::_Storage" = type { %"struct.fastgltf::SparseAccessor" }
%"struct.fastgltf::SparseAccessor" = type <{ i64, i64, i64, i64, i64, i16, [6 x i8] }>
%"struct.fastgltf::BufferView" = type { i64, i64, i64, %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue.214", %"class.std::unique_ptr.216", %"class.std::__cxx11::basic_string.74" }
%"class.fastgltf::OptionalWithFlagValue.214" = type { %union.anon.215 }
%union.anon.215 = type { i16 }
%"class.std::unique_ptr.216" = type { %"struct.std::__uniq_ptr_data.217" }
%"struct.std::__uniq_ptr_data.217" = type { %"class.std::__uniq_ptr_impl.218" }
%"class.std::__uniq_ptr_impl.218" = type { %"class.std::tuple.219" }
%"class.std::tuple.219" = type { %"struct.std::_Tuple_impl.220" }
%"struct.std::_Tuple_impl.220" = type { %"struct.std::_Head_base.223" }
%"struct.std::_Head_base.223" = type { ptr }
%"struct.fastgltf::Animation" = type { %"class.std::vector.228", %"class.std::vector.231", %"class.std::__cxx11::basic_string.74" }
%"class.std::vector.228" = type { %"struct.std::_Vector_base.229" }
%"struct.std::_Vector_base.229" = type { %"struct.std::_Vector_base<fastgltf::AnimationChannel, std::pmr::polymorphic_allocator<fastgltf::AnimationChannel>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::AnimationChannel, std::pmr::polymorphic_allocator<fastgltf::AnimationChannel>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.230", %"struct.std::_Vector_base<fastgltf::AnimationChannel, std::pmr::polymorphic_allocator<fastgltf::AnimationChannel>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.230" = type { ptr }
%"struct.std::_Vector_base<fastgltf::AnimationChannel, std::pmr::polymorphic_allocator<fastgltf::AnimationChannel>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.231" = type { %"struct.std::_Vector_base.232" }
%"struct.std::_Vector_base.232" = type { %"struct.std::_Vector_base<fastgltf::AnimationSampler, std::pmr::polymorphic_allocator<fastgltf::AnimationSampler>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::AnimationSampler, std::pmr::polymorphic_allocator<fastgltf::AnimationSampler>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.233", %"struct.std::_Vector_base<fastgltf::AnimationSampler, std::pmr::polymorphic_allocator<fastgltf::AnimationSampler>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.233" = type { ptr }
%"struct.std::_Vector_base<fastgltf::AnimationSampler, std::pmr::polymorphic_allocator<fastgltf::AnimationSampler>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.fastgltf::AnimationChannel" = type <{ i64, %"class.fastgltf::OptionalWithFlagValue", i8, [7 x i8] }>
%"struct.fastgltf::AnimationSampler" = type <{ i64, i64, i8, [7 x i8] }>
%"struct.fastgltf::Buffer" = type { i64, %"class.std::variant", %"class.std::__cxx11::basic_string.74" }
%"class.std::variant" = type { %"struct.std::__detail::__variant::_Variant_base.base", [7 x i8] }
%"struct.std::__detail::__variant::_Variant_base.base" = type { %"struct.std::__detail::__variant::_Move_assign_base.base" }
%"struct.std::__detail::__variant::_Move_assign_base.base" = type { %"struct.std::__detail::__variant::_Copy_assign_base.base" }
%"struct.std::__detail::__variant::_Copy_assign_base.base" = type { %"struct.std::__detail::__variant::_Move_ctor_base.base" }
%"struct.std::__detail::__variant::_Move_ctor_base.base" = type { %"struct.std::__detail::__variant::_Copy_ctor_base.base" }
%"struct.std::__detail::__variant::_Copy_ctor_base.base" = type { %"struct.std::__detail::__variant::_Variant_storage.base" }
%"struct.std::__detail::__variant::_Variant_storage.base" = type { %"union.std::__detail::__variant::_Variadic_union", i8 }
%"union.std::__detail::__variant::_Variadic_union" = type { %"union.std::__detail::__variant::_Variadic_union.40" }
%"union.std::__detail::__variant::_Variadic_union.40" = type { %"union.std::__detail::__variant::_Variadic_union.42" }
%"union.std::__detail::__variant::_Variadic_union.42" = type { %"struct.std::__detail::__variant::_Uninitialized.43" }
%"struct.std::__detail::__variant::_Uninitialized.43" = type { %"struct.__gnu_cxx::__aligned_membuf" }
%"struct.__gnu_cxx::__aligned_membuf" = type { [184 x i8] }
%"struct.fastgltf::CompressedBufferView" = type { i64, i64, i64, i64, i8, i8, i64 }
%"struct.fastgltf::Camera" = type { %"class.std::variant.238", %"class.std::__cxx11::basic_string.74" }
%"class.std::variant.238" = type { %"struct.std::__detail::__variant::_Variant_base.base.255", [3 x i8] }
%"struct.std::__detail::__variant::_Variant_base.base.255" = type { %"struct.std::__detail::__variant::_Move_assign_base.base.254" }
%"struct.std::__detail::__variant::_Move_assign_base.base.254" = type { %"struct.std::__detail::__variant::_Copy_assign_base.base.253" }
%"struct.std::__detail::__variant::_Copy_assign_base.base.253" = type { %"struct.std::__detail::__variant::_Move_ctor_base.base.252" }
%"struct.std::__detail::__variant::_Move_ctor_base.base.252" = type { %"struct.std::__detail::__variant::_Copy_ctor_base.base.251" }
%"struct.std::__detail::__variant::_Copy_ctor_base.base.251" = type { %"struct.std::__detail::__variant::_Variant_storage.base.250" }
%"struct.std::__detail::__variant::_Variant_storage.base.250" = type <{ %"union.std::__detail::__variant::_Variadic_union.245", i8 }>
%"union.std::__detail::__variant::_Variadic_union.245" = type { %"union.std::__detail::__variant::_Variadic_union.248" }
%"union.std::__detail::__variant::_Variadic_union.248" = type { %"struct.std::__detail::__variant::_Uninitialized.249" }
%"struct.std::__detail::__variant::_Uninitialized.249" = type { %"struct.fastgltf::Camera::Orthographic" }
%"struct.fastgltf::Camera::Orthographic" = type { float, float, float, float }
%"struct.fastgltf::Camera::Perspective" = type { %"class.fastgltf::OptionalWithFlagValue.260", float, %"class.fastgltf::OptionalWithFlagValue.260", float }
%"class.fastgltf::OptionalWithFlagValue.260" = type { %union.anon.261 }
%union.anon.261 = type { float }
%"struct.fastgltf::Image" = type { %"class.std::variant", %"class.std::__cxx11::basic_string.74" }
%"struct.fastgltf::sources::BufferView" = type <{ i64, i8, [7 x i8] }>
%"struct.fastgltf::Light" = type { i8, %"class.fastgltf::math::vec.264", float, %"class.fastgltf::OptionalWithFlagValue.260", %"class.fastgltf::OptionalWithFlagValue.260", %"class.fastgltf::OptionalWithFlagValue.260", %"class.std::__cxx11::basic_string.74" }
%"class.fastgltf::math::vec.264" = type { %"struct.std::array.265" }
%"struct.std::array.265" = type { [3 x float] }
%"struct.fastgltf::Material" = type { %"struct.fastgltf::PBRData", %"class.std::optional.279", %"class.std::optional.289", %"class.std::optional.269", %"class.fastgltf::math::vec.264", i8, i8, i8, float, float, float, float, %"class.std::unique_ptr.299", %"class.std::unique_ptr.307", %"class.std::unique_ptr.315", %"class.std::unique_ptr.323", %"class.std::unique_ptr.331", %"class.std::unique_ptr.339", %"class.std::unique_ptr.347", %"class.std::optional.269", %"class.std::unique_ptr.355", %"class.std::__cxx11::basic_string.74" }
%"struct.fastgltf::PBRData" = type { %"class.fastgltf::math::vec.267", float, float, %"class.std::optional.269", %"class.std::optional.269" }
%"class.fastgltf::math::vec.267" = type { %"struct.std::array.268" }
%"struct.std::array.268" = type { [4 x float] }
%"class.std::optional.279" = type { %"struct.std::_Optional_base.280" }
%"struct.std::_Optional_base.280" = type { %"struct.std::_Optional_payload.282" }
%"struct.std::_Optional_payload.282" = type { %"struct.std::_Optional_payload.base.286", [7 x i8] }
%"struct.std::_Optional_payload.base.286" = type { %"struct.std::_Optional_payload_base.base.285" }
%"struct.std::_Optional_payload_base.base.285" = type { %"union.std::_Optional_payload_base<fastgltf::NormalTextureInfo>::_Storage", i8 }
%"union.std::_Optional_payload_base<fastgltf::NormalTextureInfo>::_Storage" = type { %"struct.fastgltf::NormalTextureInfo" }
%"struct.fastgltf::NormalTextureInfo" = type <{ %"struct.fastgltf::TextureInfo", float, [4 x i8] }>
%"struct.fastgltf::TextureInfo" = type { i64, i64, %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.15" }
%"struct.std::_Head_base.15" = type { ptr }
%"class.std::optional.289" = type { %"struct.std::_Optional_base.290" }
%"struct.std::_Optional_base.290" = type { %"struct.std::_Optional_payload.292" }
%"struct.std::_Optional_payload.292" = type { %"struct.std::_Optional_payload.base.296", [7 x i8] }
%"struct.std::_Optional_payload.base.296" = type { %"struct.std::_Optional_payload_base.base.295" }
%"struct.std::_Optional_payload_base.base.295" = type { %"union.std::_Optional_payload_base<fastgltf::OcclusionTextureInfo>::_Storage", i8 }
%"union.std::_Optional_payload_base<fastgltf::OcclusionTextureInfo>::_Storage" = type { %"struct.fastgltf::OcclusionTextureInfo" }
%"struct.fastgltf::OcclusionTextureInfo" = type <{ %"struct.fastgltf::TextureInfo", float, [4 x i8] }>
%"class.std::unique_ptr.299" = type { %"struct.std::__uniq_ptr_data.300" }
%"struct.std::__uniq_ptr_data.300" = type { %"class.std::__uniq_ptr_impl.301" }
%"class.std::__uniq_ptr_impl.301" = type { %"class.std::tuple.302" }
%"class.std::tuple.302" = type { %"struct.std::_Tuple_impl.303" }
%"struct.std::_Tuple_impl.303" = type { %"struct.std::_Head_base.306" }
%"struct.std::_Head_base.306" = type { ptr }
%"class.std::unique_ptr.307" = type { %"struct.std::__uniq_ptr_data.308" }
%"struct.std::__uniq_ptr_data.308" = type { %"class.std::__uniq_ptr_impl.309" }
%"class.std::__uniq_ptr_impl.309" = type { %"class.std::tuple.310" }
%"class.std::tuple.310" = type { %"struct.std::_Tuple_impl.311" }
%"struct.std::_Tuple_impl.311" = type { %"struct.std::_Head_base.314" }
%"struct.std::_Head_base.314" = type { ptr }
%"class.std::unique_ptr.315" = type { %"struct.std::__uniq_ptr_data.316" }
%"struct.std::__uniq_ptr_data.316" = type { %"class.std::__uniq_ptr_impl.317" }
%"class.std::__uniq_ptr_impl.317" = type { %"class.std::tuple.318" }
%"class.std::tuple.318" = type { %"struct.std::_Tuple_impl.319" }
%"struct.std::_Tuple_impl.319" = type { %"struct.std::_Head_base.322" }
%"struct.std::_Head_base.322" = type { ptr }
%"class.std::unique_ptr.323" = type { %"struct.std::__uniq_ptr_data.324" }
%"struct.std::__uniq_ptr_data.324" = type { %"class.std::__uniq_ptr_impl.325" }
%"class.std::__uniq_ptr_impl.325" = type { %"class.std::tuple.326" }
%"class.std::tuple.326" = type { %"struct.std::_Tuple_impl.327" }
%"struct.std::_Tuple_impl.327" = type { %"struct.std::_Head_base.330" }
%"struct.std::_Head_base.330" = type { ptr }
%"class.std::unique_ptr.331" = type { %"struct.std::__uniq_ptr_data.332" }
%"struct.std::__uniq_ptr_data.332" = type { %"class.std::__uniq_ptr_impl.333" }
%"class.std::__uniq_ptr_impl.333" = type { %"class.std::tuple.334" }
%"class.std::tuple.334" = type { %"struct.std::_Tuple_impl.335" }
%"struct.std::_Tuple_impl.335" = type { %"struct.std::_Head_base.338" }
%"struct.std::_Head_base.338" = type { ptr }
%"class.std::unique_ptr.339" = type { %"struct.std::__uniq_ptr_data.340" }
%"struct.std::__uniq_ptr_data.340" = type { %"class.std::__uniq_ptr_impl.341" }
%"class.std::__uniq_ptr_impl.341" = type { %"class.std::tuple.342" }
%"class.std::tuple.342" = type { %"struct.std::_Tuple_impl.343" }
%"struct.std::_Tuple_impl.343" = type { %"struct.std::_Head_base.346" }
%"struct.std::_Head_base.346" = type { ptr }
%"class.std::unique_ptr.347" = type { %"struct.std::__uniq_ptr_data.348" }
%"struct.std::__uniq_ptr_data.348" = type { %"class.std::__uniq_ptr_impl.349" }
%"class.std::__uniq_ptr_impl.349" = type { %"class.std::tuple.350" }
%"class.std::tuple.350" = type { %"struct.std::_Tuple_impl.351" }
%"struct.std::_Tuple_impl.351" = type { %"struct.std::_Head_base.354" }
%"struct.std::_Head_base.354" = type { ptr }
%"class.std::optional.269" = type { %"struct.std::_Optional_base.270" }
%"struct.std::_Optional_base.270" = type { %"struct.std::_Optional_payload.272" }
%"struct.std::_Optional_payload.272" = type { %"struct.std::_Optional_payload.base.276", [7 x i8] }
%"struct.std::_Optional_payload.base.276" = type { %"struct.std::_Optional_payload_base.base.275" }
%"struct.std::_Optional_payload_base.base.275" = type <{ %"union.std::_Optional_payload_base<fastgltf::TextureInfo>::_Storage", i8 }>
%"union.std::_Optional_payload_base<fastgltf::TextureInfo>::_Storage" = type { %"struct.fastgltf::TextureInfo" }
%"class.std::unique_ptr.355" = type { %"struct.std::__uniq_ptr_data.356" }
%"struct.std::__uniq_ptr_data.356" = type { %"class.std::__uniq_ptr_impl.357" }
%"class.std::__uniq_ptr_impl.357" = type { %"class.std::tuple.358" }
%"class.std::tuple.358" = type { %"struct.std::_Tuple_impl.359" }
%"struct.std::_Tuple_impl.359" = type { %"struct.std::_Head_base.362" }
%"struct.std::_Head_base.362" = type { ptr }
%"struct.fastgltf::Mesh" = type { %"class.std::vector.166", %"class.std::vector.169", %"class.std::__cxx11::basic_string.74" }
%"class.std::vector.166" = type { %"struct.std::_Vector_base.167" }
%"struct.std::_Vector_base.167" = type { %"struct.std::_Vector_base<fastgltf::Primitive, std::pmr::polymorphic_allocator<fastgltf::Primitive>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Primitive, std::pmr::polymorphic_allocator<fastgltf::Primitive>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.168", %"struct.std::_Vector_base<fastgltf::Primitive, std::pmr::polymorphic_allocator<fastgltf::Primitive>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.168" = type { ptr }
%"struct.std::_Vector_base<fastgltf::Primitive, std::pmr::polymorphic_allocator<fastgltf::Primitive>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = type { %"struct.std::_Vector_base<float, std::pmr::polymorphic_allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::pmr::polymorphic_allocator<float>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.171", %"struct.std::_Vector_base<float, std::pmr::polymorphic_allocator<float>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.171" = type { ptr }
%"struct.std::_Vector_base<float, std::pmr::polymorphic_allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.fastgltf::Primitive" = type { %"class.fastgltf::SmallVector.77", i8, %"class.std::vector.173", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.std::vector.176" }
%"class.fastgltf::SmallVector.77" = type { %"struct.std::array.78", %"class.std::pmr::polymorphic_allocator", ptr, i64, i64 }
%"struct.std::array.78" = type { [192 x i8] }
%"class.std::pmr::polymorphic_allocator" = type { ptr }
%"class.std::vector.173" = type { %"struct.std::_Vector_base.174" }
%"struct.std::_Vector_base.174" = type { %"struct.std::_Vector_base<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>, std::pmr::polymorphic_allocator<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>, std::pmr::polymorphic_allocator<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.175", %"struct.std::_Vector_base<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>, std::pmr::polymorphic_allocator<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.175" = type { ptr }
%"struct.std::_Vector_base<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>, std::pmr::polymorphic_allocator<fastgltf::SmallVector<fastgltf::Attribute, 4, std::pmr::polymorphic_allocator<fastgltf::Attribute>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.176" = type { %"struct.std::_Vector_base.177" }
%"struct.std::_Vector_base.177" = type { %"struct.std::_Vector_base<fastgltf::OptionalWithFlagValue<unsigned long>, std::allocator<fastgltf::OptionalWithFlagValue<unsigned long>>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::OptionalWithFlagValue<unsigned long>, std::allocator<fastgltf::OptionalWithFlagValue<unsigned long>>>::_Vector_impl" = type { %"struct.std::_Vector_base<fastgltf::OptionalWithFlagValue<unsigned long>, std::allocator<fastgltf::OptionalWithFlagValue<unsigned long>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::OptionalWithFlagValue<unsigned long>, std::allocator<fastgltf::OptionalWithFlagValue<unsigned long>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.fastgltf::Attribute" = type { %"class.std::__cxx11::basic_string.74", i64 }
%"struct.fastgltf::Node" = type { %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.std::vector.376", %"class.std::vector.169", %"class.std::variant.379", %"class.std::vector", %"class.std::__cxx11::basic_string.74" }
%"class.std::vector.376" = type { %"struct.std::_Vector_base.377" }
%"struct.std::_Vector_base.377" = type { %"struct.std::_Vector_base<unsigned long, std::pmr::polymorphic_allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::pmr::polymorphic_allocator<unsigned long>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator.378", %"struct.std::_Vector_base<unsigned long, std::pmr::polymorphic_allocator<unsigned long>>::_Vector_impl_data" }
%"class.std::pmr::polymorphic_allocator.378" = type { ptr }
%"struct.std::_Vector_base<unsigned long, std::pmr::polymorphic_allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::variant.379" = type { %"struct.std::__detail::__variant::_Variant_base.base.396", [3 x i8] }
%"struct.std::__detail::__variant::_Variant_base.base.396" = type { %"struct.std::__detail::__variant::_Move_assign_base.base.395" }
%"struct.std::__detail::__variant::_Move_assign_base.base.395" = type { %"struct.std::__detail::__variant::_Copy_assign_base.base.394" }
%"struct.std::__detail::__variant::_Copy_assign_base.base.394" = type { %"struct.std::__detail::__variant::_Move_ctor_base.base.393" }
%"struct.std::__detail::__variant::_Move_ctor_base.base.393" = type { %"struct.std::__detail::__variant::_Copy_ctor_base.base.392" }
%"struct.std::__detail::__variant::_Copy_ctor_base.base.392" = type { %"struct.std::__detail::__variant::_Variant_storage.base.391" }
%"struct.std::__detail::__variant::_Variant_storage.base.391" = type <{ %"union.std::__detail::__variant::_Variadic_union.386", i8 }>
%"union.std::__detail::__variant::_Variadic_union.386" = type { %"union.std::__detail::__variant::_Variadic_union.388" }
%"union.std::__detail::__variant::_Variadic_union.388" = type { %"struct.std::__detail::__variant::_Uninitialized.389" }
%"struct.std::__detail::__variant::_Uninitialized.389" = type { %"class.fastgltf::math::mat" }
%"class.fastgltf::math::mat" = type { %"struct.std::array.390" }
%"struct.std::array.390" = type { [4 x %"class.fastgltf::math::vec.267"] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<fastgltf::Attribute, std::pmr::polymorphic_allocator<fastgltf::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<fastgltf::Attribute, std::pmr::polymorphic_allocator<fastgltf::Attribute>>::_Vector_impl" = type { %"class.std::pmr::polymorphic_allocator", %"struct.std::_Vector_base<fastgltf::Attribute, std::pmr::polymorphic_allocator<fastgltf::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<fastgltf::Attribute, std::pmr::polymorphic_allocator<fastgltf::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.fastgltf::TRS" = type { %"class.fastgltf::math::vec.264", %"class.fastgltf::math::quat", %"class.fastgltf::math::vec.264" }
%"class.fastgltf::math::quat" = type { %"struct.std::array.268" }
%"struct.fastgltf::Sampler" = type { %"class.fastgltf::OptionalWithFlagValue.402", %"class.fastgltf::OptionalWithFlagValue.402", i16, i16, %"class.std::__cxx11::basic_string.74" }
%"class.fastgltf::OptionalWithFlagValue.402" = type { %union.anon.403 }
%union.anon.403 = type { i16 }
%"struct.fastgltf::Scene" = type { %"class.std::vector.376", %"class.std::__cxx11::basic_string.74" }
%"struct.fastgltf::Skin" = type { %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.std::vector.376", %"class.std::__cxx11::basic_string.74" }
%"struct.fastgltf::Texture" = type { %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.fastgltf::OptionalWithFlagValue", %"class.std::__cxx11::basic_string.74" }

@.str.22 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN8fastgltf10extensionsL23EXT_meshopt_compressionE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL24KHR_materials_anisotropyE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL23KHR_materials_clearcoatE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL25KHR_materials_iridescenceE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL19KHR_materials_sheenE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL22KHR_materials_specularE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL26KHR_materials_transmissionE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL20KHR_materials_volumeE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL31KHR_materials_emissive_strengthE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL17KHR_materials_iorE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL36MSFT_packing_normalRoughnessMetallicE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL39MSFT_packing_occlusionRoughnessMetallicE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL22KHR_materials_variantsE = external hidden constant %"class.std::basic_string_view", align 8
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE = external hidden constant %"class.std::basic_string_view", align 8
@.str.30 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN8fastgltf10extensionsL18KHR_texture_basisuE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL16MSFT_texture_ddsE = external hidden constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL16EXT_texture_webpE = external hidden constant %"class.std::basic_string_view", align 8

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

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

; 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 dso_local void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull) unnamed_addr #2 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64, ptr, i64, ptr) #4

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN8fastgltf8validateERKNS_5AssetE(ptr noundef nonnull align 8 dereferenceable(580) %0) #3 {
  %2 = alloca i64, align 8
  %3 = alloca ptr, align 8
  %4 = alloca %class.anon.224, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.226", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.226", align 8
  %18 = alloca ptr, align 8
  %19 = alloca i64, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.235", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.235", align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.236", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.236", align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"class.std::basic_string_view", align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.237", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.237", align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca float, align 4
  %59 = alloca float, align 4
  %60 = alloca ptr, align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator.262", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.262", align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.263", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator.263", align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %72 = alloca ptr, align 8
  %73 = alloca %class.anon.363, align 8
  %74 = alloca %"class.std::optional.364", align 8
  %75 = alloca %"class.std::optional.364", align 8
  %76 = alloca %"class.std::optional.364", align 8
  %77 = alloca %"class.std::optional.364", align 8
  %78 = alloca %"class.std::optional.364", align 8
  %79 = alloca %"class.std::basic_string_view", align 8
  %80 = alloca %"class.std::basic_string_view", align 8
  %81 = alloca %"class.std::basic_string_view", align 8
  %82 = alloca %"class.std::basic_string_view", align 8
  %83 = alloca %"class.std::basic_string_view", align 8
  %84 = alloca %"class.std::basic_string_view", align 8
  %85 = alloca %"class.std::basic_string_view", align 8
  %86 = alloca %"class.std::basic_string_view", align 8
  %87 = alloca %"class.std::basic_string_view", align 8
  %88 = alloca %"class.std::basic_string_view", align 8
  %89 = alloca %"class.std::basic_string_view", align 8
  %90 = alloca ptr, align 8
  %91 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %92 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %93 = alloca ptr, align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %97 = alloca ptr, align 8
  %98 = alloca %"class.std::basic_string_view", align 8
  %99 = alloca ptr, align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator.374", align 8
  %101 = alloca %"class.__gnu_cxx::__normal_iterator.374", align 8
  %102 = alloca ptr, align 8
  %103 = alloca ptr, align 8
  %104 = alloca ptr, align 8
  %105 = alloca ptr, align 8
  %106 = alloca ptr, align 8
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca %"class.std::basic_string_view", align 8
  %110 = alloca %"class.std::basic_string_view", align 8
  %111 = alloca %"class.std::basic_string_view", align 8
  %112 = alloca %"class.std::basic_string_view", align 8
  %113 = alloca %"class.std::basic_string_view", align 8
  %114 = alloca %"class.std::basic_string_view", align 8
  %115 = alloca %"class.std::basic_string_view", align 8
  %116 = alloca %"class.std::basic_string_view", align 8
  %117 = alloca %"class.std::basic_string_view", align 8
  %118 = alloca %"class.std::basic_string_view", align 8
  %119 = alloca ptr, align 8
  %120 = alloca %"class.std::basic_string_view", align 8
  %121 = alloca %"class.std::basic_string_view", align 8
  %122 = alloca %"class.std::basic_string_view", align 8
  %123 = alloca %"class.std::basic_string_view", align 8
  %124 = alloca %"class.std::basic_string_view", align 8
  %125 = alloca %"class.std::basic_string_view", align 8
  %126 = alloca %"class.std::basic_string_view", align 8
  %127 = alloca %"class.std::basic_string_view", align 8
  %128 = alloca %"class.std::basic_string_view", align 8
  %129 = alloca %"class.std::basic_string_view", align 8
  %130 = alloca %"class.std::basic_string_view", align 8
  %131 = alloca %"class.std::basic_string_view", align 8
  %132 = alloca %"class.std::basic_string_view", align 8
  %133 = alloca %"class.std::basic_string_view", align 8
  %134 = alloca ptr, align 8
  %135 = alloca %"class.__gnu_cxx::__normal_iterator.375", align 8
  %136 = alloca %"class.__gnu_cxx::__normal_iterator.375", align 8
  %137 = alloca ptr, align 8
  %138 = alloca ptr, align 8
  %139 = alloca ptr, align 8
  %140 = alloca ptr, align 8
  %141 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %142 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %143 = alloca ptr, align 8
  %144 = alloca ptr, align 8
  %145 = alloca %"class.std::basic_string_view", align 8
  %146 = alloca ptr, align 8
  %147 = alloca %"class.std::basic_string_view", align 8
  %148 = alloca ptr, align 8
  %149 = alloca %"class.__gnu_cxx::__normal_iterator.401", align 8
  %150 = alloca %"class.__gnu_cxx::__normal_iterator.401", align 8
  %151 = alloca ptr, align 8
  %152 = alloca i16, align 2
  %153 = alloca i16, align 2
  %154 = alloca ptr, align 8
  %155 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %156 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %157 = alloca ptr, align 8
  %158 = alloca ptr, align 8
  %159 = alloca %"class.__gnu_cxx::__normal_iterator.405", align 8
  %160 = alloca %"class.__gnu_cxx::__normal_iterator.405", align 8
  %161 = alloca ptr, align 8
  %162 = alloca ptr, align 8
  %163 = alloca %"class.__gnu_cxx::__normal_iterator.406", align 8
  %164 = alloca %"class.__gnu_cxx::__normal_iterator.406", align 8
  %165 = alloca ptr, align 8
  %166 = alloca ptr, align 8
  %167 = alloca %"class.__gnu_cxx::__normal_iterator.407", align 8
  %168 = alloca %"class.__gnu_cxx::__normal_iterator.407", align 8
  %169 = alloca ptr, align 8
  %170 = alloca %"class.std::basic_string_view", align 8
  %171 = alloca %"class.std::basic_string_view", align 8
  %172 = alloca %"class.std::basic_string_view", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  %173 = getelementptr inbounds %class.anon.224, ptr %4, i32 0, i32 0
  %174 = load ptr, ptr %3, align 8, !tbaa !5
  %175 = getelementptr inbounds %"class.fastgltf::Asset", ptr %174, i32 0, i32 2
  store ptr %175, ptr %173, align 8, !tbaa !5
  %176 = load ptr, ptr %3, align 8, !tbaa !5
  %177 = getelementptr inbounds %"class.fastgltf::Asset", ptr %176, i32 0, i32 3
  %178 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %177) #6
  %179 = load ptr, ptr %3, align 8, !tbaa !5
  %180 = getelementptr inbounds %"class.fastgltf::Asset", ptr %179, i32 0, i32 2
  %181 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %180) #6
  %182 = icmp ugt i64 %178, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %1
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2369

184:                                              ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  %186 = getelementptr inbounds %"class.fastgltf::Asset", ptr %185, i32 0, i32 3
  store ptr %186, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %187) #6
  %189 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.225", ptr %7, i32 0, i32 0
  store ptr %188, ptr %189, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %190 = load ptr, ptr %6, align 8, !tbaa !5
  %191 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %190) #6
  %192 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.225", ptr %8, i32 0, i32 0
  store ptr %191, ptr %192, align 8
  br label %193

193:                                              ; preds = %229, %184
  %194 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  br i1 %194, label %196, label %195

195:                                              ; preds = %193
  store i32 2, ptr %5, align 4
  br label %231

196:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %197 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  store ptr %197, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #6
  store i8 0, ptr %10, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  %198 = load ptr, ptr %3, align 8, !tbaa !5
  %199 = getelementptr inbounds %"class.fastgltf::Asset", ptr %198, i32 0, i32 2
  store ptr %199, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  %200 = load ptr, ptr %11, align 8, !tbaa !5
  %201 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %200) #6
  %202 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.225", ptr %12, i32 0, i32 0
  store ptr %201, ptr %202, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  %203 = load ptr, ptr %11, align 8, !tbaa !5
  %204 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %203) #6
  %205 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.225", ptr %13, i32 0, i32 0
  store ptr %204, ptr %205, align 8
  br label %206

206:                                              ; preds = %216, %196
  %207 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #6
  br i1 %207, label %209, label %208

208:                                              ; preds = %206
  store i32 4, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  br label %218

209:                                              ; preds = %206
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #6
  %210 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  store ptr %210, ptr %14, align 8, !tbaa !5
  %211 = load ptr, ptr %9, align 8, !tbaa !5
  %212 = load ptr, ptr %14, align 8, !tbaa !5
  %213 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(40) %211, ptr noundef nonnull align 8 dereferenceable(40) %212) #6
  br i1 %213, label %214, label %215

214:                                              ; preds = %209
  store i8 1, ptr %10, align 1, !tbaa !9
  br label %215

215:                                              ; preds = %214, %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #6
  br label %216

216:                                              ; preds = %215
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #6
  br label %206

218:                                              ; preds = %208
  %219 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %220 = trunc i8 %219 to i1
  br i1 %220, label %222, label %221

221:                                              ; preds = %218
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %223

222:                                              ; preds = %218
  store i32 0, ptr %5, align 4
  br label %223

223:                                              ; preds = %222, %221
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  %224 = load i32, ptr %5, align 4
  switch i32 %224, label %226 [
    i32 0, label %225
  ]

225:                                              ; preds = %223
  store i32 0, ptr %5, align 4
  br label %226

226:                                              ; preds = %225, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  %227 = load i32, ptr %5, align 4
  switch i32 %227, label %231 [
    i32 0, label %228
  ]

228:                                              ; preds = %226
  br label %229

229:                                              ; preds = %228
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  br label %193

231:                                              ; preds = %226, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  %232 = load i32, ptr %5, align 4
  switch i32 %232, label %2369 [
    i32 2, label %233
  ]

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %234 = load ptr, ptr %3, align 8, !tbaa !5
  %235 = getelementptr inbounds %"class.fastgltf::Asset", ptr %234, i32 0, i32 5
  store ptr %235, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = call ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %236) #6
  %238 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.226", ptr %16, i32 0, i32 0
  store ptr %237, ptr %238, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  %239 = load ptr, ptr %15, align 8, !tbaa !5
  %240 = call ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %239) #6
  %241 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.226", ptr %17, i32 0, i32 0
  store ptr %240, ptr %241, align 8
  br label %242

242:                                              ; preds = %426, %233
  %243 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #6
  br i1 %243, label %245, label %244

244:                                              ; preds = %242
  store i32 6, ptr %5, align 4
  br label %428

245:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %246 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  store ptr %246, ptr %18, align 8, !tbaa !5
  %247 = load ptr, ptr %18, align 8, !tbaa !5
  %248 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %247, i32 0, i32 2
  %249 = load i8, ptr %248, align 8, !tbaa !13
  %250 = icmp eq i8 %249, 0
  br i1 %250, label %251, label %252

251:                                              ; preds = %245
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

252:                                              ; preds = %245
  %253 = load ptr, ptr %18, align 8, !tbaa !5
  %254 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %253, i32 0, i32 3
  %255 = load i16, ptr %254, align 2, !tbaa !33
  %256 = icmp eq i16 %255, 0
  br i1 %256, label %257, label %258

257:                                              ; preds = %252
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

258:                                              ; preds = %252
  %259 = load ptr, ptr %18, align 8, !tbaa !5
  %260 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %259, i32 0, i32 1
  %261 = load i64, ptr %260, align 8, !tbaa !34
  %262 = icmp ult i64 %261, 1
  br i1 %262, label %263, label %264

263:                                              ; preds = %258
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

264:                                              ; preds = %258
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %265, i32 0, i32 8
  %267 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %266)
  br i1 %267, label %268, label %278

268:                                              ; preds = %264
  %269 = load ptr, ptr %18, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %269, i32 0, i32 8
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %270)
  %272 = load i64, ptr %271, align 8, !tbaa !35
  %273 = load ptr, ptr %3, align 8, !tbaa !5
  %274 = getelementptr inbounds %"class.fastgltf::Asset", ptr %273, i32 0, i32 8
  %275 = call noundef i64 @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %274) #6
  %276 = icmp uge i64 %272, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %268
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

278:                                              ; preds = %268, %264
  %279 = load ptr, ptr %18, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %279, i32 0, i32 0
  %281 = load i64, ptr %280, align 8, !tbaa !36
  %282 = icmp ne i64 %281, 0
  br i1 %282, label %283, label %339

283:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %284 = load ptr, ptr %18, align 8, !tbaa !5
  %285 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %284, i32 0, i32 3
  %286 = load i16, ptr %285, align 2, !tbaa !33
  %287 = call noundef i64 @_ZN8fastgltf20getComponentByteSizeENS_13ComponentTypeE(i16 noundef zeroext %286) #6
  store i64 %287, ptr %19, align 8, !tbaa !35
  %288 = load ptr, ptr %18, align 8, !tbaa !5
  %289 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %288, i32 0, i32 0
  %290 = load i64, ptr %289, align 8, !tbaa !36
  %291 = load i64, ptr %19, align 8, !tbaa !35
  %292 = urem i64 %290, %291
  %293 = icmp ne i64 %292, 0
  br i1 %293, label %294, label %295

294:                                              ; preds = %283
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %336

295:                                              ; preds = %283
  %296 = load ptr, ptr %18, align 8, !tbaa !5
  %297 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %296, i32 0, i32 8
  %298 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %297)
  br i1 %298, label %299, label %335

299:                                              ; preds = %295
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  %301 = getelementptr inbounds %"class.fastgltf::Asset", ptr %300, i32 0, i32 8
  %302 = load ptr, ptr %18, align 8, !tbaa !5
  %303 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %302, i32 0, i32 8
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %303)
  %305 = load i64, ptr %304, align 8, !tbaa !35
  %306 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %301, i64 noundef %305) #6
  store ptr %306, ptr %20, align 8, !tbaa !5
  %307 = load ptr, ptr %18, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %307, i32 0, i32 0
  %309 = load i64, ptr %308, align 8, !tbaa !36
  %310 = load ptr, ptr %20, align 8, !tbaa !5
  %311 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %310, i32 0, i32 1
  %312 = load i64, ptr %311, align 8, !tbaa !37
  %313 = add i64 %309, %312
  %314 = load i64, ptr %19, align 8, !tbaa !35
  %315 = urem i64 %313, %314
  %316 = icmp ne i64 %315, 0
  br i1 %316, label %317, label %318

317:                                              ; preds = %299
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %332

318:                                              ; preds = %299
  %319 = load ptr, ptr %20, align 8, !tbaa !5
  %320 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %319, i32 0, i32 3
  %321 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %320)
  br i1 %321, label %322, label %331

322:                                              ; preds = %318
  %323 = load ptr, ptr %20, align 8, !tbaa !5
  %324 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %323, i32 0, i32 3
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %324)
  %326 = load i64, ptr %325, align 8, !tbaa !35
  %327 = load i64, ptr %19, align 8, !tbaa !35
  %328 = urem i64 %326, %327
  %329 = icmp ne i64 %328, 0
  br i1 %329, label %330, label %331

330:                                              ; preds = %322
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %332

331:                                              ; preds = %322, %318
  store i32 0, ptr %5, align 4
  br label %332

332:                                              ; preds = %331, %330, %317
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  %333 = load i32, ptr %5, align 4
  switch i32 %333, label %336 [
    i32 0, label %334
  ]

334:                                              ; preds = %332
  br label %335

335:                                              ; preds = %334, %295
  store i32 0, ptr %5, align 4
  br label %336

336:                                              ; preds = %335, %332, %294
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  %337 = load i32, ptr %5, align 4
  switch i32 %337, label %423 [
    i32 0, label %338
  ]

338:                                              ; preds = %336
  br label %339

339:                                              ; preds = %338, %278
  %340 = load ptr, ptr %18, align 8, !tbaa !5
  %341 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %340, i32 0, i32 6
  %342 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %341) #6
  br i1 %342, label %359, label %343

343:                                              ; preds = %339
  %344 = load ptr, ptr %18, align 8, !tbaa !5
  %345 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %344, i32 0, i32 3
  %346 = load i16, ptr %345, align 2, !tbaa !33
  %347 = icmp eq i16 %346, 29702
  br i1 %347, label %353, label %348

348:                                              ; preds = %343
  %349 = load ptr, ptr %18, align 8, !tbaa !5
  %350 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %349, i32 0, i32 3
  %351 = load i16, ptr %350, align 2, !tbaa !33
  %352 = icmp eq i16 %351, -3062
  br i1 %352, label %353, label %358

353:                                              ; preds = %348, %343
  %354 = load ptr, ptr %18, align 8, !tbaa !5
  %355 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %354, i32 0, i32 6
  %356 = call noundef zeroext i1 @_ZSt17holds_alternativeISt6vectorIdNSt3pmr21polymorphic_allocatorIdEEEJSt9monostateS4_S0_IlNS2_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %355) #6
  br i1 %356, label %358, label %357

357:                                              ; preds = %353
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

358:                                              ; preds = %353, %348
  br label %359

359:                                              ; preds = %358, %339
  %360 = load ptr, ptr %18, align 8, !tbaa !5
  %361 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %360, i32 0, i32 7
  %362 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %361) #6
  br i1 %362, label %379, label %363

363:                                              ; preds = %359
  %364 = load ptr, ptr %18, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %364, i32 0, i32 3
  %366 = load i16, ptr %365, align 2, !tbaa !33
  %367 = icmp eq i16 %366, 29702
  br i1 %367, label %373, label %368

368:                                              ; preds = %363
  %369 = load ptr, ptr %18, align 8, !tbaa !5
  %370 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %369, i32 0, i32 3
  %371 = load i16, ptr %370, align 2, !tbaa !33
  %372 = icmp eq i16 %371, -3062
  br i1 %372, label %373, label %378

373:                                              ; preds = %368, %363
  %374 = load ptr, ptr %18, align 8, !tbaa !5
  %375 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %374, i32 0, i32 7
  %376 = call noundef zeroext i1 @_ZSt17holds_alternativeISt6vectorIdNSt3pmr21polymorphic_allocatorIdEEEJSt9monostateS4_S0_IlNS2_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %375) #6
  br i1 %376, label %378, label %377

377:                                              ; preds = %373
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %423

378:                                              ; preds = %373, %368
  br label %379

379:                                              ; preds = %378, %359
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %380, i32 0, i32 9
  %382 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEcvbEv(ptr noundef nonnull align 8 dereferenceable(56) %381) #6
  br i1 %382, label %383, label %422

383:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %384 = load ptr, ptr %3, align 8, !tbaa !5
  %385 = getelementptr inbounds %"class.fastgltf::Asset", ptr %384, i32 0, i32 8
  %386 = load ptr, ptr %18, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %386, i32 0, i32 9
  %388 = call noundef ptr @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEptEv(ptr noundef nonnull align 8 dereferenceable(56) %387) #6
  %389 = getelementptr inbounds %"struct.fastgltf::SparseAccessor", ptr %388, i32 0, i32 1
  %390 = load i64, ptr %389, align 8, !tbaa !46
  %391 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %385, i64 noundef %390) #6
  store ptr %391, ptr %21, align 8, !tbaa !5
  %392 = load ptr, ptr %21, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %392, i32 0, i32 3
  %394 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %393) #6
  br i1 %394, label %399, label %395

395:                                              ; preds = %383
  %396 = load ptr, ptr %21, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %396, i32 0, i32 4
  %398 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEcvbEv(ptr noundef nonnull align 2 dereferenceable(2) %397) #6
  br i1 %398, label %399, label %400

399:                                              ; preds = %395, %383
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %419

400:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %401 = load ptr, ptr %3, align 8, !tbaa !5
  %402 = getelementptr inbounds %"class.fastgltf::Asset", ptr %401, i32 0, i32 8
  %403 = load ptr, ptr %18, align 8, !tbaa !5
  %404 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %403, i32 0, i32 9
  %405 = call noundef ptr @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEptEv(ptr noundef nonnull align 8 dereferenceable(56) %404) #6
  %406 = getelementptr inbounds %"struct.fastgltf::SparseAccessor", ptr %405, i32 0, i32 3
  %407 = load i64, ptr %406, align 8, !tbaa !48
  %408 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %402, i64 noundef %407) #6
  store ptr %408, ptr %22, align 8, !tbaa !5
  %409 = load ptr, ptr %22, align 8, !tbaa !5
  %410 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %409, i32 0, i32 3
  %411 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %410) #6
  br i1 %411, label %416, label %412

412:                                              ; preds = %400
  %413 = load ptr, ptr %22, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %413, i32 0, i32 4
  %415 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEcvbEv(ptr noundef nonnull align 2 dereferenceable(2) %414) #6
  br i1 %415, label %416, label %417

416:                                              ; preds = %412, %400
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %418

417:                                              ; preds = %412
  store i32 0, ptr %5, align 4
  br label %418

418:                                              ; preds = %417, %416
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br label %419

419:                                              ; preds = %418, %399
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  %420 = load i32, ptr %5, align 4
  switch i32 %420, label %423 [
    i32 0, label %421
  ]

421:                                              ; preds = %419
  br label %422

422:                                              ; preds = %421, %379
  store i32 0, ptr %5, align 4
  br label %423

423:                                              ; preds = %422, %419, %377, %357, %336, %277, %263, %257, %251
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  %424 = load i32, ptr %5, align 4
  switch i32 %424, label %428 [
    i32 0, label %425
  ]

425:                                              ; preds = %423
  br label %426

426:                                              ; preds = %425
  %427 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #6
  br label %242

428:                                              ; preds = %423, %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  %429 = load i32, ptr %5, align 4
  switch i32 %429, label %2369 [
    i32 6, label %430
  ]

430:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %431 = load ptr, ptr %3, align 8, !tbaa !5
  %432 = getelementptr inbounds %"class.fastgltf::Asset", ptr %431, i32 0, i32 6
  store ptr %432, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %433 = load ptr, ptr %23, align 8, !tbaa !5
  %434 = call ptr @_ZNKSt6vectorIN8fastgltf9AnimationESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %433) #6
  %435 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.227", ptr %24, i32 0, i32 0
  store ptr %434, ptr %435, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %436 = load ptr, ptr %23, align 8, !tbaa !5
  %437 = call ptr @_ZNKSt6vectorIN8fastgltf9AnimationESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %436) #6
  %438 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.227", ptr %25, i32 0, i32 0
  store ptr %437, ptr %438, align 8
  br label %439

439:                                              ; preds = %652, %430
  %440 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #6
  br i1 %440, label %442, label %441

441:                                              ; preds = %439
  store i32 8, ptr %5, align 4
  br label %654

442:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %443 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  store ptr %443, ptr %26, align 8, !tbaa !5
  %444 = load ptr, ptr %26, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %444, i32 0, i32 0
  %446 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %445) #6
  br i1 %446, label %447, label %448

447:                                              ; preds = %442
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %649

448:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  %449 = load ptr, ptr %26, align 8, !tbaa !5
  %450 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %449, i32 0, i32 0
  store ptr %450, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #6
  %451 = load ptr, ptr %27, align 8, !tbaa !5
  %452 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %451) #6
  %453 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %28, i32 0, i32 0
  store ptr %452, ptr %453, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  %454 = load ptr, ptr %27, align 8, !tbaa !5
  %455 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %454) #6
  %456 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %29, i32 0, i32 0
  store ptr %455, ptr %456, align 8
  br label %457

457:                                              ; preds = %506, %448
  %458 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  br i1 %458, label %460, label %459

459:                                              ; preds = %457
  store i32 10, ptr %5, align 4
  br label %508

460:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %461 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #6
  store ptr %461, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  %462 = load ptr, ptr %26, align 8, !tbaa !5
  %463 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %462, i32 0, i32 0
  store ptr %463, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %464 = load ptr, ptr %31, align 8, !tbaa !5
  %465 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %464) #6
  %466 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %32, i32 0, i32 0
  store ptr %465, ptr %466, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  %467 = load ptr, ptr %31, align 8, !tbaa !5
  %468 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %467) #6
  %469 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %33, i32 0, i32 0
  store ptr %468, ptr %469, align 8
  br label %470

470:                                              ; preds = %498, %460
  %471 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #6
  br i1 %471, label %473, label %472

472:                                              ; preds = %470
  store i32 12, ptr %5, align 4
  br label %500

473:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  %474 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  store ptr %474, ptr %34, align 8, !tbaa !5
  %475 = load ptr, ptr %30, align 8, !tbaa !5
  %476 = load ptr, ptr %34, align 8, !tbaa !5
  %477 = icmp eq ptr %475, %476
  br i1 %477, label %478, label %479

478:                                              ; preds = %473
  store i32 13, ptr %5, align 4
  br label %495

479:                                              ; preds = %473
  %480 = load ptr, ptr %30, align 8, !tbaa !5
  %481 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %480, i32 0, i32 1
  %482 = load ptr, ptr %34, align 8, !tbaa !5
  %483 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %482, i32 0, i32 1
  %484 = call noundef zeroext i1 @_ZN8fastgltfeqImmEEbRKNS_21OptionalWithFlagValueIT_EERKNS1_IT0_EE(ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef nonnull align 8 dereferenceable(8) %483)
  br i1 %484, label %485, label %494

485:                                              ; preds = %479
  %486 = load ptr, ptr %30, align 8, !tbaa !5
  %487 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %486, i32 0, i32 2
  %488 = load i8, ptr %487, align 8, !tbaa !49
  %489 = load ptr, ptr %34, align 8, !tbaa !5
  %490 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %489, i32 0, i32 2
  %491 = load i8, ptr %490, align 8, !tbaa !49
  %492 = icmp eq i8 %488, %491
  br i1 %492, label %493, label %494

493:                                              ; preds = %485
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %495

494:                                              ; preds = %485, %479
  store i32 0, ptr %5, align 4
  br label %495

495:                                              ; preds = %494, %493, %478
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  %496 = load i32, ptr %5, align 4
  switch i32 %496, label %500 [
    i32 0, label %497
    i32 13, label %498
  ]

497:                                              ; preds = %495
  br label %498

498:                                              ; preds = %497, %495
  %499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  br label %470

500:                                              ; preds = %495, %472
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  %501 = load i32, ptr %5, align 4
  switch i32 %501, label %503 [
    i32 12, label %502
  ]

502:                                              ; preds = %500
  store i32 0, ptr %5, align 4
  br label %503

503:                                              ; preds = %502, %500
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  %504 = load i32, ptr %5, align 4
  switch i32 %504, label %508 [
    i32 0, label %505
  ]

505:                                              ; preds = %503
  br label %506

506:                                              ; preds = %505
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #6
  br label %457

508:                                              ; preds = %503, %459
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  %509 = load i32, ptr %5, align 4
  switch i32 %509, label %649 [
    i32 10, label %510
  ]

510:                                              ; preds = %508
  %511 = load ptr, ptr %26, align 8, !tbaa !5
  %512 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %511, i32 0, i32 1
  %513 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf16AnimationSamplerENSt3pmr21polymorphic_allocatorIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %512) #6
  br i1 %513, label %514, label %515

514:                                              ; preds = %510
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %649

515:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  %516 = load ptr, ptr %26, align 8, !tbaa !5
  %517 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %516, i32 0, i32 0
  store ptr %517, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  %518 = load ptr, ptr %35, align 8, !tbaa !5
  %519 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %518) #6
  %520 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %36, i32 0, i32 0
  store ptr %519, ptr %520, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  %521 = load ptr, ptr %35, align 8, !tbaa !5
  %522 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %521) #6
  %523 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.234", ptr %37, i32 0, i32 0
  store ptr %522, ptr %523, align 8
  br label %524

524:                                              ; preds = %644, %515
  %525 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  br i1 %525, label %527, label %526

526:                                              ; preds = %524
  store i32 14, ptr %5, align 4
  br label %646

527:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #6
  %528 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  store ptr %528, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %529 = load ptr, ptr %26, align 8, !tbaa !5
  %530 = getelementptr inbounds %"struct.fastgltf::Animation", ptr %529, i32 0, i32 1
  %531 = load ptr, ptr %38, align 8, !tbaa !5
  %532 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %531, i32 0, i32 0
  %533 = load i64, ptr %532, align 8, !tbaa !52
  %534 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNKSt6vectorIN8fastgltf16AnimationSamplerENSt3pmr21polymorphic_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %530, i64 noundef %533) #6
  store ptr %534, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  %535 = load ptr, ptr %3, align 8, !tbaa !5
  %536 = getelementptr inbounds %"class.fastgltf::Asset", ptr %535, i32 0, i32 5
  %537 = load ptr, ptr %39, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.fastgltf::AnimationSampler", ptr %537, i32 0, i32 0
  %539 = load i64, ptr %538, align 8, !tbaa !53
  %540 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %536, i64 noundef %539) #6
  store ptr %540, ptr %40, align 8, !tbaa !5
  %541 = load ptr, ptr %40, align 8, !tbaa !5
  %542 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %541, i32 0, i32 2
  %543 = load i8, ptr %542, align 8, !tbaa !13
  %544 = icmp ne i8 %543, 9
  br i1 %544, label %545, label %546

545:                                              ; preds = %527
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %638

546:                                              ; preds = %527
  %547 = load ptr, ptr %40, align 8, !tbaa !5
  %548 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %547, i32 0, i32 3
  %549 = load i16, ptr %548, align 2, !tbaa !33
  %550 = icmp ne i16 %549, 29702
  br i1 %550, label %551, label %557

551:                                              ; preds = %546
  %552 = load ptr, ptr %40, align 8, !tbaa !5
  %553 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %552, i32 0, i32 3
  %554 = load i16, ptr %553, align 2, !tbaa !33
  %555 = icmp ne i16 %554, -3062
  br i1 %555, label %556, label %557

556:                                              ; preds = %551
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %638

557:                                              ; preds = %551, %546
  %558 = load ptr, ptr %40, align 8, !tbaa !5
  %559 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %558, i32 0, i32 8
  %560 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %559) #6
  br i1 %560, label %561, label %572

561:                                              ; preds = %557
  %562 = load ptr, ptr %3, align 8, !tbaa !5
  %563 = getelementptr inbounds %"class.fastgltf::Asset", ptr %562, i32 0, i32 8
  %564 = load ptr, ptr %40, align 8, !tbaa !5
  %565 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %564, i32 0, i32 8
  %566 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %565) #6
  %567 = load i64, ptr %566, align 8, !tbaa !35
  %568 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %563, i64 noundef %567) #6
  %569 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %568, i32 0, i32 5
  %570 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %569) #6
  br i1 %570, label %571, label %572

571:                                              ; preds = %561
  store i32 15, ptr %5, align 4
  br label %638

572:                                              ; preds = %561, %557
  %573 = load ptr, ptr %40, align 8, !tbaa !5
  %574 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %573, i32 0, i32 1
  %575 = load i64, ptr %574, align 8, !tbaa !34
  %576 = icmp eq i64 %575, 0
  br i1 %576, label %577, label %578

577:                                              ; preds = %572
  store i32 15, ptr %5, align 4
  br label %638

578:                                              ; preds = %572
  %579 = load ptr, ptr %38, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.fastgltf::AnimationChannel", ptr %579, i32 0, i32 2
  %581 = load i8, ptr %580, align 8, !tbaa !49
  %582 = icmp eq i8 %581, 4
  br i1 %582, label %583, label %584

583:                                              ; preds = %578
  store i32 15, ptr %5, align 4
  br label %638

584:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %585 = load ptr, ptr %3, align 8, !tbaa !5
  %586 = getelementptr inbounds %"class.fastgltf::Asset", ptr %585, i32 0, i32 5
  %587 = load ptr, ptr %39, align 8, !tbaa !5
  %588 = getelementptr inbounds %"struct.fastgltf::AnimationSampler", ptr %587, i32 0, i32 1
  %589 = load i64, ptr %588, align 8, !tbaa !56
  %590 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %586, i64 noundef %589) #6
  store ptr %590, ptr %41, align 8, !tbaa !5
  %591 = load ptr, ptr %41, align 8, !tbaa !5
  %592 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %591, i32 0, i32 8
  %593 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %592) #6
  br i1 %593, label %594, label %605

594:                                              ; preds = %584
  %595 = load ptr, ptr %3, align 8, !tbaa !5
  %596 = getelementptr inbounds %"class.fastgltf::Asset", ptr %595, i32 0, i32 8
  %597 = load ptr, ptr %41, align 8, !tbaa !5
  %598 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %597, i32 0, i32 8
  %599 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %598) #6
  %600 = load i64, ptr %599, align 8, !tbaa !35
  %601 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %596, i64 noundef %600) #6
  %602 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %601, i32 0, i32 5
  %603 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %602) #6
  br i1 %603, label %604, label %605

604:                                              ; preds = %594
  store i32 15, ptr %5, align 4
  br label %637

605:                                              ; preds = %594, %584
  %606 = load ptr, ptr %39, align 8, !tbaa !5
  %607 = getelementptr inbounds %"struct.fastgltf::AnimationSampler", ptr %606, i32 0, i32 2
  %608 = load i8, ptr %607, align 8, !tbaa !57
  switch i8 %608, label %636 [
    i8 0, label %609
    i8 1, label %609
    i8 2, label %619
  ]

609:                                              ; preds = %605, %605
  %610 = load ptr, ptr %40, align 8, !tbaa !5
  %611 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %610, i32 0, i32 1
  %612 = load i64, ptr %611, align 8, !tbaa !34
  %613 = load ptr, ptr %41, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %613, i32 0, i32 1
  %615 = load i64, ptr %614, align 8, !tbaa !34
  %616 = icmp ne i64 %612, %615
  br i1 %616, label %617, label %618

617:                                              ; preds = %609
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %637

618:                                              ; preds = %609
  br label %636

619:                                              ; preds = %605
  %620 = load ptr, ptr %40, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %620, i32 0, i32 1
  %622 = load i64, ptr %621, align 8, !tbaa !34
  %623 = icmp ult i64 %622, 2
  br i1 %623, label %624, label %625

624:                                              ; preds = %619
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %637

625:                                              ; preds = %619
  %626 = load ptr, ptr %40, align 8, !tbaa !5
  %627 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %626, i32 0, i32 1
  %628 = load i64, ptr %627, align 8, !tbaa !34
  %629 = mul i64 %628, 3
  %630 = load ptr, ptr %41, align 8, !tbaa !5
  %631 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %630, i32 0, i32 1
  %632 = load i64, ptr %631, align 8, !tbaa !34
  %633 = icmp ne i64 %629, %632
  br i1 %633, label %634, label %635

634:                                              ; preds = %625
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %637

635:                                              ; preds = %625
  br label %636

636:                                              ; preds = %635, %618, %605
  store i32 0, ptr %5, align 4
  br label %637

637:                                              ; preds = %636, %634, %624, %617, %604
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  br label %638

638:                                              ; preds = %637, %583, %577, %571, %556, %545
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  %639 = load i32, ptr %5, align 4
  switch i32 %639, label %641 [
    i32 0, label %640
  ]

640:                                              ; preds = %638
  store i32 0, ptr %5, align 4
  br label %641

641:                                              ; preds = %640, %638
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #6
  %642 = load i32, ptr %5, align 4
  switch i32 %642, label %646 [
    i32 0, label %643
    i32 15, label %644
  ]

643:                                              ; preds = %641
  br label %644

644:                                              ; preds = %643, %641
  %645 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  br label %524

646:                                              ; preds = %641, %526
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  %647 = load i32, ptr %5, align 4
  switch i32 %647, label %649 [
    i32 14, label %648
  ]

648:                                              ; preds = %646
  store i32 0, ptr %5, align 4
  br label %649

649:                                              ; preds = %648, %646, %514, %508, %447
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  %650 = load i32, ptr %5, align 4
  switch i32 %650, label %654 [
    i32 0, label %651
  ]

651:                                              ; preds = %649
  br label %652

652:                                              ; preds = %651
  %653 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #6
  br label %439

654:                                              ; preds = %649, %441
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  %655 = load i32, ptr %5, align 4
  switch i32 %655, label %2369 [
    i32 8, label %656
  ]

656:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  %657 = load ptr, ptr %3, align 8, !tbaa !5
  %658 = getelementptr inbounds %"class.fastgltf::Asset", ptr %657, i32 0, i32 7
  store ptr %658, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %659 = load ptr, ptr %42, align 8, !tbaa !5
  %660 = call ptr @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %659) #6
  %661 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.235", ptr %43, i32 0, i32 0
  store ptr %660, ptr %661, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #6
  %662 = load ptr, ptr %42, align 8, !tbaa !5
  %663 = call ptr @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %662) #6
  %664 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.235", ptr %44, i32 0, i32 0
  store ptr %663, ptr %664, align 8
  br label %665

665:                                              ; preds = %679, %656
  %666 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #6
  br i1 %666, label %668, label %667

667:                                              ; preds = %665
  store i32 17, ptr %5, align 4
  br label %681

668:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #6
  %669 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #6
  store ptr %669, ptr %45, align 8, !tbaa !5
  %670 = load ptr, ptr %45, align 8, !tbaa !5
  %671 = getelementptr inbounds %"struct.fastgltf::Buffer", ptr %670, i32 0, i32 0
  %672 = load i64, ptr %671, align 8, !tbaa !58
  %673 = icmp ult i64 %672, 1
  br i1 %673, label %674, label %675

674:                                              ; preds = %668
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %676

675:                                              ; preds = %668
  store i32 0, ptr %5, align 4
  br label %676

676:                                              ; preds = %675, %674
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #6
  %677 = load i32, ptr %5, align 4
  switch i32 %677, label %681 [
    i32 0, label %678
  ]

678:                                              ; preds = %676
  br label %679

679:                                              ; preds = %678
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #6
  br label %665

681:                                              ; preds = %676, %667
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  %682 = load i32, ptr %5, align 4
  switch i32 %682, label %2369 [
    i32 17, label %683
  ]

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %684 = load ptr, ptr %3, align 8, !tbaa !5
  %685 = getelementptr inbounds %"class.fastgltf::Asset", ptr %684, i32 0, i32 8
  store ptr %685, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %686 = load ptr, ptr %46, align 8, !tbaa !5
  %687 = call ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %686) #6
  %688 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.236", ptr %47, i32 0, i32 0
  store ptr %687, ptr %688, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #6
  %689 = load ptr, ptr %46, align 8, !tbaa !5
  %690 = call ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %689) #6
  %691 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.236", ptr %48, i32 0, i32 0
  store ptr %690, ptr %691, align 8
  br label %692

692:                                              ; preds = %803, %683
  %693 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  br i1 %693, label %695, label %694

694:                                              ; preds = %692
  store i32 19, ptr %5, align 4
  br label %805

695:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  %696 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  store ptr %696, ptr %49, align 8, !tbaa !5
  %697 = load ptr, ptr %49, align 8, !tbaa !5
  %698 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %697, i32 0, i32 2
  %699 = load i64, ptr %698, align 8, !tbaa !67
  %700 = icmp ult i64 %699, 1
  br i1 %700, label %701, label %702

701:                                              ; preds = %695
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %800

702:                                              ; preds = %695
  %703 = load ptr, ptr %49, align 8, !tbaa !5
  %704 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %703, i32 0, i32 3
  %705 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %704)
  br i1 %705, label %706, label %726

706:                                              ; preds = %702
  %707 = load ptr, ptr %49, align 8, !tbaa !5
  %708 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %707, i32 0, i32 3
  %709 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %708) #6
  %710 = load i64, ptr %709, align 8, !tbaa !35
  %711 = icmp ult i64 %710, 4
  br i1 %711, label %725, label %712

712:                                              ; preds = %706
  %713 = load ptr, ptr %49, align 8, !tbaa !5
  %714 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %713, i32 0, i32 3
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %714) #6
  %716 = load i64, ptr %715, align 8, !tbaa !35
  %717 = icmp ugt i64 %716, 252
  br i1 %717, label %725, label %718

718:                                              ; preds = %712
  %719 = load ptr, ptr %49, align 8, !tbaa !5
  %720 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %719, i32 0, i32 3
  %721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %720) #6
  %722 = load i64, ptr %721, align 8, !tbaa !35
  %723 = urem i64 %722, 4
  %724 = icmp ne i64 %723, 0
  br i1 %724, label %725, label %726

725:                                              ; preds = %718, %712, %706
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %800

726:                                              ; preds = %718, %702
  %727 = load ptr, ptr %49, align 8, !tbaa !5
  %728 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %727, i32 0, i32 0
  %729 = load i64, ptr %728, align 8, !tbaa !68
  %730 = load ptr, ptr %3, align 8, !tbaa !5
  %731 = getelementptr inbounds %"class.fastgltf::Asset", ptr %730, i32 0, i32 7
  %732 = call noundef i64 @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %731) #6
  %733 = icmp uge i64 %729, %732
  br i1 %733, label %734, label %735

734:                                              ; preds = %726
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %800

735:                                              ; preds = %726
  %736 = load ptr, ptr %49, align 8, !tbaa !5
  %737 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %736, i32 0, i32 5
  %738 = call noundef zeroext i1 @_ZStneIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEbRKSt10unique_ptrIT_T0_EDn(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr null) #6
  br i1 %738, label %739, label %746

739:                                              ; preds = %735
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %50, ptr align 8 @_ZN8fastgltf10extensionsL23EXT_meshopt_compressionE, i64 16, i1 false), !tbaa.struct !69
  %740 = getelementptr inbounds { i64, ptr }, ptr %50, i32 0, i32 0
  %741 = load i64, ptr %740, align 8
  %742 = getelementptr inbounds { i64, ptr }, ptr %50, i32 0, i32 1
  %743 = load ptr, ptr %742, align 8
  %744 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %741, ptr %743)
  br i1 %744, label %746, label %745

745:                                              ; preds = %739
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %800

746:                                              ; preds = %739, %735
  %747 = load ptr, ptr %49, align 8, !tbaa !5
  %748 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %747, i32 0, i32 5
  %749 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %748) #6
  br i1 %749, label %750, label %799

750:                                              ; preds = %746
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  %751 = load ptr, ptr %49, align 8, !tbaa !5
  %752 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %751, i32 0, i32 5
  store ptr %752, ptr %51, align 8, !tbaa !5
  %753 = load ptr, ptr %51, align 8, !tbaa !5
  %754 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %753) #6
  %755 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %754, i32 0, i32 4
  %756 = load i8, ptr %755, align 8, !tbaa !70
  switch i8 %756, label %795 [
    i8 0, label %757
    i8 1, label %772
    i8 2, label %781
  ]

757:                                              ; preds = %750
  %758 = load ptr, ptr %51, align 8, !tbaa !5
  %759 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %758) #6
  %760 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %759, i32 0, i32 6
  %761 = load i64, ptr %760, align 8, !tbaa !74
  %762 = urem i64 %761, 4
  %763 = icmp ne i64 %762, 0
  br i1 %763, label %770, label %764

764:                                              ; preds = %757
  %765 = load ptr, ptr %51, align 8, !tbaa !5
  %766 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %765) #6
  %767 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %766, i32 0, i32 6
  %768 = load i64, ptr %767, align 8, !tbaa !74
  %769 = icmp ugt i64 %768, 256
  br i1 %769, label %770, label %771

770:                                              ; preds = %764, %757
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %796

771:                                              ; preds = %764
  br label %795

772:                                              ; preds = %750
  %773 = load ptr, ptr %51, align 8, !tbaa !5
  %774 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %773) #6
  %775 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %774, i32 0, i32 3
  %776 = load i64, ptr %775, align 8, !tbaa !75
  %777 = urem i64 %776, 3
  %778 = icmp ne i64 %777, 0
  br i1 %778, label %779, label %780

779:                                              ; preds = %772
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %796

780:                                              ; preds = %772
  br label %781

781:                                              ; preds = %780, %750
  %782 = load ptr, ptr %51, align 8, !tbaa !5
  %783 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %782) #6
  %784 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %783, i32 0, i32 6
  %785 = load i64, ptr %784, align 8, !tbaa !74
  %786 = icmp ne i64 %785, 2
  br i1 %786, label %787, label %794

787:                                              ; preds = %781
  %788 = load ptr, ptr %51, align 8, !tbaa !5
  %789 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %788) #6
  %790 = getelementptr inbounds %"struct.fastgltf::CompressedBufferView", ptr %789, i32 0, i32 6
  %791 = load i64, ptr %790, align 8, !tbaa !74
  %792 = icmp ne i64 %791, 4
  br i1 %792, label %793, label %794

793:                                              ; preds = %787
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %796

794:                                              ; preds = %787, %781
  br label %795

795:                                              ; preds = %794, %771, %750
  store i32 0, ptr %5, align 4
  br label %796

796:                                              ; preds = %795, %793, %779, %770
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  %797 = load i32, ptr %5, align 4
  switch i32 %797, label %800 [
    i32 0, label %798
  ]

798:                                              ; preds = %796
  br label %799

799:                                              ; preds = %798, %746
  store i32 0, ptr %5, align 4
  br label %800

800:                                              ; preds = %799, %796, %745, %734, %725, %701
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  %801 = load i32, ptr %5, align 4
  switch i32 %801, label %805 [
    i32 0, label %802
  ]

802:                                              ; preds = %800
  br label %803

803:                                              ; preds = %802
  %804 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  br label %692

805:                                              ; preds = %800, %694
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  %806 = load i32, ptr %5, align 4
  switch i32 %806, label %2369 [
    i32 19, label %807
  ]

807:                                              ; preds = %805
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  %808 = load ptr, ptr %3, align 8, !tbaa !5
  %809 = getelementptr inbounds %"class.fastgltf::Asset", ptr %808, i32 0, i32 9
  store ptr %809, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  %810 = load ptr, ptr %52, align 8, !tbaa !5
  %811 = call ptr @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %810) #6
  %812 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.237", ptr %53, i32 0, i32 0
  store ptr %811, ptr %812, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #6
  %813 = load ptr, ptr %52, align 8, !tbaa !5
  %814 = call ptr @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %813) #6
  %815 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.237", ptr %54, i32 0, i32 0
  store ptr %814, ptr %815, align 8
  br label %816

816:                                              ; preds = %885, %807
  %817 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #6
  br i1 %817, label %819, label %818

818:                                              ; preds = %816
  store i32 22, ptr %5, align 4
  br label %887

819:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  %820 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #6
  store ptr %820, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #6
  %821 = load ptr, ptr %55, align 8, !tbaa !5
  %822 = getelementptr inbounds %"struct.fastgltf::Camera", ptr %821, i32 0, i32 0
  %823 = call noundef ptr @_ZSt6get_ifIN8fastgltf6Camera12OrthographicEJNS1_11PerspectiveES2_EENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef %822) #6
  store ptr %823, ptr %56, align 8, !tbaa !5
  %824 = load ptr, ptr %56, align 8, !tbaa !5
  %825 = icmp ne ptr %824, null
  br i1 %825, label %826, label %833

826:                                              ; preds = %819
  %827 = load ptr, ptr %56, align 8, !tbaa !5
  %828 = getelementptr inbounds %"struct.fastgltf::Camera::Orthographic", ptr %827, i32 0, i32 2
  %829 = load float, ptr %828, align 4, !tbaa !76
  %830 = fcmp oeq float %829, 0.000000e+00
  br i1 %830, label %831, label %832

831:                                              ; preds = %826
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %879

832:                                              ; preds = %826
  br label %878

833:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #6
  %834 = load ptr, ptr %55, align 8, !tbaa !5
  %835 = getelementptr inbounds %"struct.fastgltf::Camera", ptr %834, i32 0, i32 0
  %836 = call noundef ptr @_ZSt6get_ifIN8fastgltf6Camera11PerspectiveEJS2_NS1_12OrthographicEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef %835) #6
  store ptr %836, ptr %57, align 8, !tbaa !5
  %837 = load ptr, ptr %57, align 8, !tbaa !5
  %838 = icmp ne ptr %837, null
  br i1 %838, label %839, label %874

839:                                              ; preds = %833
  %840 = load ptr, ptr %57, align 8, !tbaa !5
  %841 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %840, i32 0, i32 0
  %842 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %841)
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  br i1 %842, label %843, label %847

843:                                              ; preds = %839
  %844 = load ptr, ptr %57, align 8, !tbaa !5
  %845 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %844, i32 0, i32 0
  store float 0.000000e+00, ptr %58, align 4, !tbaa !79
  %846 = call noundef zeroext i1 @_ZN8fastgltfeqIffEEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 4 dereferenceable(4) %845, ptr noundef nonnull align 4 dereferenceable(4) %58)
  br label %847

847:                                              ; preds = %843, %839
  %848 = phi i1 [ false, %839 ], [ %846, %843 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  br i1 %848, label %849, label %850

849:                                              ; preds = %847
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %875

850:                                              ; preds = %847
  %851 = load ptr, ptr %57, align 8, !tbaa !5
  %852 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %851, i32 0, i32 1
  %853 = load float, ptr %852, align 4, !tbaa !80
  %854 = fcmp oeq float %853, 0.000000e+00
  br i1 %854, label %855, label %856

855:                                              ; preds = %850
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %875

856:                                              ; preds = %850
  %857 = load ptr, ptr %57, align 8, !tbaa !5
  %858 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %857, i32 0, i32 2
  %859 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %858)
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  br i1 %859, label %860, label %864

860:                                              ; preds = %856
  %861 = load ptr, ptr %57, align 8, !tbaa !5
  %862 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %861, i32 0, i32 2
  store float 0.000000e+00, ptr %59, align 4, !tbaa !79
  %863 = call noundef zeroext i1 @_ZN8fastgltfeqIffEEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 4 dereferenceable(4) %862, ptr noundef nonnull align 4 dereferenceable(4) %59)
  br label %864

864:                                              ; preds = %860, %856
  %865 = phi i1 [ false, %856 ], [ %863, %860 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  br i1 %865, label %866, label %867

866:                                              ; preds = %864
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %875

867:                                              ; preds = %864
  %868 = load ptr, ptr %57, align 8, !tbaa !5
  %869 = getelementptr inbounds %"struct.fastgltf::Camera::Perspective", ptr %868, i32 0, i32 3
  %870 = load float, ptr %869, align 4, !tbaa !83
  %871 = fcmp oeq float %870, 0.000000e+00
  br i1 %871, label %872, label %873

872:                                              ; preds = %867
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %875

873:                                              ; preds = %867
  br label %874

874:                                              ; preds = %873, %833
  store i32 0, ptr %5, align 4
  br label %875

875:                                              ; preds = %874, %872, %866, %855, %849
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #6
  %876 = load i32, ptr %5, align 4
  switch i32 %876, label %879 [
    i32 0, label %877
  ]

877:                                              ; preds = %875
  br label %878

878:                                              ; preds = %877, %832
  store i32 0, ptr %5, align 4
  br label %879

879:                                              ; preds = %878, %875, %831
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #6
  %880 = load i32, ptr %5, align 4
  switch i32 %880, label %882 [
    i32 0, label %881
  ]

881:                                              ; preds = %879
  store i32 0, ptr %5, align 4
  br label %882

882:                                              ; preds = %881, %879
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  %883 = load i32, ptr %5, align 4
  switch i32 %883, label %887 [
    i32 0, label %884
  ]

884:                                              ; preds = %882
  br label %885

885:                                              ; preds = %884
  %886 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #6
  br label %816

887:                                              ; preds = %882, %818
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  %888 = load i32, ptr %5, align 4
  switch i32 %888, label %2369 [
    i32 22, label %889
  ]

889:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  %890 = load ptr, ptr %3, align 8, !tbaa !5
  %891 = getelementptr inbounds %"class.fastgltf::Asset", ptr %890, i32 0, i32 10
  store ptr %891, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  %892 = load ptr, ptr %60, align 8, !tbaa !5
  %893 = call ptr @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %892) #6
  %894 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.262", ptr %61, i32 0, i32 0
  store ptr %893, ptr %894, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  %895 = load ptr, ptr %60, align 8, !tbaa !5
  %896 = call ptr @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %895) #6
  %897 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.262", ptr %62, i32 0, i32 0
  store ptr %896, ptr %897, align 8
  br label %898

898:                                              ; preds = %925, %889
  %899 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #6
  br i1 %899, label %901, label %900

900:                                              ; preds = %898
  store i32 24, ptr %5, align 4
  br label %927

901:                                              ; preds = %898
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  %902 = call noundef nonnull align 8 dereferenceable(232) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #6
  store ptr %902, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  %903 = load ptr, ptr %63, align 8, !tbaa !5
  %904 = getelementptr inbounds %"struct.fastgltf::Image", ptr %903, i32 0, i32 0
  %905 = call noundef ptr @_ZSt6get_ifIN8fastgltf7sources10BufferViewEJSt9monostateS2_NS1_3URIENS1_5ArrayENS1_6VectorENS1_12CustomBufferENS1_8ByteViewENS1_8FallbackEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef %904) #6
  store ptr %905, ptr %64, align 8, !tbaa !5
  %906 = load ptr, ptr %64, align 8, !tbaa !5
  %907 = icmp ne ptr %906, null
  br i1 %907, label %908, label %918

908:                                              ; preds = %901
  %909 = load ptr, ptr %64, align 8, !tbaa !5
  %910 = getelementptr inbounds %"struct.fastgltf::sources::BufferView", ptr %909, i32 0, i32 0
  %911 = load i64, ptr %910, align 8, !tbaa !84
  %912 = load ptr, ptr %3, align 8, !tbaa !5
  %913 = getelementptr inbounds %"class.fastgltf::Asset", ptr %912, i32 0, i32 8
  %914 = call noundef i64 @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %913) #6
  %915 = icmp uge i64 %911, %914
  br i1 %915, label %916, label %917

916:                                              ; preds = %908
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %919

917:                                              ; preds = %908
  br label %918

918:                                              ; preds = %917, %901
  store i32 0, ptr %5, align 4
  br label %919

919:                                              ; preds = %918, %916
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  %920 = load i32, ptr %5, align 4
  switch i32 %920, label %922 [
    i32 0, label %921
  ]

921:                                              ; preds = %919
  store i32 0, ptr %5, align 4
  br label %922

922:                                              ; preds = %921, %919
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  %923 = load i32, ptr %5, align 4
  switch i32 %923, label %927 [
    i32 0, label %924
  ]

924:                                              ; preds = %922
  br label %925

925:                                              ; preds = %924
  %926 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #6
  br label %898

927:                                              ; preds = %922, %900
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  %928 = load i32, ptr %5, align 4
  switch i32 %928, label %2369 [
    i32 24, label %929
  ]

929:                                              ; preds = %927
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #6
  %930 = load ptr, ptr %3, align 8, !tbaa !5
  %931 = getelementptr inbounds %"class.fastgltf::Asset", ptr %930, i32 0, i32 11
  store ptr %931, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  %932 = load ptr, ptr %65, align 8, !tbaa !5
  %933 = call ptr @_ZNKSt6vectorIN8fastgltf5LightESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %932) #6
  %934 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.263", ptr %66, i32 0, i32 0
  store ptr %933, ptr %934, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #6
  %935 = load ptr, ptr %65, align 8, !tbaa !5
  %936 = call ptr @_ZNKSt6vectorIN8fastgltf5LightESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %935) #6
  %937 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.263", ptr %67, i32 0, i32 0
  store ptr %936, ptr %937, align 8
  br label %938

938:                                              ; preds = %1018, %929
  %939 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67) #6
  br i1 %939, label %941, label %940

940:                                              ; preds = %938
  store i32 26, ptr %5, align 4
  br label %1020

941:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #6
  %942 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #6
  store ptr %942, ptr %68, align 8, !tbaa !5
  %943 = load ptr, ptr %68, align 8, !tbaa !5
  %944 = getelementptr inbounds %"struct.fastgltf::Light", ptr %943, i32 0, i32 0
  %945 = load i8, ptr %944, align 8, !tbaa !87
  %946 = icmp eq i8 %945, 0
  br i1 %946, label %947, label %952

947:                                              ; preds = %941
  %948 = load ptr, ptr %68, align 8, !tbaa !5
  %949 = getelementptr inbounds %"struct.fastgltf::Light", ptr %948, i32 0, i32 3
  %950 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %949)
  br i1 %950, label %951, label %952

951:                                              ; preds = %947
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

952:                                              ; preds = %947, %941
  %953 = load ptr, ptr %68, align 8, !tbaa !5
  %954 = getelementptr inbounds %"struct.fastgltf::Light", ptr %953, i32 0, i32 3
  %955 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %954)
  br i1 %955, label %956, label %963

956:                                              ; preds = %952
  %957 = load ptr, ptr %68, align 8, !tbaa !5
  %958 = getelementptr inbounds %"struct.fastgltf::Light", ptr %957, i32 0, i32 3
  %959 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %958)
  %960 = load float, ptr %959, align 4, !tbaa !79
  %961 = fcmp ole float %960, 0.000000e+00
  br i1 %961, label %962, label %963

962:                                              ; preds = %956
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

963:                                              ; preds = %956, %952
  %964 = load ptr, ptr %68, align 8, !tbaa !5
  %965 = getelementptr inbounds %"struct.fastgltf::Light", ptr %964, i32 0, i32 0
  %966 = load i8, ptr %965, align 8, !tbaa !87
  %967 = icmp ne i8 %966, 1
  br i1 %967, label %968, label %978

968:                                              ; preds = %963
  %969 = load ptr, ptr %68, align 8, !tbaa !5
  %970 = getelementptr inbounds %"struct.fastgltf::Light", ptr %969, i32 0, i32 4
  %971 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %970)
  br i1 %971, label %976, label %972

972:                                              ; preds = %968
  %973 = load ptr, ptr %68, align 8, !tbaa !5
  %974 = getelementptr inbounds %"struct.fastgltf::Light", ptr %973, i32 0, i32 5
  %975 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %974)
  br i1 %975, label %976, label %977

976:                                              ; preds = %972, %968
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

977:                                              ; preds = %972
  br label %1014

978:                                              ; preds = %963
  %979 = load ptr, ptr %68, align 8, !tbaa !5
  %980 = getelementptr inbounds %"struct.fastgltf::Light", ptr %979, i32 0, i32 4
  %981 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %980)
  br i1 %981, label %982, label %986

982:                                              ; preds = %978
  %983 = load ptr, ptr %68, align 8, !tbaa !5
  %984 = getelementptr inbounds %"struct.fastgltf::Light", ptr %983, i32 0, i32 5
  %985 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %984)
  br i1 %985, label %987, label %986

986:                                              ; preds = %982, %978
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

987:                                              ; preds = %982
  %988 = load ptr, ptr %68, align 8, !tbaa !5
  %989 = getelementptr inbounds %"struct.fastgltf::Light", ptr %988, i32 0, i32 4
  %990 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %989)
  %991 = load float, ptr %990, align 4, !tbaa !79
  %992 = fcmp olt float %991, 0.000000e+00
  br i1 %992, label %993, label %994

993:                                              ; preds = %987
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

994:                                              ; preds = %987
  %995 = load ptr, ptr %68, align 8, !tbaa !5
  %996 = getelementptr inbounds %"struct.fastgltf::Light", ptr %995, i32 0, i32 4
  %997 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %996)
  %998 = load float, ptr %997, align 4, !tbaa !79
  %999 = load ptr, ptr %68, align 8, !tbaa !5
  %1000 = getelementptr inbounds %"struct.fastgltf::Light", ptr %999, i32 0, i32 5
  %1001 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %1000)
  %1002 = load float, ptr %1001, align 4, !tbaa !79
  %1003 = fcmp ogt float %998, %1002
  br i1 %1003, label %1004, label %1005

1004:                                             ; preds = %994
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

1005:                                             ; preds = %994
  %1006 = load ptr, ptr %68, align 8, !tbaa !5
  %1007 = getelementptr inbounds %"struct.fastgltf::Light", ptr %1006, i32 0, i32 5
  %1008 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %1007)
  %1009 = load float, ptr %1008, align 4, !tbaa !79
  %1010 = fpext float %1009 to x86_fp80
  %1011 = fcmp ogt x86_fp80 %1010, 0xK3FFFC90FDAA22168C000
  br i1 %1011, label %1012, label %1013

1012:                                             ; preds = %1005
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1015

1013:                                             ; preds = %1005
  br label %1014

1014:                                             ; preds = %1013, %977
  store i32 0, ptr %5, align 4
  br label %1015

1015:                                             ; preds = %1014, %1012, %1004, %993, %986, %976, %962, %951
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  %1016 = load i32, ptr %5, align 4
  switch i32 %1016, label %1020 [
    i32 0, label %1017
  ]

1017:                                             ; preds = %1015
  br label %1018

1018:                                             ; preds = %1017
  %1019 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #6
  br label %938

1020:                                             ; preds = %1015, %940
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #6
  %1021 = load i32, ptr %5, align 4
  switch i32 %1021, label %2369 [
    i32 26, label %1022
  ]

1022:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  %1023 = load ptr, ptr %3, align 8, !tbaa !5
  %1024 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1023, i32 0, i32 12
  store ptr %1024, ptr %69, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  %1025 = load ptr, ptr %69, align 8, !tbaa !5
  %1026 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1025) #6
  %1027 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %70, i32 0, i32 0
  store ptr %1026, ptr %1027, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  %1028 = load ptr, ptr %69, align 8, !tbaa !5
  %1029 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1028) #6
  %1030 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %71, i32 0, i32 0
  store ptr %1029, ptr %1030, align 8
  br label %1031

1031:                                             ; preds = %1247, %1022
  %1032 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #6
  br i1 %1032, label %1034, label %1033

1033:                                             ; preds = %1031
  store i32 28, ptr %5, align 4
  br label %1249

1034:                                             ; preds = %1031
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  %1035 = call noundef nonnull align 8 dereferenceable(368) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  store ptr %1035, ptr %72, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  %1036 = getelementptr inbounds %class.anon.363, ptr %73, i32 0, i32 0
  %1037 = load ptr, ptr %3, align 8, !tbaa !5
  %1038 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1037, i32 0, i32 18
  store ptr %1038, ptr %1036, align 8, !tbaa !5
  %1039 = load ptr, ptr %72, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1039, i32 0, i32 1
  %1041 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %1040) #6
  br i1 %1041, label %1042, label %1053

1042:                                             ; preds = %1034
  %1043 = load ptr, ptr %72, align 8, !tbaa !5
  %1044 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1043, i32 0, i32 1
  %1045 = call noundef ptr @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %1044) #6
  %1046 = getelementptr inbounds %"struct.fastgltf::TextureInfo", ptr %1045, i32 0, i32 0
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 8 dereferenceable(8) %1046) #6
  %1047 = getelementptr inbounds { i64, i8 }, ptr %74, i32 0, i32 0
  %1048 = load i64, ptr %1047, align 8
  %1049 = getelementptr inbounds { i64, i8 }, ptr %74, i32 0, i32 1
  %1050 = load i8, ptr %1049, align 8
  %1051 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %1048, i8 %1050)
  br i1 %1051, label %1052, label %1053

1052:                                             ; preds = %1042
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1053:                                             ; preds = %1042, %1034
  %1054 = load ptr, ptr %72, align 8, !tbaa !5
  %1055 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1054, i32 0, i32 3
  %1056 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1055) #6
  br i1 %1056, label %1057, label %1068

1057:                                             ; preds = %1053
  %1058 = load ptr, ptr %72, align 8, !tbaa !5
  %1059 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1058, i32 0, i32 3
  %1060 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %1059) #6
  %1061 = getelementptr inbounds %"struct.fastgltf::TextureInfo", ptr %1060, i32 0, i32 0
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(8) %1061) #6
  %1062 = getelementptr inbounds { i64, i8 }, ptr %75, i32 0, i32 0
  %1063 = load i64, ptr %1062, align 8
  %1064 = getelementptr inbounds { i64, i8 }, ptr %75, i32 0, i32 1
  %1065 = load i8, ptr %1064, align 8
  %1066 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %1063, i8 %1065)
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1057
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1068:                                             ; preds = %1057, %1053
  %1069 = load ptr, ptr %72, align 8, !tbaa !5
  %1070 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1069, i32 0, i32 2
  %1071 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %1070) #6
  br i1 %1071, label %1072, label %1083

1072:                                             ; preds = %1068
  %1073 = load ptr, ptr %72, align 8, !tbaa !5
  %1074 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1073, i32 0, i32 2
  %1075 = call noundef ptr @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %1074) #6
  %1076 = getelementptr inbounds %"struct.fastgltf::TextureInfo", ptr %1075, i32 0, i32 0
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr noundef nonnull align 8 dereferenceable(8) %1076) #6
  %1077 = getelementptr inbounds { i64, i8 }, ptr %76, i32 0, i32 0
  %1078 = load i64, ptr %1077, align 8
  %1079 = getelementptr inbounds { i64, i8 }, ptr %76, i32 0, i32 1
  %1080 = load i8, ptr %1079, align 8
  %1081 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %1078, i8 %1080)
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1072
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1083:                                             ; preds = %1072, %1068
  %1084 = load ptr, ptr %72, align 8, !tbaa !5
  %1085 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1084, i32 0, i32 0
  %1086 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %1085, i32 0, i32 3
  %1087 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1086) #6
  br i1 %1087, label %1088, label %1100

1088:                                             ; preds = %1083
  %1089 = load ptr, ptr %72, align 8, !tbaa !5
  %1090 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1089, i32 0, i32 0
  %1091 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %1090, i32 0, i32 3
  %1092 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %1091) #6
  %1093 = getelementptr inbounds %"struct.fastgltf::TextureInfo", ptr %1092, i32 0, i32 0
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull align 8 dereferenceable(8) %1093) #6
  %1094 = getelementptr inbounds { i64, i8 }, ptr %77, i32 0, i32 0
  %1095 = load i64, ptr %1094, align 8
  %1096 = getelementptr inbounds { i64, i8 }, ptr %77, i32 0, i32 1
  %1097 = load i8, ptr %1096, align 8
  %1098 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %1095, i8 %1097)
  br i1 %1098, label %1099, label %1100

1099:                                             ; preds = %1088
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1100:                                             ; preds = %1088, %1083
  %1101 = load ptr, ptr %72, align 8, !tbaa !5
  %1102 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1101, i32 0, i32 0
  %1103 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %1102, i32 0, i32 4
  %1104 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1103) #6
  br i1 %1104, label %1105, label %1117

1105:                                             ; preds = %1100
  %1106 = load ptr, ptr %72, align 8, !tbaa !5
  %1107 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1106, i32 0, i32 0
  %1108 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %1107, i32 0, i32 4
  %1109 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %1108) #6
  %1110 = getelementptr inbounds %"struct.fastgltf::TextureInfo", ptr %1109, i32 0, i32 0
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 8 dereferenceable(8) %1110) #6
  %1111 = getelementptr inbounds { i64, i8 }, ptr %78, i32 0, i32 0
  %1112 = load i64, ptr %1111, align 8
  %1113 = getelementptr inbounds { i64, i8 }, ptr %78, i32 0, i32 1
  %1114 = load i8, ptr %1113, align 8
  %1115 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %1112, i8 %1114)
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1105
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1117:                                             ; preds = %1105, %1100
  %1118 = load ptr, ptr %72, align 8, !tbaa !5
  %1119 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1118, i32 0, i32 12
  %1120 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1119) #6
  br i1 %1120, label %1121, label %1128

1121:                                             ; preds = %1117
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %79, ptr align 8 @_ZN8fastgltf10extensionsL24KHR_materials_anisotropyE, i64 16, i1 false), !tbaa.struct !69
  %1122 = getelementptr inbounds { i64, ptr }, ptr %79, i32 0, i32 0
  %1123 = load i64, ptr %1122, align 8
  %1124 = getelementptr inbounds { i64, ptr }, ptr %79, i32 0, i32 1
  %1125 = load ptr, ptr %1124, align 8
  %1126 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1123, ptr %1125)
  br i1 %1126, label %1128, label %1127

1127:                                             ; preds = %1121
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1128:                                             ; preds = %1121, %1117
  %1129 = load ptr, ptr %72, align 8, !tbaa !5
  %1130 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1129, i32 0, i32 13
  %1131 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1130) #6
  br i1 %1131, label %1132, label %1139

1132:                                             ; preds = %1128
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %80, ptr align 8 @_ZN8fastgltf10extensionsL23KHR_materials_clearcoatE, i64 16, i1 false), !tbaa.struct !69
  %1133 = getelementptr inbounds { i64, ptr }, ptr %80, i32 0, i32 0
  %1134 = load i64, ptr %1133, align 8
  %1135 = getelementptr inbounds { i64, ptr }, ptr %80, i32 0, i32 1
  %1136 = load ptr, ptr %1135, align 8
  %1137 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1134, ptr %1136)
  br i1 %1137, label %1139, label %1138

1138:                                             ; preds = %1132
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1139:                                             ; preds = %1132, %1128
  %1140 = load ptr, ptr %72, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1140, i32 0, i32 14
  %1142 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1141) #6
  br i1 %1142, label %1143, label %1150

1143:                                             ; preds = %1139
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %81, ptr align 8 @_ZN8fastgltf10extensionsL25KHR_materials_iridescenceE, i64 16, i1 false), !tbaa.struct !69
  %1144 = getelementptr inbounds { i64, ptr }, ptr %81, i32 0, i32 0
  %1145 = load i64, ptr %1144, align 8
  %1146 = getelementptr inbounds { i64, ptr }, ptr %81, i32 0, i32 1
  %1147 = load ptr, ptr %1146, align 8
  %1148 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1145, ptr %1147)
  br i1 %1148, label %1150, label %1149

1149:                                             ; preds = %1143
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1150:                                             ; preds = %1143, %1139
  %1151 = load ptr, ptr %72, align 8, !tbaa !5
  %1152 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1151, i32 0, i32 15
  %1153 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1152) #6
  br i1 %1153, label %1154, label %1161

1154:                                             ; preds = %1150
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %82, ptr align 8 @_ZN8fastgltf10extensionsL19KHR_materials_sheenE, i64 16, i1 false), !tbaa.struct !69
  %1155 = getelementptr inbounds { i64, ptr }, ptr %82, i32 0, i32 0
  %1156 = load i64, ptr %1155, align 8
  %1157 = getelementptr inbounds { i64, ptr }, ptr %82, i32 0, i32 1
  %1158 = load ptr, ptr %1157, align 8
  %1159 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1156, ptr %1158)
  br i1 %1159, label %1161, label %1160

1160:                                             ; preds = %1154
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1161:                                             ; preds = %1154, %1150
  %1162 = load ptr, ptr %72, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1162, i32 0, i32 16
  %1164 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1163) #6
  br i1 %1164, label %1165, label %1172

1165:                                             ; preds = %1161
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %83, ptr align 8 @_ZN8fastgltf10extensionsL22KHR_materials_specularE, i64 16, i1 false), !tbaa.struct !69
  %1166 = getelementptr inbounds { i64, ptr }, ptr %83, i32 0, i32 0
  %1167 = load i64, ptr %1166, align 8
  %1168 = getelementptr inbounds { i64, ptr }, ptr %83, i32 0, i32 1
  %1169 = load ptr, ptr %1168, align 8
  %1170 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1167, ptr %1169)
  br i1 %1170, label %1172, label %1171

1171:                                             ; preds = %1165
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1172:                                             ; preds = %1165, %1161
  %1173 = load ptr, ptr %72, align 8, !tbaa !5
  %1174 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1173, i32 0, i32 17
  %1175 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1174) #6
  br i1 %1175, label %1176, label %1183

1176:                                             ; preds = %1172
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %84, ptr align 8 @_ZN8fastgltf10extensionsL26KHR_materials_transmissionE, i64 16, i1 false), !tbaa.struct !69
  %1177 = getelementptr inbounds { i64, ptr }, ptr %84, i32 0, i32 0
  %1178 = load i64, ptr %1177, align 8
  %1179 = getelementptr inbounds { i64, ptr }, ptr %84, i32 0, i32 1
  %1180 = load ptr, ptr %1179, align 8
  %1181 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1178, ptr %1180)
  br i1 %1181, label %1183, label %1182

1182:                                             ; preds = %1176
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1183:                                             ; preds = %1176, %1172
  %1184 = load ptr, ptr %72, align 8, !tbaa !5
  %1185 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1184, i32 0, i32 18
  %1186 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1185) #6
  br i1 %1186, label %1187, label %1194

1187:                                             ; preds = %1183
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %85, ptr align 8 @_ZN8fastgltf10extensionsL20KHR_materials_volumeE, i64 16, i1 false), !tbaa.struct !69
  %1188 = getelementptr inbounds { i64, ptr }, ptr %85, i32 0, i32 0
  %1189 = load i64, ptr %1188, align 8
  %1190 = getelementptr inbounds { i64, ptr }, ptr %85, i32 0, i32 1
  %1191 = load ptr, ptr %1190, align 8
  %1192 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1189, ptr %1191)
  br i1 %1192, label %1194, label %1193

1193:                                             ; preds = %1187
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1194:                                             ; preds = %1187, %1183
  %1195 = load ptr, ptr %72, align 8, !tbaa !5
  %1196 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1195, i32 0, i32 9
  %1197 = load float, ptr %1196, align 4, !tbaa !92
  %1198 = fcmp une float %1197, 1.000000e+00
  br i1 %1198, label %1199, label %1206

1199:                                             ; preds = %1194
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %86, ptr align 8 @_ZN8fastgltf10extensionsL31KHR_materials_emissive_strengthE, i64 16, i1 false), !tbaa.struct !69
  %1200 = getelementptr inbounds { i64, ptr }, ptr %86, i32 0, i32 0
  %1201 = load i64, ptr %1200, align 8
  %1202 = getelementptr inbounds { i64, ptr }, ptr %86, i32 0, i32 1
  %1203 = load ptr, ptr %1202, align 8
  %1204 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1201, ptr %1203)
  br i1 %1204, label %1206, label %1205

1205:                                             ; preds = %1199
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1206:                                             ; preds = %1199, %1194
  %1207 = load ptr, ptr %72, align 8, !tbaa !5
  %1208 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1207, i32 0, i32 10
  %1209 = load float, ptr %1208, align 8, !tbaa !161
  %1210 = fcmp une float %1209, 1.500000e+00
  br i1 %1210, label %1211, label %1218

1211:                                             ; preds = %1206
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %87, ptr align 8 @_ZN8fastgltf10extensionsL17KHR_materials_iorE, i64 16, i1 false), !tbaa.struct !69
  %1212 = getelementptr inbounds { i64, ptr }, ptr %87, i32 0, i32 0
  %1213 = load i64, ptr %1212, align 8
  %1214 = getelementptr inbounds { i64, ptr }, ptr %87, i32 0, i32 1
  %1215 = load ptr, ptr %1214, align 8
  %1216 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1213, ptr %1215)
  br i1 %1216, label %1218, label %1217

1217:                                             ; preds = %1211
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1218:                                             ; preds = %1211, %1206
  %1219 = load ptr, ptr %72, align 8, !tbaa !5
  %1220 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1219, i32 0, i32 19
  %1221 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %1220) #6
  br i1 %1221, label %1222, label %1229

1222:                                             ; preds = %1218
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %88, ptr align 8 @_ZN8fastgltf10extensionsL36MSFT_packing_normalRoughnessMetallicE, i64 16, i1 false), !tbaa.struct !69
  %1223 = getelementptr inbounds { i64, ptr }, ptr %88, i32 0, i32 0
  %1224 = load i64, ptr %1223, align 8
  %1225 = getelementptr inbounds { i64, ptr }, ptr %88, i32 0, i32 1
  %1226 = load ptr, ptr %1225, align 8
  %1227 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1224, ptr %1226)
  br i1 %1227, label %1229, label %1228

1228:                                             ; preds = %1222
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1229:                                             ; preds = %1222, %1218
  %1230 = load ptr, ptr %72, align 8, !tbaa !5
  %1231 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1230, i32 0, i32 20
  %1232 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1231) #6
  br i1 %1232, label %1233, label %1240

1233:                                             ; preds = %1229
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %89, ptr align 8 @_ZN8fastgltf10extensionsL39MSFT_packing_occlusionRoughnessMetallicE, i64 16, i1 false), !tbaa.struct !69
  %1234 = getelementptr inbounds { i64, ptr }, ptr %89, i32 0, i32 0
  %1235 = load i64, ptr %1234, align 8
  %1236 = getelementptr inbounds { i64, ptr }, ptr %89, i32 0, i32 1
  %1237 = load ptr, ptr %1236, align 8
  %1238 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1235, ptr %1237)
  br i1 %1238, label %1240, label %1239

1239:                                             ; preds = %1233
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1241

1240:                                             ; preds = %1233, %1229
  store i32 0, ptr %5, align 4
  br label %1241

1241:                                             ; preds = %1240, %1239, %1228, %1217, %1205, %1193, %1182, %1171, %1160, %1149, %1138, %1127, %1116, %1099, %1082, %1067, %1052
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  %1242 = load i32, ptr %5, align 4
  switch i32 %1242, label %1244 [
    i32 0, label %1243
  ]

1243:                                             ; preds = %1241
  store i32 0, ptr %5, align 4
  br label %1244

1244:                                             ; preds = %1243, %1241
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  %1245 = load i32, ptr %5, align 4
  switch i32 %1245, label %1249 [
    i32 0, label %1246
  ]

1246:                                             ; preds = %1244
  br label %1247

1247:                                             ; preds = %1246
  %1248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #6
  br label %1031

1249:                                             ; preds = %1244, %1033
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  %1250 = load i32, ptr %5, align 4
  switch i32 %1250, label %2369 [
    i32 28, label %1251
  ]

1251:                                             ; preds = %1249
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #6
  %1252 = load ptr, ptr %3, align 8, !tbaa !5
  %1253 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1252, i32 0, i32 13
  store ptr %1253, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #6
  %1254 = load ptr, ptr %90, align 8, !tbaa !5
  %1255 = call ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1254) #6
  %1256 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.372", ptr %91, i32 0, i32 0
  store ptr %1255, ptr %1256, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #6
  %1257 = load ptr, ptr %90, align 8, !tbaa !5
  %1258 = call ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1257) #6
  %1259 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.372", ptr %92, i32 0, i32 0
  store ptr %1258, ptr %1259, align 8
  br label %1260

1260:                                             ; preds = %1879, %1251
  %1261 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %92) #6
  br i1 %1261, label %1263, label %1262

1262:                                             ; preds = %1260
  store i32 30, ptr %5, align 4
  br label %1881

1263:                                             ; preds = %1260
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #6
  %1264 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #6
  store ptr %1264, ptr %93, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #6
  %1265 = load ptr, ptr %93, align 8, !tbaa !5
  %1266 = getelementptr inbounds %"struct.fastgltf::Mesh", ptr %1265, i32 0, i32 0
  store ptr %1266, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #6
  %1267 = load ptr, ptr %94, align 8, !tbaa !5
  %1268 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %1267) #6
  %1269 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.373", ptr %95, i32 0, i32 0
  store ptr %1268, ptr %1269, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #6
  %1270 = load ptr, ptr %94, align 8, !tbaa !5
  %1271 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %1270) #6
  %1272 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.373", ptr %96, i32 0, i32 0
  store ptr %1271, ptr %1272, align 8
  br label %1273

1273:                                             ; preds = %1871, %1263
  %1274 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #6
  br i1 %1274, label %1276, label %1275

1275:                                             ; preds = %1273
  store i32 32, ptr %5, align 4
  br label %1873

1276:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #6
  %1277 = call noundef nonnull align 8 dereferenceable(304) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #6
  store ptr %1277, ptr %97, align 8, !tbaa !5
  %1278 = load ptr, ptr %97, align 8, !tbaa !5
  %1279 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1278, i32 0, i32 4
  %1280 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1279)
  br i1 %1280, label %1281, label %1291

1281:                                             ; preds = %1276
  %1282 = load ptr, ptr %97, align 8, !tbaa !5
  %1283 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1282, i32 0, i32 4
  %1284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1283) #6
  %1285 = load i64, ptr %1284, align 8, !tbaa !35
  %1286 = load ptr, ptr %3, align 8, !tbaa !5
  %1287 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1286, i32 0, i32 12
  %1288 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1287) #6
  %1289 = icmp uge i64 %1285, %1288
  br i1 %1289, label %1290, label %1291

1290:                                             ; preds = %1281
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1868

1291:                                             ; preds = %1281, %1276
  %1292 = load ptr, ptr %97, align 8, !tbaa !5
  %1293 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1292, i32 0, i32 5
  %1294 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %1293) #6
  br i1 %1294, label %1346, label %1295

1295:                                             ; preds = %1291
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %98, ptr align 8 @_ZN8fastgltf10extensionsL22KHR_materials_variantsE, i64 16, i1 false), !tbaa.struct !69
  %1296 = getelementptr inbounds { i64, ptr }, ptr %98, i32 0, i32 0
  %1297 = load i64, ptr %1296, align 8
  %1298 = getelementptr inbounds { i64, ptr }, ptr %98, i32 0, i32 1
  %1299 = load ptr, ptr %1298, align 8
  %1300 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1297, ptr %1299)
  br i1 %1300, label %1302, label %1301

1301:                                             ; preds = %1295
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1868

1302:                                             ; preds = %1295
  %1303 = load ptr, ptr %97, align 8, !tbaa !5
  %1304 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1303, i32 0, i32 5
  %1305 = call noundef i64 @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1304) #6
  %1306 = load ptr, ptr %3, align 8, !tbaa !5
  %1307 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1306, i32 0, i32 19
  %1308 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1307) #6
  %1309 = icmp ne i64 %1305, %1308
  br i1 %1309, label %1310, label %1311

1310:                                             ; preds = %1302
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1868

1311:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #6
  %1312 = load ptr, ptr %97, align 8, !tbaa !5
  %1313 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1312, i32 0, i32 5
  store ptr %1313, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #6
  %1314 = load ptr, ptr %99, align 8, !tbaa !5
  %1315 = call ptr @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1314) #6
  %1316 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.374", ptr %100, i32 0, i32 0
  store ptr %1315, ptr %1316, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #6
  %1317 = load ptr, ptr %99, align 8, !tbaa !5
  %1318 = call ptr @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1317) #6
  %1319 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.374", ptr %101, i32 0, i32 0
  store ptr %1318, ptr %1319, align 8
  br label %1320

1320:                                             ; preds = %1341, %1311
  %1321 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %101) #6
  br i1 %1321, label %1323, label %1322

1322:                                             ; preds = %1320
  store i32 34, ptr %5, align 4
  br label %1343

1323:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #6
  %1324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #6
  store ptr %1324, ptr %102, align 8, !tbaa !5
  %1325 = load ptr, ptr %102, align 8, !tbaa !5
  %1326 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1325)
  br i1 %1326, label %1328, label %1327

1327:                                             ; preds = %1323
  store i32 35, ptr %5, align 4
  br label %1338

1328:                                             ; preds = %1323
  %1329 = load ptr, ptr %102, align 8, !tbaa !5
  %1330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1329)
  %1331 = load i64, ptr %1330, align 8, !tbaa !35
  %1332 = load ptr, ptr %3, align 8, !tbaa !5
  %1333 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1332, i32 0, i32 12
  %1334 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1333) #6
  %1335 = icmp uge i64 %1331, %1334
  br i1 %1335, label %1336, label %1337

1336:                                             ; preds = %1328
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1338

1337:                                             ; preds = %1328
  store i32 0, ptr %5, align 4
  br label %1338

1338:                                             ; preds = %1337, %1336, %1327
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #6
  %1339 = load i32, ptr %5, align 4
  switch i32 %1339, label %1343 [
    i32 0, label %1340
    i32 35, label %1341
  ]

1340:                                             ; preds = %1338
  br label %1341

1341:                                             ; preds = %1340, %1338
  %1342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #6
  br label %1320

1343:                                             ; preds = %1338, %1322
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #6
  %1344 = load i32, ptr %5, align 4
  switch i32 %1344, label %1868 [
    i32 34, label %1345
  ]

1345:                                             ; preds = %1343
  br label %1346

1346:                                             ; preds = %1345, %1291
  %1347 = load ptr, ptr %97, align 8, !tbaa !5
  %1348 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1347, i32 0, i32 3
  %1349 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1348)
  br i1 %1349, label %1350, label %1391

1350:                                             ; preds = %1346
  %1351 = load ptr, ptr %97, align 8, !tbaa !5
  %1352 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1351, i32 0, i32 3
  %1353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1352) #6
  %1354 = load i64, ptr %1353, align 8, !tbaa !35
  %1355 = load ptr, ptr %3, align 8, !tbaa !5
  %1356 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1355, i32 0, i32 5
  %1357 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1356) #6
  %1358 = icmp uge i64 %1354, %1357
  br i1 %1358, label %1359, label %1360

1359:                                             ; preds = %1350
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1868

1360:                                             ; preds = %1350
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #6
  %1361 = load ptr, ptr %3, align 8, !tbaa !5
  %1362 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1361, i32 0, i32 5
  %1363 = load ptr, ptr %97, align 8, !tbaa !5
  %1364 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1363, i32 0, i32 3
  %1365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1364) #6
  %1366 = load i64, ptr %1365, align 8, !tbaa !35
  %1367 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1362, i64 noundef %1366) #6
  store ptr %1367, ptr %103, align 8, !tbaa !5
  %1368 = load ptr, ptr %103, align 8, !tbaa !5
  %1369 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1368, i32 0, i32 8
  %1370 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1369)
  br i1 %1370, label %1371, label %1387

1371:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #6
  %1372 = load ptr, ptr %3, align 8, !tbaa !5
  %1373 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1372, i32 0, i32 8
  %1374 = load ptr, ptr %103, align 8, !tbaa !5
  %1375 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1374, i32 0, i32 8
  %1376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %1375) #6
  %1377 = load i64, ptr %1376, align 8, !tbaa !35
  %1378 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1373, i64 noundef %1377) #6
  store ptr %1378, ptr %104, align 8, !tbaa !5
  %1379 = load ptr, ptr %104, align 8, !tbaa !5
  %1380 = getelementptr inbounds %"struct.fastgltf::BufferView", ptr %1379, i32 0, i32 3
  %1381 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1380)
  br i1 %1381, label %1382, label %1383

1382:                                             ; preds = %1371
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1384

1383:                                             ; preds = %1371
  store i32 0, ptr %5, align 4
  br label %1384

1384:                                             ; preds = %1383, %1382
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #6
  %1385 = load i32, ptr %5, align 4
  switch i32 %1385, label %1388 [
    i32 0, label %1386
  ]

1386:                                             ; preds = %1384
  br label %1387

1387:                                             ; preds = %1386, %1360
  store i32 0, ptr %5, align 4
  br label %1388

1388:                                             ; preds = %1387, %1384
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #6
  %1389 = load i32, ptr %5, align 4
  switch i32 %1389, label %1868 [
    i32 0, label %1390
  ]

1390:                                             ; preds = %1388
  br label %1391

1391:                                             ; preds = %1390, %1346
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #6
  %1392 = load ptr, ptr %97, align 8, !tbaa !5
  %1393 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %1392, i32 0, i32 0
  store ptr %1393, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #6
  %1394 = load ptr, ptr %105, align 8, !tbaa !5
  %1395 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(224) %1394) #6
  store ptr %1395, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #6
  %1396 = load ptr, ptr %105, align 8, !tbaa !5
  %1397 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %1396) #6
  store ptr %1397, ptr %107, align 8, !tbaa !5
  br label %1398

1398:                                             ; preds = %1862, %1391
  %1399 = load ptr, ptr %106, align 8, !tbaa !5
  %1400 = load ptr, ptr %107, align 8, !tbaa !5
  %1401 = icmp ne ptr %1399, %1400
  br i1 %1401, label %1403, label %1402

1402:                                             ; preds = %1398
  store i32 36, ptr %5, align 4
  br label %1865

1403:                                             ; preds = %1398
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #6
  %1404 = load ptr, ptr %106, align 8, !tbaa !5
  store ptr %1404, ptr %108, align 8, !tbaa !5
  %1405 = load ptr, ptr %3, align 8, !tbaa !5
  %1406 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1405, i32 0, i32 5
  %1407 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1406) #6
  %1408 = load ptr, ptr %108, align 8, !tbaa !5
  %1409 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1408, i32 0, i32 1
  %1410 = load i64, ptr %1409, align 8, !tbaa !162
  %1411 = icmp ule i64 %1407, %1410
  br i1 %1411, label %1412, label %1413

1412:                                             ; preds = %1403
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1859

1413:                                             ; preds = %1403
  %1414 = load ptr, ptr %108, align 8, !tbaa !5
  %1415 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1414, i32 0, i32 0
  %1416 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1415) #6
  %1417 = getelementptr inbounds { i64, ptr }, ptr %109, i32 0, i32 0
  %1418 = extractvalue { i64, ptr } %1416, 0
  store i64 %1418, ptr %1417, align 8
  %1419 = getelementptr inbounds { i64, ptr }, ptr %109, i32 0, i32 1
  %1420 = extractvalue { i64, ptr } %1416, 1
  store ptr %1420, ptr %1419, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %110, ptr noundef @.str.23) #6
  %1421 = getelementptr inbounds { i64, ptr }, ptr %109, i32 0, i32 0
  %1422 = load i64, ptr %1421, align 8
  %1423 = getelementptr inbounds { i64, ptr }, ptr %109, i32 0, i32 1
  %1424 = load ptr, ptr %1423, align 8
  %1425 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 0
  %1426 = load i64, ptr %1425, align 8
  %1427 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 1
  %1428 = load ptr, ptr %1427, align 8
  %1429 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1422, ptr %1424, i64 %1426, ptr %1428)
  br i1 %1429, label %1512, label %1430

1430:                                             ; preds = %1413
  %1431 = load ptr, ptr %108, align 8, !tbaa !5
  %1432 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1431, i32 0, i32 0
  %1433 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1432, ptr noundef @.str.22)
  br i1 %1433, label %1434, label %1511

1434:                                             ; preds = %1430
  %1435 = load ptr, ptr %108, align 8, !tbaa !5
  %1436 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1435, i32 0, i32 0
  %1437 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1436, ptr noundef @.str.24)
  br i1 %1437, label %1438, label %1511

1438:                                             ; preds = %1434
  %1439 = load ptr, ptr %108, align 8, !tbaa !5
  %1440 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1439, i32 0, i32 0
  %1441 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1440, ptr noundef @.str.25)
  br i1 %1441, label %1442, label %1511

1442:                                             ; preds = %1438
  %1443 = load ptr, ptr %108, align 8, !tbaa !5
  %1444 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1443, i32 0, i32 0
  %1445 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1444) #6
  %1446 = getelementptr inbounds { i64, ptr }, ptr %111, i32 0, i32 0
  %1447 = extractvalue { i64, ptr } %1445, 0
  store i64 %1447, ptr %1446, align 8
  %1448 = getelementptr inbounds { i64, ptr }, ptr %111, i32 0, i32 1
  %1449 = extractvalue { i64, ptr } %1445, 1
  store ptr %1449, ptr %1448, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %112, ptr noundef @.str.26) #6
  %1450 = getelementptr inbounds { i64, ptr }, ptr %111, i32 0, i32 0
  %1451 = load i64, ptr %1450, align 8
  %1452 = getelementptr inbounds { i64, ptr }, ptr %111, i32 0, i32 1
  %1453 = load ptr, ptr %1452, align 8
  %1454 = getelementptr inbounds { i64, ptr }, ptr %112, i32 0, i32 0
  %1455 = load i64, ptr %1454, align 8
  %1456 = getelementptr inbounds { i64, ptr }, ptr %112, i32 0, i32 1
  %1457 = load ptr, ptr %1456, align 8
  %1458 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1451, ptr %1453, i64 %1455, ptr %1457)
  br i1 %1458, label %1511, label %1459

1459:                                             ; preds = %1442
  %1460 = load ptr, ptr %108, align 8, !tbaa !5
  %1461 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1460, i32 0, i32 0
  %1462 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1461) #6
  %1463 = getelementptr inbounds { i64, ptr }, ptr %113, i32 0, i32 0
  %1464 = extractvalue { i64, ptr } %1462, 0
  store i64 %1464, ptr %1463, align 8
  %1465 = getelementptr inbounds { i64, ptr }, ptr %113, i32 0, i32 1
  %1466 = extractvalue { i64, ptr } %1462, 1
  store ptr %1466, ptr %1465, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %114, ptr noundef @.str.27) #6
  %1467 = getelementptr inbounds { i64, ptr }, ptr %113, i32 0, i32 0
  %1468 = load i64, ptr %1467, align 8
  %1469 = getelementptr inbounds { i64, ptr }, ptr %113, i32 0, i32 1
  %1470 = load ptr, ptr %1469, align 8
  %1471 = getelementptr inbounds { i64, ptr }, ptr %114, i32 0, i32 0
  %1472 = load i64, ptr %1471, align 8
  %1473 = getelementptr inbounds { i64, ptr }, ptr %114, i32 0, i32 1
  %1474 = load ptr, ptr %1473, align 8
  %1475 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1468, ptr %1470, i64 %1472, ptr %1474)
  br i1 %1475, label %1511, label %1476

1476:                                             ; preds = %1459
  %1477 = load ptr, ptr %108, align 8, !tbaa !5
  %1478 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1477, i32 0, i32 0
  %1479 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1478) #6
  %1480 = getelementptr inbounds { i64, ptr }, ptr %115, i32 0, i32 0
  %1481 = extractvalue { i64, ptr } %1479, 0
  store i64 %1481, ptr %1480, align 8
  %1482 = getelementptr inbounds { i64, ptr }, ptr %115, i32 0, i32 1
  %1483 = extractvalue { i64, ptr } %1479, 1
  store ptr %1483, ptr %1482, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %116, ptr noundef @.str.28) #6
  %1484 = getelementptr inbounds { i64, ptr }, ptr %115, i32 0, i32 0
  %1485 = load i64, ptr %1484, align 8
  %1486 = getelementptr inbounds { i64, ptr }, ptr %115, i32 0, i32 1
  %1487 = load ptr, ptr %1486, align 8
  %1488 = getelementptr inbounds { i64, ptr }, ptr %116, i32 0, i32 0
  %1489 = load i64, ptr %1488, align 8
  %1490 = getelementptr inbounds { i64, ptr }, ptr %116, i32 0, i32 1
  %1491 = load ptr, ptr %1490, align 8
  %1492 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1485, ptr %1487, i64 %1489, ptr %1491)
  br i1 %1492, label %1511, label %1493

1493:                                             ; preds = %1476
  %1494 = load ptr, ptr %108, align 8, !tbaa !5
  %1495 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1494, i32 0, i32 0
  %1496 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1495) #6
  %1497 = getelementptr inbounds { i64, ptr }, ptr %117, i32 0, i32 0
  %1498 = extractvalue { i64, ptr } %1496, 0
  store i64 %1498, ptr %1497, align 8
  %1499 = getelementptr inbounds { i64, ptr }, ptr %117, i32 0, i32 1
  %1500 = extractvalue { i64, ptr } %1496, 1
  store ptr %1500, ptr %1499, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef @.str.29) #6
  %1501 = getelementptr inbounds { i64, ptr }, ptr %117, i32 0, i32 0
  %1502 = load i64, ptr %1501, align 8
  %1503 = getelementptr inbounds { i64, ptr }, ptr %117, i32 0, i32 1
  %1504 = load ptr, ptr %1503, align 8
  %1505 = getelementptr inbounds { i64, ptr }, ptr %118, i32 0, i32 0
  %1506 = load i64, ptr %1505, align 8
  %1507 = getelementptr inbounds { i64, ptr }, ptr %118, i32 0, i32 1
  %1508 = load ptr, ptr %1507, align 8
  %1509 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1502, ptr %1504, i64 %1506, ptr %1508)
  br i1 %1509, label %1511, label %1510

1510:                                             ; preds = %1493
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1859

1511:                                             ; preds = %1493, %1476, %1459, %1442, %1438, %1434, %1430
  br label %1512

1512:                                             ; preds = %1511, %1413
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #6
  %1513 = load ptr, ptr %3, align 8, !tbaa !5
  %1514 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1513, i32 0, i32 5
  %1515 = load ptr, ptr %108, align 8, !tbaa !5
  %1516 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1515, i32 0, i32 1
  %1517 = load i64, ptr %1516, align 8, !tbaa !162
  %1518 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1514, i64 noundef %1517) #6
  store ptr %1518, ptr %119, align 8, !tbaa !5
  %1519 = load ptr, ptr %108, align 8, !tbaa !5
  %1520 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1519, i32 0, i32 0
  %1521 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1520, ptr noundef @.str.22)
  br i1 %1521, label %1522, label %1563

1522:                                             ; preds = %1512
  %1523 = load ptr, ptr %119, align 8, !tbaa !5
  %1524 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1523, i32 0, i32 6
  %1525 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %1524) #6
  br i1 %1525, label %1530, label %1526

1526:                                             ; preds = %1522
  %1527 = load ptr, ptr %119, align 8, !tbaa !5
  %1528 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1527, i32 0, i32 7
  %1529 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %1528) #6
  br i1 %1529, label %1530, label %1531

1530:                                             ; preds = %1526, %1522
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1531:                                             ; preds = %1526
  %1532 = load ptr, ptr %119, align 8, !tbaa !5
  %1533 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1532, i32 0, i32 2
  %1534 = load i8, ptr %1533, align 8, !tbaa !13
  %1535 = icmp ne i8 %1534, 27
  br i1 %1535, label %1536, label %1537

1536:                                             ; preds = %1531
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1537:                                             ; preds = %1531
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %120, ptr align 8 @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, i64 16, i1 false), !tbaa.struct !69
  %1538 = getelementptr inbounds { i64, ptr }, ptr %120, i32 0, i32 0
  %1539 = load i64, ptr %1538, align 8
  %1540 = getelementptr inbounds { i64, ptr }, ptr %120, i32 0, i32 1
  %1541 = load ptr, ptr %1540, align 8
  %1542 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1539, ptr %1541)
  br i1 %1542, label %1550, label %1543

1543:                                             ; preds = %1537
  %1544 = load ptr, ptr %119, align 8, !tbaa !5
  %1545 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1544, i32 0, i32 3
  %1546 = load i16, ptr %1545, align 2, !tbaa !33
  %1547 = icmp ne i16 %1546, 29702
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1543
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1549:                                             ; preds = %1543
  br label %1562

1550:                                             ; preds = %1537
  %1551 = load ptr, ptr %119, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1551, i32 0, i32 3
  %1553 = load i16, ptr %1552, align 2, !tbaa !33
  %1554 = icmp eq i16 %1553, -3062
  br i1 %1554, label %1560, label %1555

1555:                                             ; preds = %1550
  %1556 = load ptr, ptr %119, align 8, !tbaa !5
  %1557 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1556, i32 0, i32 3
  %1558 = load i16, ptr %1557, align 2, !tbaa !33
  %1559 = icmp eq i16 %1558, 29701
  br i1 %1559, label %1560, label %1561

1560:                                             ; preds = %1555, %1550
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1561:                                             ; preds = %1555
  br label %1562

1562:                                             ; preds = %1561, %1549
  br label %1855

1563:                                             ; preds = %1512
  %1564 = load ptr, ptr %108, align 8, !tbaa !5
  %1565 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1564, i32 0, i32 0
  %1566 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1565, ptr noundef @.str.24)
  br i1 %1566, label %1567, label %1604

1567:                                             ; preds = %1563
  %1568 = load ptr, ptr %119, align 8, !tbaa !5
  %1569 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1568, i32 0, i32 2
  %1570 = load i8, ptr %1569, align 8, !tbaa !13
  %1571 = icmp ne i8 %1570, 27
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1567
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1573:                                             ; preds = %1567
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %121, ptr align 8 @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, i64 16, i1 false), !tbaa.struct !69
  %1574 = getelementptr inbounds { i64, ptr }, ptr %121, i32 0, i32 0
  %1575 = load i64, ptr %1574, align 8
  %1576 = getelementptr inbounds { i64, ptr }, ptr %121, i32 0, i32 1
  %1577 = load ptr, ptr %1576, align 8
  %1578 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1575, ptr %1577)
  br i1 %1578, label %1586, label %1579

1579:                                             ; preds = %1573
  %1580 = load ptr, ptr %119, align 8, !tbaa !5
  %1581 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1580, i32 0, i32 3
  %1582 = load i16, ptr %1581, align 2, !tbaa !33
  %1583 = icmp ne i16 %1582, 29702
  br i1 %1583, label %1584, label %1585

1584:                                             ; preds = %1579
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1585:                                             ; preds = %1579
  br label %1603

1586:                                             ; preds = %1573
  %1587 = load ptr, ptr %119, align 8, !tbaa !5
  %1588 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1587, i32 0, i32 3
  %1589 = load i16, ptr %1588, align 2, !tbaa !33
  %1590 = icmp ne i16 %1589, 29702
  br i1 %1590, label %1591, label %1602

1591:                                             ; preds = %1586
  %1592 = load ptr, ptr %119, align 8, !tbaa !5
  %1593 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1592, i32 0, i32 3
  %1594 = load i16, ptr %1593, align 2, !tbaa !33
  %1595 = icmp ne i16 %1594, 13314
  br i1 %1595, label %1596, label %1602

1596:                                             ; preds = %1591
  %1597 = load ptr, ptr %119, align 8, !tbaa !5
  %1598 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1597, i32 0, i32 3
  %1599 = load i16, ptr %1598, align 2, !tbaa !33
  %1600 = icmp ne i16 %1599, 5120
  br i1 %1600, label %1601, label %1602

1601:                                             ; preds = %1596
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1602:                                             ; preds = %1596, %1591, %1586
  br label %1603

1603:                                             ; preds = %1602, %1585
  br label %1854

1604:                                             ; preds = %1563
  %1605 = load ptr, ptr %108, align 8, !tbaa !5
  %1606 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1605, i32 0, i32 0
  %1607 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %1606, ptr noundef @.str.25)
  br i1 %1607, label %1608, label %1645

1608:                                             ; preds = %1604
  %1609 = load ptr, ptr %119, align 8, !tbaa !5
  %1610 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1609, i32 0, i32 2
  %1611 = load i8, ptr %1610, align 8, !tbaa !13
  %1612 = icmp ne i8 %1611, 36
  br i1 %1612, label %1613, label %1614

1613:                                             ; preds = %1608
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1614:                                             ; preds = %1608
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %122, ptr align 8 @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, i64 16, i1 false), !tbaa.struct !69
  %1615 = getelementptr inbounds { i64, ptr }, ptr %122, i32 0, i32 0
  %1616 = load i64, ptr %1615, align 8
  %1617 = getelementptr inbounds { i64, ptr }, ptr %122, i32 0, i32 1
  %1618 = load ptr, ptr %1617, align 8
  %1619 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1616, ptr %1618)
  br i1 %1619, label %1627, label %1620

1620:                                             ; preds = %1614
  %1621 = load ptr, ptr %119, align 8, !tbaa !5
  %1622 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1621, i32 0, i32 3
  %1623 = load i16, ptr %1622, align 2, !tbaa !33
  %1624 = icmp ne i16 %1623, 29702
  br i1 %1624, label %1625, label %1626

1625:                                             ; preds = %1620
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1626:                                             ; preds = %1620
  br label %1644

1627:                                             ; preds = %1614
  %1628 = load ptr, ptr %119, align 8, !tbaa !5
  %1629 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1628, i32 0, i32 3
  %1630 = load i16, ptr %1629, align 2, !tbaa !33
  %1631 = icmp ne i16 %1630, 29702
  br i1 %1631, label %1632, label %1643

1632:                                             ; preds = %1627
  %1633 = load ptr, ptr %119, align 8, !tbaa !5
  %1634 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1633, i32 0, i32 3
  %1635 = load i16, ptr %1634, align 2, !tbaa !33
  %1636 = icmp ne i16 %1635, 13314
  br i1 %1636, label %1637, label %1643

1637:                                             ; preds = %1632
  %1638 = load ptr, ptr %119, align 8, !tbaa !5
  %1639 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1638, i32 0, i32 3
  %1640 = load i16, ptr %1639, align 2, !tbaa !33
  %1641 = icmp ne i16 %1640, 5120
  br i1 %1641, label %1642, label %1643

1642:                                             ; preds = %1637
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1643:                                             ; preds = %1637, %1632, %1627
  br label %1644

1644:                                             ; preds = %1643, %1626
  br label %1853

1645:                                             ; preds = %1604
  %1646 = load ptr, ptr %108, align 8, !tbaa !5
  %1647 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1646, i32 0, i32 0
  %1648 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1647) #6
  %1649 = getelementptr inbounds { i64, ptr }, ptr %123, i32 0, i32 0
  %1650 = extractvalue { i64, ptr } %1648, 0
  store i64 %1650, ptr %1649, align 8
  %1651 = getelementptr inbounds { i64, ptr }, ptr %123, i32 0, i32 1
  %1652 = extractvalue { i64, ptr } %1648, 1
  store ptr %1652, ptr %1651, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %124, ptr noundef @.str.26) #6
  %1653 = getelementptr inbounds { i64, ptr }, ptr %123, i32 0, i32 0
  %1654 = load i64, ptr %1653, align 8
  %1655 = getelementptr inbounds { i64, ptr }, ptr %123, i32 0, i32 1
  %1656 = load ptr, ptr %1655, align 8
  %1657 = getelementptr inbounds { i64, ptr }, ptr %124, i32 0, i32 0
  %1658 = load i64, ptr %1657, align 8
  %1659 = getelementptr inbounds { i64, ptr }, ptr %124, i32 0, i32 1
  %1660 = load ptr, ptr %1659, align 8
  %1661 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1654, ptr %1656, i64 %1658, ptr %1660)
  br i1 %1661, label %1662, label %1704

1662:                                             ; preds = %1645
  %1663 = load ptr, ptr %119, align 8, !tbaa !5
  %1664 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1663, i32 0, i32 2
  %1665 = load i8, ptr %1664, align 8, !tbaa !13
  %1666 = icmp ne i8 %1665, 18
  br i1 %1666, label %1667, label %1668

1667:                                             ; preds = %1662
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1668:                                             ; preds = %1662
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %125, ptr align 8 @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, i64 16, i1 false), !tbaa.struct !69
  %1669 = getelementptr inbounds { i64, ptr }, ptr %125, i32 0, i32 0
  %1670 = load i64, ptr %1669, align 8
  %1671 = getelementptr inbounds { i64, ptr }, ptr %125, i32 0, i32 1
  %1672 = load ptr, ptr %1671, align 8
  %1673 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %1670, ptr %1672)
  br i1 %1673, label %1691, label %1674

1674:                                             ; preds = %1668
  %1675 = load ptr, ptr %119, align 8, !tbaa !5
  %1676 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1675, i32 0, i32 3
  %1677 = load i16, ptr %1676, align 2, !tbaa !33
  %1678 = icmp ne i16 %1677, 29702
  br i1 %1678, label %1679, label %1690

1679:                                             ; preds = %1674
  %1680 = load ptr, ptr %119, align 8, !tbaa !5
  %1681 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1680, i32 0, i32 3
  %1682 = load i16, ptr %1681, align 2, !tbaa !33
  %1683 = icmp ne i16 %1682, 5121
  br i1 %1683, label %1684, label %1690

1684:                                             ; preds = %1679
  %1685 = load ptr, ptr %119, align 8, !tbaa !5
  %1686 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1685, i32 0, i32 3
  %1687 = load i16, ptr %1686, align 2, !tbaa !33
  %1688 = icmp ne i16 %1687, 13315
  br i1 %1688, label %1689, label %1690

1689:                                             ; preds = %1684
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1690:                                             ; preds = %1684, %1679, %1674
  br label %1703

1691:                                             ; preds = %1668
  %1692 = load ptr, ptr %119, align 8, !tbaa !5
  %1693 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1692, i32 0, i32 3
  %1694 = load i16, ptr %1693, align 2, !tbaa !33
  %1695 = icmp eq i16 %1694, -3062
  br i1 %1695, label %1701, label %1696

1696:                                             ; preds = %1691
  %1697 = load ptr, ptr %119, align 8, !tbaa !5
  %1698 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1697, i32 0, i32 3
  %1699 = load i16, ptr %1698, align 2, !tbaa !33
  %1700 = icmp eq i16 %1699, 29701
  br i1 %1700, label %1701, label %1702

1701:                                             ; preds = %1696, %1691
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1702:                                             ; preds = %1696
  br label %1703

1703:                                             ; preds = %1702, %1690
  br label %1852

1704:                                             ; preds = %1645
  %1705 = load ptr, ptr %108, align 8, !tbaa !5
  %1706 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1705, i32 0, i32 0
  %1707 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1706) #6
  %1708 = getelementptr inbounds { i64, ptr }, ptr %126, i32 0, i32 0
  %1709 = extractvalue { i64, ptr } %1707, 0
  store i64 %1709, ptr %1708, align 8
  %1710 = getelementptr inbounds { i64, ptr }, ptr %126, i32 0, i32 1
  %1711 = extractvalue { i64, ptr } %1707, 1
  store ptr %1711, ptr %1710, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef @.str.27) #6
  %1712 = getelementptr inbounds { i64, ptr }, ptr %126, i32 0, i32 0
  %1713 = load i64, ptr %1712, align 8
  %1714 = getelementptr inbounds { i64, ptr }, ptr %126, i32 0, i32 1
  %1715 = load ptr, ptr %1714, align 8
  %1716 = getelementptr inbounds { i64, ptr }, ptr %127, i32 0, i32 0
  %1717 = load i64, ptr %1716, align 8
  %1718 = getelementptr inbounds { i64, ptr }, ptr %127, i32 0, i32 1
  %1719 = load ptr, ptr %1718, align 8
  %1720 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1713, ptr %1715, i64 %1717, ptr %1719)
  br i1 %1720, label %1721, label %1749

1721:                                             ; preds = %1704
  %1722 = load ptr, ptr %119, align 8, !tbaa !5
  %1723 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1722, i32 0, i32 2
  %1724 = load i8, ptr %1723, align 8, !tbaa !13
  %1725 = icmp ne i8 %1724, 27
  br i1 %1725, label %1726, label %1732

1726:                                             ; preds = %1721
  %1727 = load ptr, ptr %119, align 8, !tbaa !5
  %1728 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1727, i32 0, i32 2
  %1729 = load i8, ptr %1728, align 8, !tbaa !13
  %1730 = icmp ne i8 %1729, 36
  br i1 %1730, label %1731, label %1732

1731:                                             ; preds = %1726
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1732:                                             ; preds = %1726, %1721
  %1733 = load ptr, ptr %119, align 8, !tbaa !5
  %1734 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1733, i32 0, i32 3
  %1735 = load i16, ptr %1734, align 2, !tbaa !33
  %1736 = icmp ne i16 %1735, 29702
  br i1 %1736, label %1737, label %1748

1737:                                             ; preds = %1732
  %1738 = load ptr, ptr %119, align 8, !tbaa !5
  %1739 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1738, i32 0, i32 3
  %1740 = load i16, ptr %1739, align 2, !tbaa !33
  %1741 = icmp ne i16 %1740, 5121
  br i1 %1741, label %1742, label %1748

1742:                                             ; preds = %1737
  %1743 = load ptr, ptr %119, align 8, !tbaa !5
  %1744 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1743, i32 0, i32 3
  %1745 = load i16, ptr %1744, align 2, !tbaa !33
  %1746 = icmp ne i16 %1745, 13315
  br i1 %1746, label %1747, label %1748

1747:                                             ; preds = %1742
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1748:                                             ; preds = %1742, %1737, %1732
  br label %1851

1749:                                             ; preds = %1704
  %1750 = load ptr, ptr %108, align 8, !tbaa !5
  %1751 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1750, i32 0, i32 0
  %1752 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1751) #6
  %1753 = getelementptr inbounds { i64, ptr }, ptr %128, i32 0, i32 0
  %1754 = extractvalue { i64, ptr } %1752, 0
  store i64 %1754, ptr %1753, align 8
  %1755 = getelementptr inbounds { i64, ptr }, ptr %128, i32 0, i32 1
  %1756 = extractvalue { i64, ptr } %1752, 1
  store ptr %1756, ptr %1755, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef @.str.28) #6
  %1757 = getelementptr inbounds { i64, ptr }, ptr %128, i32 0, i32 0
  %1758 = load i64, ptr %1757, align 8
  %1759 = getelementptr inbounds { i64, ptr }, ptr %128, i32 0, i32 1
  %1760 = load ptr, ptr %1759, align 8
  %1761 = getelementptr inbounds { i64, ptr }, ptr %129, i32 0, i32 0
  %1762 = load i64, ptr %1761, align 8
  %1763 = getelementptr inbounds { i64, ptr }, ptr %129, i32 0, i32 1
  %1764 = load ptr, ptr %1763, align 8
  %1765 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1758, ptr %1760, i64 %1762, ptr %1764)
  br i1 %1765, label %1766, label %1784

1766:                                             ; preds = %1749
  %1767 = load ptr, ptr %119, align 8, !tbaa !5
  %1768 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1767, i32 0, i32 2
  %1769 = load i8, ptr %1768, align 8, !tbaa !13
  %1770 = icmp ne i8 %1769, 36
  br i1 %1770, label %1771, label %1772

1771:                                             ; preds = %1766
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1772:                                             ; preds = %1766
  %1773 = load ptr, ptr %119, align 8, !tbaa !5
  %1774 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1773, i32 0, i32 3
  %1775 = load i16, ptr %1774, align 2, !tbaa !33
  %1776 = icmp ne i16 %1775, 5121
  br i1 %1776, label %1777, label %1783

1777:                                             ; preds = %1772
  %1778 = load ptr, ptr %119, align 8, !tbaa !5
  %1779 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1778, i32 0, i32 3
  %1780 = load i16, ptr %1779, align 2, !tbaa !33
  %1781 = icmp ne i16 %1780, 13315
  br i1 %1781, label %1782, label %1783

1782:                                             ; preds = %1777
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1783:                                             ; preds = %1777, %1772
  br label %1850

1784:                                             ; preds = %1749
  %1785 = load ptr, ptr %108, align 8, !tbaa !5
  %1786 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1785, i32 0, i32 0
  %1787 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1786) #6
  %1788 = getelementptr inbounds { i64, ptr }, ptr %130, i32 0, i32 0
  %1789 = extractvalue { i64, ptr } %1787, 0
  store i64 %1789, ptr %1788, align 8
  %1790 = getelementptr inbounds { i64, ptr }, ptr %130, i32 0, i32 1
  %1791 = extractvalue { i64, ptr } %1787, 1
  store ptr %1791, ptr %1790, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr noundef @.str.29) #6
  %1792 = getelementptr inbounds { i64, ptr }, ptr %130, i32 0, i32 0
  %1793 = load i64, ptr %1792, align 8
  %1794 = getelementptr inbounds { i64, ptr }, ptr %130, i32 0, i32 1
  %1795 = load ptr, ptr %1794, align 8
  %1796 = getelementptr inbounds { i64, ptr }, ptr %131, i32 0, i32 0
  %1797 = load i64, ptr %1796, align 8
  %1798 = getelementptr inbounds { i64, ptr }, ptr %131, i32 0, i32 1
  %1799 = load ptr, ptr %1798, align 8
  %1800 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1793, ptr %1795, i64 %1797, ptr %1799)
  br i1 %1800, label %1801, label %1824

1801:                                             ; preds = %1784
  %1802 = load ptr, ptr %119, align 8, !tbaa !5
  %1803 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1802, i32 0, i32 2
  %1804 = load i8, ptr %1803, align 8, !tbaa !13
  %1805 = icmp ne i8 %1804, 36
  br i1 %1805, label %1806, label %1807

1806:                                             ; preds = %1801
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1807:                                             ; preds = %1801
  %1808 = load ptr, ptr %119, align 8, !tbaa !5
  %1809 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1808, i32 0, i32 3
  %1810 = load i16, ptr %1809, align 2, !tbaa !33
  %1811 = icmp ne i16 %1810, 29702
  br i1 %1811, label %1812, label %1823

1812:                                             ; preds = %1807
  %1813 = load ptr, ptr %119, align 8, !tbaa !5
  %1814 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1813, i32 0, i32 3
  %1815 = load i16, ptr %1814, align 2, !tbaa !33
  %1816 = icmp ne i16 %1815, 5121
  br i1 %1816, label %1817, label %1823

1817:                                             ; preds = %1812
  %1818 = load ptr, ptr %119, align 8, !tbaa !5
  %1819 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1818, i32 0, i32 3
  %1820 = load i16, ptr %1819, align 2, !tbaa !33
  %1821 = icmp ne i16 %1820, 13315
  br i1 %1821, label %1822, label %1823

1822:                                             ; preds = %1817
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1823:                                             ; preds = %1817, %1812, %1807
  br label %1849

1824:                                             ; preds = %1784
  %1825 = load ptr, ptr %108, align 8, !tbaa !5
  %1826 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1825, i32 0, i32 0
  %1827 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1826) #6
  %1828 = getelementptr inbounds { i64, ptr }, ptr %132, i32 0, i32 0
  %1829 = extractvalue { i64, ptr } %1827, 0
  store i64 %1829, ptr %1828, align 8
  %1830 = getelementptr inbounds { i64, ptr }, ptr %132, i32 0, i32 1
  %1831 = extractvalue { i64, ptr } %1827, 1
  store ptr %1831, ptr %1830, align 8
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef @.str.23) #6
  %1832 = getelementptr inbounds { i64, ptr }, ptr %132, i32 0, i32 0
  %1833 = load i64, ptr %1832, align 8
  %1834 = getelementptr inbounds { i64, ptr }, ptr %132, i32 0, i32 1
  %1835 = load ptr, ptr %1834, align 8
  %1836 = getelementptr inbounds { i64, ptr }, ptr %133, i32 0, i32 0
  %1837 = load i64, ptr %1836, align 8
  %1838 = getelementptr inbounds { i64, ptr }, ptr %133, i32 0, i32 1
  %1839 = load ptr, ptr %1838, align 8
  %1840 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %1833, ptr %1835, i64 %1837, ptr %1839)
  br i1 %1840, label %1841, label %1848

1841:                                             ; preds = %1824
  %1842 = load ptr, ptr %119, align 8, !tbaa !5
  %1843 = getelementptr inbounds %"struct.fastgltf::Accessor", ptr %1842, i32 0, i32 3
  %1844 = load i16, ptr %1843, align 2, !tbaa !33
  %1845 = icmp eq i16 %1844, 29701
  br i1 %1845, label %1846, label %1847

1846:                                             ; preds = %1841
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %1856

1847:                                             ; preds = %1841
  br label %1848

1848:                                             ; preds = %1847, %1824
  br label %1849

1849:                                             ; preds = %1848, %1823
  br label %1850

1850:                                             ; preds = %1849, %1783
  br label %1851

1851:                                             ; preds = %1850, %1748
  br label %1852

1852:                                             ; preds = %1851, %1703
  br label %1853

1853:                                             ; preds = %1852, %1644
  br label %1854

1854:                                             ; preds = %1853, %1603
  br label %1855

1855:                                             ; preds = %1854, %1562
  store i32 0, ptr %5, align 4
  br label %1856

1856:                                             ; preds = %1855, %1846, %1822, %1806, %1782, %1771, %1747, %1731, %1701, %1689, %1667, %1642, %1625, %1613, %1601, %1584, %1572, %1560, %1548, %1536, %1530
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #6
  %1857 = load i32, ptr %5, align 4
  switch i32 %1857, label %1859 [
    i32 0, label %1858
  ]

1858:                                             ; preds = %1856
  store i32 0, ptr %5, align 4
  br label %1859

1859:                                             ; preds = %1858, %1856, %1510, %1412
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #6
  %1860 = load i32, ptr %5, align 4
  switch i32 %1860, label %1865 [
    i32 0, label %1861
  ]

1861:                                             ; preds = %1859
  br label %1862

1862:                                             ; preds = %1861
  %1863 = load ptr, ptr %106, align 8, !tbaa !5
  %1864 = getelementptr inbounds %"struct.fastgltf::Attribute", ptr %1863, i32 1
  store ptr %1864, ptr %106, align 8, !tbaa !5
  br label %1398

1865:                                             ; preds = %1859, %1402
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #6
  %1866 = load i32, ptr %5, align 4
  switch i32 %1866, label %1868 [
    i32 36, label %1867
  ]

1867:                                             ; preds = %1865
  store i32 0, ptr %5, align 4
  br label %1868

1868:                                             ; preds = %1867, %1865, %1388, %1359, %1343, %1310, %1301, %1290
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  %1869 = load i32, ptr %5, align 4
  switch i32 %1869, label %1873 [
    i32 0, label %1870
  ]

1870:                                             ; preds = %1868
  br label %1871

1871:                                             ; preds = %1870
  %1872 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #6
  br label %1273

1873:                                             ; preds = %1868, %1275
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #6
  %1874 = load i32, ptr %5, align 4
  switch i32 %1874, label %1876 [
    i32 32, label %1875
  ]

1875:                                             ; preds = %1873
  store i32 0, ptr %5, align 4
  br label %1876

1876:                                             ; preds = %1875, %1873
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #6
  %1877 = load i32, ptr %5, align 4
  switch i32 %1877, label %1881 [
    i32 0, label %1878
  ]

1878:                                             ; preds = %1876
  br label %1879

1879:                                             ; preds = %1878
  %1880 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #6
  br label %1260

1881:                                             ; preds = %1876, %1262
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #6
  %1882 = load i32, ptr %5, align 4
  switch i32 %1882, label %2369 [
    i32 30, label %1883
  ]

1883:                                             ; preds = %1881
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #6
  %1884 = load ptr, ptr %3, align 8, !tbaa !5
  %1885 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1884, i32 0, i32 14
  store ptr %1885, ptr %134, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #6
  %1886 = load ptr, ptr %134, align 8, !tbaa !5
  %1887 = call ptr @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1886) #6
  %1888 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.375", ptr %135, i32 0, i32 0
  store ptr %1887, ptr %1888, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #6
  %1889 = load ptr, ptr %134, align 8, !tbaa !5
  %1890 = call ptr @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1889) #6
  %1891 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.375", ptr %136, i32 0, i32 0
  store ptr %1890, ptr %1891, align 8
  br label %1892

1892:                                             ; preds = %2089, %1883
  %1893 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %136) #6
  br i1 %1893, label %1895, label %1894

1894:                                             ; preds = %1892
  store i32 38, ptr %5, align 4
  br label %2091

1895:                                             ; preds = %1892
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #6
  %1896 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %135) #6
  store ptr %1896, ptr %137, align 8, !tbaa !5
  %1897 = load ptr, ptr %137, align 8, !tbaa !5
  %1898 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1897, i32 0, i32 2
  %1899 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1898)
  br i1 %1899, label %1900, label %1910

1900:                                             ; preds = %1895
  %1901 = load ptr, ptr %3, align 8, !tbaa !5
  %1902 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1901, i32 0, i32 9
  %1903 = call noundef i64 @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1902) #6
  %1904 = load ptr, ptr %137, align 8, !tbaa !5
  %1905 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1904, i32 0, i32 2
  %1906 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1905)
  %1907 = load i64, ptr %1906, align 8, !tbaa !35
  %1908 = icmp ule i64 %1903, %1907
  br i1 %1908, label %1909, label %1910

1909:                                             ; preds = %1900
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2086

1910:                                             ; preds = %1900, %1895
  %1911 = load ptr, ptr %137, align 8, !tbaa !5
  %1912 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1911, i32 0, i32 1
  %1913 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1912)
  br i1 %1913, label %1914, label %1924

1914:                                             ; preds = %1910
  %1915 = load ptr, ptr %3, align 8, !tbaa !5
  %1916 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1915, i32 0, i32 17
  %1917 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1916) #6
  %1918 = load ptr, ptr %137, align 8, !tbaa !5
  %1919 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1918, i32 0, i32 1
  %1920 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1919)
  %1921 = load i64, ptr %1920, align 8, !tbaa !35
  %1922 = icmp ule i64 %1917, %1921
  br i1 %1922, label %1923, label %1924

1923:                                             ; preds = %1914
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2086

1924:                                             ; preds = %1914, %1910
  %1925 = load ptr, ptr %137, align 8, !tbaa !5
  %1926 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1925, i32 0, i32 0
  %1927 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1926)
  br i1 %1927, label %1928, label %1938

1928:                                             ; preds = %1924
  %1929 = load ptr, ptr %3, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1929, i32 0, i32 13
  %1931 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1930) #6
  %1932 = load ptr, ptr %137, align 8, !tbaa !5
  %1933 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1932, i32 0, i32 0
  %1934 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %1933)
  %1935 = load i64, ptr %1934, align 8, !tbaa !35
  %1936 = icmp ule i64 %1931, %1935
  br i1 %1936, label %1937, label %1938

1937:                                             ; preds = %1928
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2086

1938:                                             ; preds = %1928, %1924
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #6
  %1939 = load ptr, ptr %137, align 8, !tbaa !5
  %1940 = getelementptr inbounds %"struct.fastgltf::Node", ptr %1939, i32 0, i32 6
  %1941 = call noundef ptr @_ZSt6get_ifIN8fastgltf3TRSEJS1_NS0_4math3matIfLm4ELm4EEEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef %1940) #6
  store ptr %1941, ptr %138, align 8, !tbaa !5
  %1942 = load ptr, ptr %138, align 8, !tbaa !5
  %1943 = icmp ne ptr %1942, null
  br i1 %1943, label %1944, label %2005

1944:                                             ; preds = %1938
  %1945 = load ptr, ptr %138, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1945, i32 0, i32 1
  %1947 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1xEv(ptr noundef nonnull align 4 dereferenceable(16) %1946) #6
  %1948 = load float, ptr %1947, align 4, !tbaa !79
  %1949 = fpext float %1948 to double
  %1950 = fcmp ogt double %1949, 1.000000e+00
  br i1 %1950, label %1958, label %1951

1951:                                             ; preds = %1944
  %1952 = load ptr, ptr %138, align 8, !tbaa !5
  %1953 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1952, i32 0, i32 1
  %1954 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1xEv(ptr noundef nonnull align 4 dereferenceable(16) %1953) #6
  %1955 = load float, ptr %1954, align 4, !tbaa !79
  %1956 = fpext float %1955 to double
  %1957 = fcmp olt double %1956, -1.000000e+00
  br i1 %1957, label %1958, label %1959

1958:                                             ; preds = %1951, %1944
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2006

1959:                                             ; preds = %1951
  %1960 = load ptr, ptr %138, align 8, !tbaa !5
  %1961 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1960, i32 0, i32 1
  %1962 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1yEv(ptr noundef nonnull align 4 dereferenceable(16) %1961) #6
  %1963 = load float, ptr %1962, align 4, !tbaa !79
  %1964 = fpext float %1963 to double
  %1965 = fcmp ogt double %1964, 1.000000e+00
  br i1 %1965, label %1973, label %1966

1966:                                             ; preds = %1959
  %1967 = load ptr, ptr %138, align 8, !tbaa !5
  %1968 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1967, i32 0, i32 1
  %1969 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1yEv(ptr noundef nonnull align 4 dereferenceable(16) %1968) #6
  %1970 = load float, ptr %1969, align 4, !tbaa !79
  %1971 = fpext float %1970 to double
  %1972 = fcmp olt double %1971, -1.000000e+00
  br i1 %1972, label %1973, label %1974

1973:                                             ; preds = %1966, %1959
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2006

1974:                                             ; preds = %1966
  %1975 = load ptr, ptr %138, align 8, !tbaa !5
  %1976 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1975, i32 0, i32 1
  %1977 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1zEv(ptr noundef nonnull align 4 dereferenceable(16) %1976) #6
  %1978 = load float, ptr %1977, align 4, !tbaa !79
  %1979 = fpext float %1978 to double
  %1980 = fcmp ogt double %1979, 1.000000e+00
  br i1 %1980, label %1988, label %1981

1981:                                             ; preds = %1974
  %1982 = load ptr, ptr %138, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1982, i32 0, i32 1
  %1984 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1zEv(ptr noundef nonnull align 4 dereferenceable(16) %1983) #6
  %1985 = load float, ptr %1984, align 4, !tbaa !79
  %1986 = fpext float %1985 to double
  %1987 = fcmp olt double %1986, -1.000000e+00
  br i1 %1987, label %1988, label %1989

1988:                                             ; preds = %1981, %1974
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2006

1989:                                             ; preds = %1981
  %1990 = load ptr, ptr %138, align 8, !tbaa !5
  %1991 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1990, i32 0, i32 1
  %1992 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1wEv(ptr noundef nonnull align 4 dereferenceable(16) %1991) #6
  %1993 = load float, ptr %1992, align 4, !tbaa !79
  %1994 = fpext float %1993 to double
  %1995 = fcmp ogt double %1994, 1.000000e+00
  br i1 %1995, label %2003, label %1996

1996:                                             ; preds = %1989
  %1997 = load ptr, ptr %138, align 8, !tbaa !5
  %1998 = getelementptr inbounds %"struct.fastgltf::TRS", ptr %1997, i32 0, i32 1
  %1999 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1wEv(ptr noundef nonnull align 4 dereferenceable(16) %1998) #6
  %2000 = load float, ptr %1999, align 4, !tbaa !79
  %2001 = fpext float %2000 to double
  %2002 = fcmp olt double %2001, -1.000000e+00
  br i1 %2002, label %2003, label %2004

2003:                                             ; preds = %1996, %1989
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2006

2004:                                             ; preds = %1996
  br label %2005

2005:                                             ; preds = %2004, %1938
  store i32 0, ptr %5, align 4
  br label %2006

2006:                                             ; preds = %2005, %2003, %1988, %1973, %1958
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #6
  %2007 = load i32, ptr %5, align 4
  switch i32 %2007, label %2086 [
    i32 0, label %2008
  ]

2008:                                             ; preds = %2006
  %2009 = load ptr, ptr %137, align 8, !tbaa !5
  %2010 = getelementptr inbounds %"struct.fastgltf::Node", ptr %2009, i32 0, i32 1
  %2011 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2010)
  br i1 %2011, label %2016, label %2012

2012:                                             ; preds = %2008
  %2013 = load ptr, ptr %137, align 8, !tbaa !5
  %2014 = getelementptr inbounds %"struct.fastgltf::Node", ptr %2013, i32 0, i32 5
  %2015 = call noundef zeroext i1 @_ZNKSt6vectorIfNSt3pmr21polymorphic_allocatorIfEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %2014) #6
  br i1 %2015, label %2021, label %2016

2016:                                             ; preds = %2012, %2008
  %2017 = load ptr, ptr %137, align 8, !tbaa !5
  %2018 = getelementptr inbounds %"struct.fastgltf::Node", ptr %2017, i32 0, i32 0
  %2019 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2018)
  br i1 %2019, label %2021, label %2020

2020:                                             ; preds = %2016
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2086

2021:                                             ; preds = %2016, %2012
  %2022 = load ptr, ptr %137, align 8, !tbaa !5
  %2023 = getelementptr inbounds %"struct.fastgltf::Node", ptr %2022, i32 0, i32 1
  %2024 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2023)
  br i1 %2024, label %2025, label %2085

2025:                                             ; preds = %2021
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #6
  %2026 = load ptr, ptr %3, align 8, !tbaa !5
  %2027 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2026, i32 0, i32 13
  %2028 = load ptr, ptr %137, align 8, !tbaa !5
  %2029 = getelementptr inbounds %"struct.fastgltf::Node", ptr %2028, i32 0, i32 0
  %2030 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2029)
  %2031 = load i64, ptr %2030, align 8, !tbaa !35
  %2032 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2027, i64 noundef %2031) #6
  store ptr %2032, ptr %139, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #6
  %2033 = load ptr, ptr %139, align 8, !tbaa !5
  %2034 = getelementptr inbounds %"struct.fastgltf::Mesh", ptr %2033, i32 0, i32 0
  store ptr %2034, ptr %140, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #6
  %2035 = load ptr, ptr %140, align 8, !tbaa !5
  %2036 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %2035) #6
  %2037 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.373", ptr %141, i32 0, i32 0
  store ptr %2036, ptr %2037, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #6
  %2038 = load ptr, ptr %140, align 8, !tbaa !5
  %2039 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %2038) #6
  %2040 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.373", ptr %142, i32 0, i32 0
  store ptr %2039, ptr %2040, align 8
  br label %2041

2041:                                             ; preds = %2077, %2025
  %2042 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %142) #6
  br i1 %2042, label %2044, label %2043

2043:                                             ; preds = %2041
  store i32 40, ptr %5, align 4
  br label %2079

2044:                                             ; preds = %2041
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #6
  %2045 = call noundef nonnull align 8 dereferenceable(304) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %141) #6
  store ptr %2045, ptr %143, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #6
  %2046 = load ptr, ptr %143, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %145, ptr noundef @.str.30) #6
  %2047 = getelementptr inbounds { i64, ptr }, ptr %145, i32 0, i32 0
  %2048 = load i64, ptr %2047, align 8
  %2049 = getelementptr inbounds { i64, ptr }, ptr %145, i32 0, i32 1
  %2050 = load ptr, ptr %2049, align 8
  %2051 = call noundef ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304) %2046, i64 %2048, ptr %2050) #6
  store ptr %2051, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #6
  %2052 = load ptr, ptr %143, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef @.str.31) #6
  %2053 = getelementptr inbounds { i64, ptr }, ptr %147, i32 0, i32 0
  %2054 = load i64, ptr %2053, align 8
  %2055 = getelementptr inbounds { i64, ptr }, ptr %147, i32 0, i32 1
  %2056 = load ptr, ptr %2055, align 8
  %2057 = call noundef ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304) %2052, i64 %2054, ptr %2056) #6
  store ptr %2057, ptr %146, align 8, !tbaa !5
  %2058 = load ptr, ptr %144, align 8, !tbaa !5
  %2059 = load ptr, ptr %143, align 8, !tbaa !5
  %2060 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %2059, i32 0, i32 0
  %2061 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %2060) #6
  %2062 = icmp eq ptr %2058, %2061
  br i1 %2062, label %2069, label %2063

2063:                                             ; preds = %2044
  %2064 = load ptr, ptr %146, align 8, !tbaa !5
  %2065 = load ptr, ptr %143, align 8, !tbaa !5
  %2066 = getelementptr inbounds %"struct.fastgltf::Primitive", ptr %2065, i32 0, i32 0
  %2067 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %2066) #6
  %2068 = icmp eq ptr %2064, %2067
  br i1 %2068, label %2069, label %2070

2069:                                             ; preds = %2063, %2044
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2071

2070:                                             ; preds = %2063
  store i32 0, ptr %5, align 4
  br label %2071

2071:                                             ; preds = %2070, %2069
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #6
  %2072 = load i32, ptr %5, align 4
  switch i32 %2072, label %2074 [
    i32 0, label %2073
  ]

2073:                                             ; preds = %2071
  store i32 0, ptr %5, align 4
  br label %2074

2074:                                             ; preds = %2073, %2071
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #6
  %2075 = load i32, ptr %5, align 4
  switch i32 %2075, label %2079 [
    i32 0, label %2076
  ]

2076:                                             ; preds = %2074
  br label %2077

2077:                                             ; preds = %2076
  %2078 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %141) #6
  br label %2041

2079:                                             ; preds = %2074, %2043
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #6
  %2080 = load i32, ptr %5, align 4
  switch i32 %2080, label %2082 [
    i32 40, label %2081
  ]

2081:                                             ; preds = %2079
  store i32 0, ptr %5, align 4
  br label %2082

2082:                                             ; preds = %2081, %2079
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #6
  %2083 = load i32, ptr %5, align 4
  switch i32 %2083, label %2086 [
    i32 0, label %2084
  ]

2084:                                             ; preds = %2082
  br label %2085

2085:                                             ; preds = %2084, %2021
  store i32 0, ptr %5, align 4
  br label %2086

2086:                                             ; preds = %2085, %2082, %2020, %2006, %1937, %1923, %1909
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #6
  %2087 = load i32, ptr %5, align 4
  switch i32 %2087, label %2091 [
    i32 0, label %2088
  ]

2088:                                             ; preds = %2086
  br label %2089

2089:                                             ; preds = %2088
  %2090 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %135) #6
  br label %1892

2091:                                             ; preds = %2086, %1894
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #6
  %2092 = load i32, ptr %5, align 4
  switch i32 %2092, label %2369 [
    i32 38, label %2093
  ]

2093:                                             ; preds = %2091
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #6
  %2094 = load ptr, ptr %3, align 8, !tbaa !5
  %2095 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2094, i32 0, i32 15
  store ptr %2095, ptr %148, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #6
  %2096 = load ptr, ptr %148, align 8, !tbaa !5
  %2097 = call ptr @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2096) #6
  %2098 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.401", ptr %149, i32 0, i32 0
  store ptr %2097, ptr %2098, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #6
  %2099 = load ptr, ptr %148, align 8, !tbaa !5
  %2100 = call ptr @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2099) #6
  %2101 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.401", ptr %150, i32 0, i32 0
  store ptr %2100, ptr %2101, align 8
  br label %2102

2102:                                             ; preds = %2127, %2093
  %2103 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull align 8 dereferenceable(8) %150) #6
  br i1 %2103, label %2105, label %2104

2104:                                             ; preds = %2102
  store i32 42, ptr %5, align 4
  br label %2129

2105:                                             ; preds = %2102
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #6
  %2106 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %149) #6
  store ptr %2106, ptr %151, align 8, !tbaa !5
  %2107 = load ptr, ptr %151, align 8, !tbaa !5
  %2108 = getelementptr inbounds %"struct.fastgltf::Sampler", ptr %2107, i32 0, i32 0
  %2109 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_6FilterEE9has_valueEv(ptr noundef nonnull align 2 dereferenceable(2) %2108)
  call void @llvm.lifetime.start.p0(i64 2, ptr %152) #6
  call void @llvm.lifetime.start.p0(i64 2, ptr %153) #6
  br i1 %2109, label %2110, label %2120

2110:                                             ; preds = %2105
  %2111 = load ptr, ptr %151, align 8, !tbaa !5
  %2112 = getelementptr inbounds %"struct.fastgltf::Sampler", ptr %2111, i32 0, i32 0
  store i16 9728, ptr %152, align 2, !tbaa !164
  %2113 = call noundef zeroext i1 @_ZN8fastgltfneINS_6FilterES1_EEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 2 dereferenceable(2) %2112, ptr noundef nonnull align 2 dereferenceable(2) %152)
  br i1 %2113, label %2114, label %2118

2114:                                             ; preds = %2110
  %2115 = load ptr, ptr %151, align 8, !tbaa !5
  %2116 = getelementptr inbounds %"struct.fastgltf::Sampler", ptr %2115, i32 0, i32 0
  store i16 9729, ptr %153, align 2, !tbaa !164
  %2117 = call noundef zeroext i1 @_ZN8fastgltfneINS_6FilterES1_EEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 2 dereferenceable(2) %2116, ptr noundef nonnull align 2 dereferenceable(2) %153)
  br label %2118

2118:                                             ; preds = %2114, %2110
  %2119 = phi i1 [ false, %2110 ], [ %2117, %2114 ]
  br label %2120

2120:                                             ; preds = %2118, %2105
  %2121 = phi i1 [ false, %2105 ], [ %2119, %2118 ]
  call void @llvm.lifetime.end.p0(i64 2, ptr %153) #6
  call void @llvm.lifetime.end.p0(i64 2, ptr %152) #6
  br i1 %2121, label %2122, label %2123

2122:                                             ; preds = %2120
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2124

2123:                                             ; preds = %2120
  store i32 0, ptr %5, align 4
  br label %2124

2124:                                             ; preds = %2123, %2122
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #6
  %2125 = load i32, ptr %5, align 4
  switch i32 %2125, label %2129 [
    i32 0, label %2126
  ]

2126:                                             ; preds = %2124
  br label %2127

2127:                                             ; preds = %2126
  %2128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %149) #6
  br label %2102

2129:                                             ; preds = %2124, %2104
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #6
  %2130 = load i32, ptr %5, align 4
  switch i32 %2130, label %2369 [
    i32 42, label %2131
  ]

2131:                                             ; preds = %2129
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #6
  %2132 = load ptr, ptr %3, align 8, !tbaa !5
  %2133 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2132, i32 0, i32 16
  store ptr %2133, ptr %154, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #6
  %2134 = load ptr, ptr %154, align 8, !tbaa !5
  %2135 = call ptr @_ZNKSt6vectorIN8fastgltf5SceneESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2134) #6
  %2136 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %155, i32 0, i32 0
  store ptr %2135, ptr %2136, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #6
  %2137 = load ptr, ptr %154, align 8, !tbaa !5
  %2138 = call ptr @_ZNKSt6vectorIN8fastgltf5SceneESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2137) #6
  %2139 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.404", ptr %156, i32 0, i32 0
  store ptr %2138, ptr %2139, align 8
  br label %2140

2140:                                             ; preds = %2177, %2131
  %2141 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull align 8 dereferenceable(8) %156) #6
  br i1 %2141, label %2143, label %2142

2142:                                             ; preds = %2140
  store i32 44, ptr %5, align 4
  br label %2179

2143:                                             ; preds = %2140
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #6
  %2144 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %155) #6
  store ptr %2144, ptr %157, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #6
  %2145 = load ptr, ptr %157, align 8, !tbaa !5
  %2146 = getelementptr inbounds %"struct.fastgltf::Scene", ptr %2145, i32 0, i32 0
  store ptr %2146, ptr %158, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #6
  %2147 = load ptr, ptr %158, align 8, !tbaa !5
  %2148 = call ptr @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %2147) #6
  %2149 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.405", ptr %159, i32 0, i32 0
  store ptr %2148, ptr %2149, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #6
  %2150 = load ptr, ptr %158, align 8, !tbaa !5
  %2151 = call ptr @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %2150) #6
  %2152 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.405", ptr %160, i32 0, i32 0
  store ptr %2151, ptr %2152, align 8
  br label %2153

2153:                                             ; preds = %2169, %2143
  %2154 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %159, ptr noundef nonnull align 8 dereferenceable(8) %160) #6
  br i1 %2154, label %2156, label %2155

2155:                                             ; preds = %2153
  store i32 46, ptr %5, align 4
  br label %2171

2156:                                             ; preds = %2153
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #6
  %2157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #6
  store ptr %2157, ptr %161, align 8, !tbaa !5
  %2158 = load ptr, ptr %161, align 8, !tbaa !5
  %2159 = load i64, ptr %2158, align 8, !tbaa !35
  %2160 = load ptr, ptr %3, align 8, !tbaa !5
  %2161 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2160, i32 0, i32 14
  %2162 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2161) #6
  %2163 = icmp uge i64 %2159, %2162
  br i1 %2163, label %2164, label %2165

2164:                                             ; preds = %2156
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2166

2165:                                             ; preds = %2156
  store i32 0, ptr %5, align 4
  br label %2166

2166:                                             ; preds = %2165, %2164
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #6
  %2167 = load i32, ptr %5, align 4
  switch i32 %2167, label %2171 [
    i32 0, label %2168
  ]

2168:                                             ; preds = %2166
  br label %2169

2169:                                             ; preds = %2168
  %2170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %159) #6
  br label %2153

2171:                                             ; preds = %2166, %2155
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #6
  %2172 = load i32, ptr %5, align 4
  switch i32 %2172, label %2174 [
    i32 46, label %2173
  ]

2173:                                             ; preds = %2171
  store i32 0, ptr %5, align 4
  br label %2174

2174:                                             ; preds = %2173, %2171
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #6
  %2175 = load i32, ptr %5, align 4
  switch i32 %2175, label %2179 [
    i32 0, label %2176
  ]

2176:                                             ; preds = %2174
  br label %2177

2177:                                             ; preds = %2176
  %2178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %155) #6
  br label %2140

2179:                                             ; preds = %2174, %2142
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #6
  %2180 = load i32, ptr %5, align 4
  switch i32 %2180, label %2369 [
    i32 44, label %2181
  ]

2181:                                             ; preds = %2179
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #6
  %2182 = load ptr, ptr %3, align 8, !tbaa !5
  %2183 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2182, i32 0, i32 17
  store ptr %2183, ptr %162, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #6
  %2184 = load ptr, ptr %162, align 8, !tbaa !5
  %2185 = call ptr @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2184) #6
  %2186 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.406", ptr %163, i32 0, i32 0
  store ptr %2185, ptr %2186, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #6
  %2187 = load ptr, ptr %162, align 8, !tbaa !5
  %2188 = call ptr @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2187) #6
  %2189 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.406", ptr %164, i32 0, i32 0
  store ptr %2188, ptr %2189, align 8
  br label %2190

2190:                                             ; preds = %2231, %2181
  %2191 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %164) #6
  br i1 %2191, label %2193, label %2192

2192:                                             ; preds = %2190
  store i32 48, ptr %5, align 4
  br label %2233

2193:                                             ; preds = %2190
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #6
  %2194 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #6
  store ptr %2194, ptr %165, align 8, !tbaa !5
  %2195 = load ptr, ptr %165, align 8, !tbaa !5
  %2196 = getelementptr inbounds %"struct.fastgltf::Skin", ptr %2195, i32 0, i32 2
  %2197 = call noundef zeroext i1 @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %2196) #6
  br i1 %2197, label %2198, label %2199

2198:                                             ; preds = %2193
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2228

2199:                                             ; preds = %2193
  %2200 = load ptr, ptr %165, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.fastgltf::Skin", ptr %2200, i32 0, i32 1
  %2202 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2201)
  br i1 %2202, label %2203, label %2213

2203:                                             ; preds = %2199
  %2204 = load ptr, ptr %165, align 8, !tbaa !5
  %2205 = getelementptr inbounds %"struct.fastgltf::Skin", ptr %2204, i32 0, i32 1
  %2206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2205)
  %2207 = load i64, ptr %2206, align 8, !tbaa !35
  %2208 = load ptr, ptr %3, align 8, !tbaa !5
  %2209 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2208, i32 0, i32 14
  %2210 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2209) #6
  %2211 = icmp uge i64 %2207, %2210
  br i1 %2211, label %2212, label %2213

2212:                                             ; preds = %2203
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2228

2213:                                             ; preds = %2203, %2199
  %2214 = load ptr, ptr %165, align 8, !tbaa !5
  %2215 = getelementptr inbounds %"struct.fastgltf::Skin", ptr %2214, i32 0, i32 0
  %2216 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2215)
  br i1 %2216, label %2217, label %2227

2217:                                             ; preds = %2213
  %2218 = load ptr, ptr %165, align 8, !tbaa !5
  %2219 = getelementptr inbounds %"struct.fastgltf::Skin", ptr %2218, i32 0, i32 0
  %2220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2219)
  %2221 = load i64, ptr %2220, align 8, !tbaa !35
  %2222 = load ptr, ptr %3, align 8, !tbaa !5
  %2223 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2222, i32 0, i32 5
  %2224 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2223) #6
  %2225 = icmp uge i64 %2221, %2224
  br i1 %2225, label %2226, label %2227

2226:                                             ; preds = %2217
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2228

2227:                                             ; preds = %2217, %2213
  store i32 0, ptr %5, align 4
  br label %2228

2228:                                             ; preds = %2227, %2226, %2212, %2198
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #6
  %2229 = load i32, ptr %5, align 4
  switch i32 %2229, label %2233 [
    i32 0, label %2230
  ]

2230:                                             ; preds = %2228
  br label %2231

2231:                                             ; preds = %2230
  %2232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #6
  br label %2190

2233:                                             ; preds = %2228, %2192
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #6
  %2234 = load i32, ptr %5, align 4
  switch i32 %2234, label %2369 [
    i32 48, label %2235
  ]

2235:                                             ; preds = %2233
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #6
  %2236 = load ptr, ptr %3, align 8, !tbaa !5
  %2237 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2236, i32 0, i32 18
  store ptr %2237, ptr %166, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #6
  %2238 = load ptr, ptr %166, align 8, !tbaa !5
  %2239 = call ptr @_ZNKSt6vectorIN8fastgltf7TextureESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %2238) #6
  %2240 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.407", ptr %167, i32 0, i32 0
  store ptr %2239, ptr %2240, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #6
  %2241 = load ptr, ptr %166, align 8, !tbaa !5
  %2242 = call ptr @_ZNKSt6vectorIN8fastgltf7TextureESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %2241) #6
  %2243 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.407", ptr %168, i32 0, i32 0
  store ptr %2242, ptr %2243, align 8
  br label %2244

2244:                                             ; preds = %2364, %2235
  %2245 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull align 8 dereferenceable(8) %168) #6
  br i1 %2245, label %2247, label %2246

2246:                                             ; preds = %2244
  store i32 50, ptr %5, align 4
  br label %2366

2247:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #6
  %2248 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %167) #6
  store ptr %2248, ptr %169, align 8, !tbaa !5
  %2249 = load ptr, ptr %169, align 8, !tbaa !5
  %2250 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2249, i32 0, i32 0
  %2251 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2250)
  br i1 %2251, label %2252, label %2262

2252:                                             ; preds = %2247
  %2253 = load ptr, ptr %169, align 8, !tbaa !5
  %2254 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2253, i32 0, i32 0
  %2255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2254)
  %2256 = load i64, ptr %2255, align 8, !tbaa !35
  %2257 = load ptr, ptr %3, align 8, !tbaa !5
  %2258 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2257, i32 0, i32 15
  %2259 = call noundef i64 @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2258) #6
  %2260 = icmp uge i64 %2256, %2259
  br i1 %2260, label %2261, label %2262

2261:                                             ; preds = %2252
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2262:                                             ; preds = %2252, %2247
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %170, ptr align 8 @_ZN8fastgltf10extensionsL18KHR_texture_basisuE, i64 16, i1 false), !tbaa.struct !69
  %2263 = getelementptr inbounds { i64, ptr }, ptr %170, i32 0, i32 0
  %2264 = load i64, ptr %2263, align 8
  %2265 = getelementptr inbounds { i64, ptr }, ptr %170, i32 0, i32 1
  %2266 = load ptr, ptr %2265, align 8
  %2267 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %2264, ptr %2266)
  br i1 %2267, label %2280, label %2268

2268:                                             ; preds = %2262
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %171, ptr align 8 @_ZN8fastgltf10extensionsL16MSFT_texture_ddsE, i64 16, i1 false), !tbaa.struct !69
  %2269 = getelementptr inbounds { i64, ptr }, ptr %171, i32 0, i32 0
  %2270 = load i64, ptr %2269, align 8
  %2271 = getelementptr inbounds { i64, ptr }, ptr %171, i32 0, i32 1
  %2272 = load ptr, ptr %2271, align 8
  %2273 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %2270, ptr %2272)
  br i1 %2273, label %2280, label %2274

2274:                                             ; preds = %2268
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %172, ptr align 8 @_ZN8fastgltf10extensionsL16EXT_texture_webpE, i64 16, i1 false), !tbaa.struct !69
  %2275 = getelementptr inbounds { i64, ptr }, ptr %172, i32 0, i32 0
  %2276 = load i64, ptr %2275, align 8
  %2277 = getelementptr inbounds { i64, ptr }, ptr %172, i32 0, i32 1
  %2278 = load ptr, ptr %2277, align 8
  %2279 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %4, i64 %2276, ptr %2278)
  br i1 %2279, label %2280, label %2298

2280:                                             ; preds = %2274, %2268, %2262
  %2281 = load ptr, ptr %169, align 8, !tbaa !5
  %2282 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2281, i32 0, i32 1
  %2283 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2282)
  br i1 %2283, label %2297, label %2284

2284:                                             ; preds = %2280
  %2285 = load ptr, ptr %169, align 8, !tbaa !5
  %2286 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2285, i32 0, i32 2
  %2287 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2286)
  br i1 %2287, label %2297, label %2288

2288:                                             ; preds = %2284
  %2289 = load ptr, ptr %169, align 8, !tbaa !5
  %2290 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2289, i32 0, i32 3
  %2291 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2290)
  br i1 %2291, label %2297, label %2292

2292:                                             ; preds = %2288
  %2293 = load ptr, ptr %169, align 8, !tbaa !5
  %2294 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2293, i32 0, i32 4
  %2295 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2294)
  br i1 %2295, label %2297, label %2296

2296:                                             ; preds = %2292
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2297:                                             ; preds = %2292, %2288, %2284, %2280
  br label %2304

2298:                                             ; preds = %2274
  %2299 = load ptr, ptr %169, align 8, !tbaa !5
  %2300 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2299, i32 0, i32 1
  %2301 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2300)
  br i1 %2301, label %2303, label %2302

2302:                                             ; preds = %2298
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2303:                                             ; preds = %2298
  br label %2304

2304:                                             ; preds = %2303, %2297
  %2305 = load ptr, ptr %169, align 8, !tbaa !5
  %2306 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2305, i32 0, i32 1
  %2307 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2306)
  br i1 %2307, label %2308, label %2318

2308:                                             ; preds = %2304
  %2309 = load ptr, ptr %169, align 8, !tbaa !5
  %2310 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2309, i32 0, i32 1
  %2311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2310)
  %2312 = load i64, ptr %2311, align 8, !tbaa !35
  %2313 = load ptr, ptr %3, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2313, i32 0, i32 10
  %2315 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2314) #6
  %2316 = icmp uge i64 %2312, %2315
  br i1 %2316, label %2317, label %2318

2317:                                             ; preds = %2308
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2318:                                             ; preds = %2308, %2304
  %2319 = load ptr, ptr %169, align 8, !tbaa !5
  %2320 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2319, i32 0, i32 2
  %2321 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2320)
  br i1 %2321, label %2322, label %2332

2322:                                             ; preds = %2318
  %2323 = load ptr, ptr %169, align 8, !tbaa !5
  %2324 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2323, i32 0, i32 2
  %2325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2324)
  %2326 = load i64, ptr %2325, align 8, !tbaa !35
  %2327 = load ptr, ptr %3, align 8, !tbaa !5
  %2328 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2327, i32 0, i32 10
  %2329 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2328) #6
  %2330 = icmp uge i64 %2326, %2329
  br i1 %2330, label %2331, label %2332

2331:                                             ; preds = %2322
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2332:                                             ; preds = %2322, %2318
  %2333 = load ptr, ptr %169, align 8, !tbaa !5
  %2334 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2333, i32 0, i32 3
  %2335 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2334)
  br i1 %2335, label %2336, label %2346

2336:                                             ; preds = %2332
  %2337 = load ptr, ptr %169, align 8, !tbaa !5
  %2338 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2337, i32 0, i32 3
  %2339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2338)
  %2340 = load i64, ptr %2339, align 8, !tbaa !35
  %2341 = load ptr, ptr %3, align 8, !tbaa !5
  %2342 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2341, i32 0, i32 10
  %2343 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2342) #6
  %2344 = icmp uge i64 %2340, %2343
  br i1 %2344, label %2345, label %2346

2345:                                             ; preds = %2336
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2346:                                             ; preds = %2336, %2332
  %2347 = load ptr, ptr %169, align 8, !tbaa !5
  %2348 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2347, i32 0, i32 4
  %2349 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2348)
  br i1 %2349, label %2350, label %2360

2350:                                             ; preds = %2346
  %2351 = load ptr, ptr %169, align 8, !tbaa !5
  %2352 = getelementptr inbounds %"struct.fastgltf::Texture", ptr %2351, i32 0, i32 4
  %2353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %2352)
  %2354 = load i64, ptr %2353, align 8, !tbaa !35
  %2355 = load ptr, ptr %3, align 8, !tbaa !5
  %2356 = getelementptr inbounds %"class.fastgltf::Asset", ptr %2355, i32 0, i32 10
  %2357 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2356) #6
  %2358 = icmp uge i64 %2354, %2357
  br i1 %2358, label %2359, label %2360

2359:                                             ; preds = %2350
  store i64 5, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2361

2360:                                             ; preds = %2350, %2346
  store i32 0, ptr %5, align 4
  br label %2361

2361:                                             ; preds = %2360, %2359, %2345, %2331, %2317, %2302, %2296, %2261
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #6
  %2362 = load i32, ptr %5, align 4
  switch i32 %2362, label %2366 [
    i32 0, label %2363
  ]

2363:                                             ; preds = %2361
  br label %2364

2364:                                             ; preds = %2363
  %2365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %167) #6
  br label %2244

2366:                                             ; preds = %2361, %2246
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #6
  %2367 = load i32, ptr %5, align 4
  switch i32 %2367, label %2369 [
    i32 50, label %2368
  ]

2368:                                             ; preds = %2366
  store i64 0, ptr %2, align 8
  store i32 1, ptr %5, align 4
  br label %2369

2369:                                             ; preds = %2368, %2366, %2233, %2179, %2129, %2091, %1881, %1249, %1020, %927, %887, %805, %681, %654, %428, %231, %183
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  %2370 = load i64, ptr %2, align 8
  ret i64 %2370
}

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN8fastgltf20getComponentByteSizeENS_13ComponentTypeE(i16 noundef zeroext) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(17) ptr @_ZNKSt6vectorIN8fastgltf16AnimationSamplerENSt3pmr21polymorphic_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #2 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEdeEv(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_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8), i64, ptr) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(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_iteratorIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf6Camera12OrthographicEJNS1_11PerspectiveES2_EENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf6Camera11PerspectiveEJS2_NS1_12OrthographicEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf7sources10BufferViewEJSt9monostateS2_NS1_3URIENS1_5ArrayENS1_6VectorENS1_12CustomBufferENS1_8ByteViewENS1_8FallbackEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8), i64, i8) #5 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEdeEv(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_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(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_iteratorIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf3TRSEJS1_NS0_4math3matIfLm4ELm4EEEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) #2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304), i64, ptr) #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE4sizeEv(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 @_ZN9__gnu_cxx17__normal_iteratorIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEppEv(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_iteratorIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(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 @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = !{!14, !16, i64 16}
!14 = !{!"_ZTSN8fastgltf8AccessorE", !15, i64 0, !15, i64 8, !16, i64 16, !17, i64 18, !10, i64 20, !18, i64 24, !18, i64 64, !25, i64 104, !26, i64 112, !30, i64 168}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTSN8fastgltf12AccessorTypeE", !7, i64 0}
!17 = !{!"_ZTSN8fastgltf13ComponentTypeE", !7, i64 0}
!18 = !{!"_ZTSSt7variantIJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEE", !19, i64 0}
!19 = !{!"_ZTSNSt8__detail9__variant13_Variant_baseIJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !20, i64 0}
!20 = !{!"_ZTSNSt8__detail9__variant17_Move_assign_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !21, i64 0}
!21 = !{!"_ZTSNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !22, i64 0}
!22 = !{!"_ZTSNSt8__detail9__variant15_Move_ctor_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !23, i64 0}
!23 = !{!"_ZTSNSt8__detail9__variant15_Copy_ctor_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !24, i64 0}
!24 = !{!"_ZTSNSt8__detail9__variant16_Variant_storageILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !7, i64 0, !7, i64 32}
!25 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueImEE", !7, i64 0}
!26 = !{!"_ZTSSt8optionalIN8fastgltf14SparseAccessorEE", !27, i64 0}
!27 = !{!"_ZTSSt14_Optional_baseIN8fastgltf14SparseAccessorELb1ELb1EE", !28, i64 0}
!28 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf14SparseAccessorELb1ELb1ELb1EE", !29, i64 0}
!29 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf14SparseAccessorEE", !7, i64 0, !10, i64 48}
!30 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEE", !31, i64 0, !15, i64 16, !7, i64 24}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE12_Alloc_hiderE", !32, i64 0, !6, i64 8}
!32 = !{!"_ZTSNSt3pmr21polymorphic_allocatorIcEE", !6, i64 0}
!33 = !{!14, !17, i64 18}
!34 = !{!14, !15, i64 8}
!35 = !{!15, !15, i64 0}
!36 = !{!14, !15, i64 0}
!37 = !{!38, !15, i64 8}
!38 = !{!"_ZTSN8fastgltf10BufferViewE", !15, i64 0, !15, i64 8, !15, i64 16, !25, i64 24, !39, i64 32, !40, i64 40, !30, i64 48}
!39 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEE", !7, i64 0}
!40 = !{!"_ZTSSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EE", !41, i64 0}
!41 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_ELb1ELb1EE", !42, i64 0}
!42 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt5tupleIJPN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEE", !44, i64 0}
!44 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEE", !45, i64 0}
!45 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20CompressedBufferViewELb0EE", !6, i64 0}
!46 = !{!47, !15, i64 8}
!47 = !{!"_ZTSN8fastgltf14SparseAccessorE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !17, i64 40}
!48 = !{!47, !15, i64 24}
!49 = !{!50, !51, i64 16}
!50 = !{!"_ZTSN8fastgltf16AnimationChannelE", !15, i64 0, !25, i64 8, !51, i64 16}
!51 = !{!"_ZTSN8fastgltf13AnimationPathE", !7, i64 0}
!52 = !{!50, !15, i64 0}
!53 = !{!54, !15, i64 0}
!54 = !{!"_ZTSN8fastgltf16AnimationSamplerE", !15, i64 0, !15, i64 8, !55, i64 16}
!55 = !{!"_ZTSN8fastgltf22AnimationInterpolationE", !7, i64 0}
!56 = !{!54, !15, i64 8}
!57 = !{!54, !55, i64 16}
!58 = !{!59, !15, i64 0}
!59 = !{!"_ZTSN8fastgltf6BufferE", !15, i64 0, !60, i64 8, !30, i64 200}
!60 = !{!"_ZTSSt7variantIJSt9monostateN8fastgltf7sources10BufferViewENS2_3URIENS2_5ArrayENS2_6VectorENS2_12CustomBufferENS2_8ByteViewENS2_8FallbackEEE", !61, i64 0}
!61 = !{!"_ZTSNSt8__detail9__variant13_Variant_baseIJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !62, i64 0}
!62 = !{!"_ZTSNSt8__detail9__variant17_Move_assign_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !63, i64 0}
!63 = !{!"_ZTSNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !64, i64 0}
!64 = !{!"_ZTSNSt8__detail9__variant15_Move_ctor_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !65, i64 0}
!65 = !{!"_ZTSNSt8__detail9__variant15_Copy_ctor_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !66, i64 0}
!66 = !{!"_ZTSNSt8__detail9__variant16_Variant_storageILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !7, i64 0, !7, i64 184}
!67 = !{!38, !15, i64 16}
!68 = !{!38, !15, i64 0}
!69 = !{i64 0, i64 8, !35, i64 8, i64 8, !5}
!70 = !{!71, !72, i64 32}
!71 = !{!"_ZTSN8fastgltf20CompressedBufferViewE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !72, i64 32, !73, i64 33, !15, i64 40}
!72 = !{!"_ZTSN8fastgltf22MeshoptCompressionModeE", !7, i64 0}
!73 = !{!"_ZTSN8fastgltf24MeshoptCompressionFilterE", !7, i64 0}
!74 = !{!71, !15, i64 40}
!75 = !{!71, !15, i64 24}
!76 = !{!77, !78, i64 8}
!77 = !{!"_ZTSN8fastgltf6Camera12OrthographicE", !78, i64 0, !78, i64 4, !78, i64 8, !78, i64 12}
!78 = !{!"float", !7, i64 0}
!79 = !{!78, !78, i64 0}
!80 = !{!81, !78, i64 4}
!81 = !{!"_ZTSN8fastgltf6Camera11PerspectiveE", !82, i64 0, !78, i64 4, !82, i64 8, !78, i64 12}
!82 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueIfEE", !7, i64 0}
!83 = !{!81, !78, i64 12}
!84 = !{!85, !15, i64 0}
!85 = !{!"_ZTSN8fastgltf7sources10BufferViewE", !15, i64 0, !86, i64 8}
!86 = !{!"_ZTSN8fastgltf8MimeTypeE", !7, i64 0}
!87 = !{!88, !89, i64 0}
!88 = !{!"_ZTSN8fastgltf5LightE", !89, i64 0, !90, i64 4, !78, i64 16, !82, i64 20, !82, i64 24, !82, i64 28, !30, i64 32}
!89 = !{!"_ZTSN8fastgltf9LightTypeE", !7, i64 0}
!90 = !{!"_ZTSN8fastgltf4math3vecIfLm3EEE", !91, i64 0}
!91 = !{!"_ZTSSt5arrayIfLm3EE", !7, i64 0}
!92 = !{!93, !78, i64 220}
!93 = !{!"_ZTSN8fastgltf8MaterialE", !94, i64 0, !102, i64 88, !107, i64 128, !97, i64 168, !90, i64 200, !112, i64 212, !10, i64 213, !10, i64 214, !78, i64 216, !78, i64 220, !78, i64 224, !78, i64 228, !113, i64 232, !119, i64 240, !125, i64 248, !131, i64 256, !137, i64 264, !143, i64 272, !149, i64 280, !97, i64 288, !155, i64 320, !30, i64 328}
!94 = !{!"_ZTSN8fastgltf7PBRDataE", !95, i64 0, !78, i64 16, !78, i64 20, !97, i64 24, !97, i64 56}
!95 = !{!"_ZTSN8fastgltf4math3vecIfLm4EEE", !96, i64 0}
!96 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!97 = !{!"_ZTSSt8optionalIN8fastgltf11TextureInfoEE", !98, i64 0}
!98 = !{!"_ZTSSt14_Optional_baseIN8fastgltf11TextureInfoELb0ELb0EE", !99, i64 0}
!99 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb0ELb0ELb0EE", !100, i64 0}
!100 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb1ELb0ELb0EE", !101, i64 0}
!101 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf11TextureInfoEE", !7, i64 0, !10, i64 24}
!102 = !{!"_ZTSSt8optionalIN8fastgltf17NormalTextureInfoEE", !103, i64 0}
!103 = !{!"_ZTSSt14_Optional_baseIN8fastgltf17NormalTextureInfoELb0ELb0EE", !104, i64 0}
!104 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb0ELb0ELb0EE", !105, i64 0}
!105 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb1ELb0ELb0EE", !106, i64 0}
!106 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf17NormalTextureInfoEE", !7, i64 0, !10, i64 32}
!107 = !{!"_ZTSSt8optionalIN8fastgltf20OcclusionTextureInfoEE", !108, i64 0}
!108 = !{!"_ZTSSt14_Optional_baseIN8fastgltf20OcclusionTextureInfoELb0ELb0EE", !109, i64 0}
!109 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb0ELb0ELb0EE", !110, i64 0}
!110 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb1ELb0ELb0EE", !111, i64 0}
!111 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf20OcclusionTextureInfoEE", !7, i64 0, !10, i64 32}
!112 = !{!"_ZTSN8fastgltf9AlphaModeE", !7, i64 0}
!113 = !{!"_ZTSSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !114, i64 0}
!114 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_ELb1ELb1EE", !115, i64 0}
!115 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !116, i64 0}
!116 = !{!"_ZTSSt5tupleIJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !117, i64 0}
!117 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !118, i64 0}
!118 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf18MaterialAnisotropyELb0EE", !6, i64 0}
!119 = !{!"_ZTSSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !120, i64 0}
!120 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_ELb1ELb1EE", !121, i64 0}
!121 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !122, i64 0}
!122 = !{!"_ZTSSt5tupleIJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !123, i64 0}
!123 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !124, i64 0}
!124 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf17MaterialClearcoatELb0EE", !6, i64 0}
!125 = !{!"_ZTSSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !126, i64 0}
!126 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_ELb1ELb1EE", !127, i64 0}
!127 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !128, i64 0}
!128 = !{!"_ZTSSt5tupleIJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !129, i64 0}
!129 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !130, i64 0}
!130 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf19MaterialIridescenceELb0EE", !6, i64 0}
!131 = !{!"_ZTSSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !132, i64 0}
!132 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf13MaterialSheenESt14default_deleteIS1_ELb1ELb1EE", !133, i64 0}
!133 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !134, i64 0}
!134 = !{!"_ZTSSt5tupleIJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !135, i64 0}
!135 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !136, i64 0}
!136 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf13MaterialSheenELb0EE", !6, i64 0}
!137 = !{!"_ZTSSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !138, i64 0}
!138 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf16MaterialSpecularESt14default_deleteIS1_ELb1ELb1EE", !139, i64 0}
!139 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !140, i64 0}
!140 = !{!"_ZTSSt5tupleIJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !141, i64 0}
!141 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !142, i64 0}
!142 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf16MaterialSpecularELb0EE", !6, i64 0}
!143 = !{!"_ZTSSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !144, i64 0}
!144 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_ELb1ELb1EE", !145, i64 0}
!145 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !146, i64 0}
!146 = !{!"_ZTSSt5tupleIJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !147, i64 0}
!147 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !148, i64 0}
!148 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20MaterialTransmissionELb0EE", !6, i64 0}
!149 = !{!"_ZTSSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !150, i64 0}
!150 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf14MaterialVolumeESt14default_deleteIS1_ELb1ELb1EE", !151, i64 0}
!151 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !152, i64 0}
!152 = !{!"_ZTSSt5tupleIJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !153, i64 0}
!153 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !154, i64 0}
!154 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf14MaterialVolumeELb0EE", !6, i64 0}
!155 = !{!"_ZTSSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !156, i64 0}
!156 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_ELb1ELb1EE", !157, i64 0}
!157 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !158, i64 0}
!158 = !{!"_ZTSSt5tupleIJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !159, i64 0}
!159 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !160, i64 0}
!160 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf22MaterialPackedTexturesELb0EE", !6, i64 0}
!161 = !{!93, !78, i64 224}
!162 = !{!163, !15, i64 40}
!163 = !{!"_ZTSN8fastgltf9AttributeE", !30, i64 0, !15, i64 40}
!164 = !{!165, !165, i64 0}
!165 = !{!"_ZTSN8fastgltf6FilterE", !7, i64 0}


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

%"class.std::basic_string_view" = type { i64, ptr }
%class.anon.224 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.225" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.226" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.227" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.234" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.235" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.236" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.237" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.262" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.263" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.266" = type { ptr }
%class.anon.363 = type { ptr }
%"class.std::optional.364" = type { %"struct.std::_Optional_base.365" }
%"struct.std::_Optional_base.365" = type { %"struct.std::_Optional_payload.367" }
%"struct.std::_Optional_payload.367" = type { %"struct.std::_Optional_payload_base.base.369", [7 x i8] }
%"struct.std::_Optional_payload_base.base.369" = type <{ %"union.std::_Optional_payload_base<unsigned long>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned long>::_Storage" = type { i64 }
%"class.__gnu_cxx::__normal_iterator.372" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.373" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.374" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.375" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.401" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.404" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.405" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.406" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.407" = type { ptr }

@.str.22 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN8fastgltf10extensionsL23EXT_meshopt_compressionE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL24KHR_materials_anisotropyE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL23KHR_materials_clearcoatE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL25KHR_materials_iridescenceE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL19KHR_materials_sheenE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL22KHR_materials_specularE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL26KHR_materials_transmissionE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL20KHR_materials_volumeE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL31KHR_materials_emissive_strengthE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL17KHR_materials_iorE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL36MSFT_packing_normalRoughnessMetallicE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL39MSFT_packing_occlusionRoughnessMetallicE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL22KHR_materials_variantsE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@.str.30 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN8fastgltf10extensionsL18KHR_texture_basisuE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL16MSFT_texture_ddsE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8
@_ZN8fastgltf10extensionsL16EXT_texture_webpE = external hidden local_unnamed_addr constant %"class.std::basic_string_view", align 8

; 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 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 dso_local void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(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(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(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 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64, ptr, i64, ptr) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN8fastgltf8validateERKNS_5AssetE(ptr noundef nonnull align 8 dereferenceable(580) %0) local_unnamed_addr #2 {
  %2 = alloca %class.anon.224, align 8
  %3 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %4 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.225", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.226", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.226", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.227", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.234", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.235", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.235", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.236", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.236", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.237", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.237", align 8
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.262", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.262", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.263", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.263", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %31 = alloca %class.anon.363, align 8
  %32 = alloca %"class.std::optional.364", align 8
  %33 = alloca %"class.std::optional.364", align 8
  %34 = alloca %"class.std::optional.364", align 8
  %35 = alloca %"class.std::optional.364", align 8
  %36 = alloca %"class.std::optional.364", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.372", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.374", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.374", align 8
  %43 = alloca %"class.std::basic_string_view", align 8
  %44 = alloca %"class.std::basic_string_view", align 8
  %45 = alloca %"class.std::basic_string_view", align 8
  %46 = alloca %"class.std::basic_string_view", align 8
  %47 = alloca %"class.std::basic_string_view", align 8
  %48 = alloca %"class.std::basic_string_view", align 8
  %49 = alloca %"class.std::basic_string_view", align 8
  %50 = alloca %"class.std::basic_string_view", align 8
  %51 = alloca %"class.std::basic_string_view", align 8
  %52 = alloca %"class.std::basic_string_view", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.375", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.375", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.373", align 8
  %57 = alloca %"class.std::basic_string_view", align 8
  %58 = alloca %"class.std::basic_string_view", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.401", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.401", align 8
  %61 = alloca i16, align 2
  %62 = alloca i16, align 2
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator.404", align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator.405", align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.405", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator.406", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator.406", align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator.407", align 8
  %70 = alloca %"class.__gnu_cxx::__normal_iterator.407", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #5
  %71 = getelementptr inbounds i8, ptr %0, i64 144
  store ptr %71, ptr %2, align 8, !tbaa !5
  %72 = getelementptr inbounds i8, ptr %0, i64 176
  %73 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %72) #5
  %74 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  %75 = icmp ugt i64 %73, %74
  br i1 %75, label %986, label %76

76:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #5
  %77 = tail call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %72) #5
  store ptr %77, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #5
  %78 = tail call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %72) #5
  store ptr %78, ptr %4, align 8
  %79 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  br i1 %79, label %.lr.ph839, label %.loopexit934

.lr.ph839:                                        ; preds = %76, %88
  %80 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %81 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  store ptr %81, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  %82 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEENS5_IS7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  store ptr %82, ptr %6, align 8
  %83 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  br i1 %83, label %.lr.ph, label %.critedge918

._crit_edge:                                      ; preds = %.lr.ph
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  br i1 %spec.select, label %88, label %.loopexit920

.lr.ph:                                           ; preds = %.lr.ph839, %.lr.ph
  %.0598837 = phi i1 [ %spec.select, %.lr.ph ], [ false, %.lr.ph839 ]
  %84 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  %85 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(40) %80, ptr noundef nonnull align 8 dereferenceable(40) %84) #5
  %spec.select = select i1 %85, i1 true, i1 %.0598837
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  %87 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  br i1 %87, label %.lr.ph, label %._crit_edge

88:                                               ; preds = %._crit_edge
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %3) #5
  %90 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEESt6vectorIS8_NS6_IS8_EEEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  br i1 %90, label %.lr.ph839, label %.loopexit934

.critedge918:                                     ; preds = %.lr.ph839
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  br label %.loopexit920

.loopexit920:                                     ; preds = %._crit_edge, %.critedge918
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #5
  br label %986

.loopexit934:                                     ; preds = %88, %76
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #5
  %91 = getelementptr inbounds i8, ptr %0, i64 216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  %92 = call ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #5
  store ptr %92, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %93 = call ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #5
  store ptr %93, ptr %8, align 8
  %94 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  br i1 %94, label %.lr.ph841, label %._crit_edge842

.lr.ph841:                                        ; preds = %.loopexit934
  %95 = getelementptr inbounds i8, ptr %0, i64 288
  br label %96

96:                                               ; preds = %.lr.ph841, %.critedge693
  %97 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %98 = getelementptr inbounds i8, ptr %97, i64 16
  %99 = load i8, ptr %98, align 8, !tbaa !9
  %100 = icmp eq i8 %99, 0
  br i1 %100, label %.critedge692, label %101

101:                                              ; preds = %96
  %102 = getelementptr inbounds i8, ptr %97, i64 18
  %103 = load i16, ptr %102, align 2, !tbaa !30
  %104 = icmp eq i16 %103, 0
  %105 = getelementptr inbounds i8, ptr %97, i64 8
  %106 = load i64, ptr %105, align 8
  %107 = icmp eq i64 %106, 0
  %or.cond751 = select i1 %104, i1 true, i1 %107
  br i1 %or.cond751, label %.critedge692, label %108

108:                                              ; preds = %101
  %109 = getelementptr inbounds i8, ptr %97, i64 104
  %110 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  br i1 %110, label %111, label %115

111:                                              ; preds = %108
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  %113 = load i64, ptr %112, align 8, !tbaa !31
  %114 = call noundef i64 @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %95) #5
  %.not = icmp ult i64 %113, %114
  br i1 %.not, label %115, label %.critedge692

115:                                              ; preds = %111, %108
  %116 = load i64, ptr %97, align 8, !tbaa !32
  %.not620 = icmp eq i64 %116, 0
  br i1 %.not620, label %.critedge690, label %117

117:                                              ; preds = %115
  %118 = load i16, ptr %102, align 2, !tbaa !30
  %119 = call noundef i64 @_ZN8fastgltf20getComponentByteSizeENS_13ComponentTypeE(i16 noundef zeroext %118) #5
  %120 = load i64, ptr %97, align 8, !tbaa !32
  %121 = urem i64 %120, %119
  %.not621 = icmp eq i64 %121, 0
  br i1 %.not621, label %122, label %.critedge692

122:                                              ; preds = %117
  %123 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  br i1 %123, label %124, label %.critedge690

124:                                              ; preds = %122
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %109)
  %126 = load i64, ptr %125, align 8, !tbaa !31
  %127 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %126) #5
  %128 = load i64, ptr %97, align 8, !tbaa !32
  %129 = getelementptr inbounds i8, ptr %127, i64 8
  %130 = load i64, ptr %129, align 8, !tbaa !33
  %131 = add i64 %130, %128
  %132 = urem i64 %131, %119
  %.not622 = icmp eq i64 %132, 0
  br i1 %.not622, label %133, label %.critedge692

133:                                              ; preds = %124
  %134 = getelementptr inbounds i8, ptr %127, i64 24
  %135 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %134)
  br i1 %135, label %136, label %.critedge690

136:                                              ; preds = %133
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %134)
  %138 = load i64, ptr %137, align 8, !tbaa !31
  %139 = urem i64 %138, %119
  %.not623 = icmp eq i64 %139, 0
  br i1 %.not623, label %.critedge690, label %.critedge692

.critedge690:                                     ; preds = %133, %136, %122, %115
  %140 = getelementptr inbounds i8, ptr %97, i64 24
  %141 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %140) #5
  br i1 %141, label %146, label %142

142:                                              ; preds = %.critedge690
  %143 = load i16, ptr %102, align 2, !tbaa !30
  switch i16 %143, label %146 [
    i16 29702, label %144
    i16 -3062, label %144
  ]

144:                                              ; preds = %142, %142
  %145 = call noundef zeroext i1 @_ZSt17holds_alternativeISt6vectorIdNSt3pmr21polymorphic_allocatorIdEEEJSt9monostateS4_S0_IlNS2_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %140) #5
  br i1 %145, label %146, label %.critedge692

146:                                              ; preds = %142, %144, %.critedge690
  %147 = getelementptr inbounds i8, ptr %97, i64 64
  %148 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %147) #5
  br i1 %148, label %153, label %149

149:                                              ; preds = %146
  %150 = load i16, ptr %102, align 2, !tbaa !30
  switch i16 %150, label %153 [
    i16 29702, label %151
    i16 -3062, label %151
  ]

151:                                              ; preds = %149, %149
  %152 = call noundef zeroext i1 @_ZSt17holds_alternativeISt6vectorIdNSt3pmr21polymorphic_allocatorIdEEEJSt9monostateS4_S0_IlNS2_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %147) #5
  br i1 %152, label %153, label %.critedge692

153:                                              ; preds = %149, %151, %146
  %154 = getelementptr inbounds i8, ptr %97, i64 112
  %155 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEcvbEv(ptr noundef nonnull align 8 dereferenceable(56) %154) #5
  br i1 %155, label %156, label %.critedge693

156:                                              ; preds = %153
  %157 = call noundef ptr @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEptEv(ptr noundef nonnull align 8 dereferenceable(56) %154) #5
  %158 = getelementptr inbounds i8, ptr %157, i64 8
  %159 = load i64, ptr %158, align 8, !tbaa !42
  %160 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %159) #5
  %161 = getelementptr inbounds i8, ptr %160, i64 24
  %162 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %161) #5
  br i1 %162, label %.critedge692, label %163

163:                                              ; preds = %156
  %164 = getelementptr inbounds i8, ptr %160, i64 32
  %165 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEcvbEv(ptr noundef nonnull align 2 dereferenceable(2) %164) #5
  br i1 %165, label %.critedge692, label %166

166:                                              ; preds = %163
  %167 = call noundef ptr @_ZNKSt8optionalIN8fastgltf14SparseAccessorEEptEv(ptr noundef nonnull align 8 dereferenceable(56) %154) #5
  %168 = getelementptr inbounds i8, ptr %167, i64 24
  %169 = load i64, ptr %168, align 8, !tbaa !44
  %170 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %95, i64 noundef %169) #5
  %171 = getelementptr inbounds i8, ptr %170, i64 24
  %172 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %171) #5
  br i1 %172, label %.critedge692, label %173

173:                                              ; preds = %166
  %174 = getelementptr inbounds i8, ptr %170, i64 32
  %175 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEcvbEv(ptr noundef nonnull align 2 dereferenceable(2) %174) #5
  br i1 %175, label %.critedge692, label %.critedge693

.critedge693:                                     ; preds = %173, %153
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %177 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  br i1 %177, label %96, label %._crit_edge842

.critedge692:                                     ; preds = %173, %166, %156, %163, %96, %101, %111, %144, %151, %124, %136, %117
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  br label %986

._crit_edge842:                                   ; preds = %.critedge693, %.loopexit934
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  %178 = getelementptr inbounds i8, ptr %0, i64 240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %179 = call ptr @_ZNKSt6vectorIN8fastgltf9AnimationESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #5
  store ptr %179, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  %180 = call ptr @_ZNKSt6vectorIN8fastgltf9AnimationESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #5
  store ptr %180, ptr %10, align 8
  %181 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #5
  br i1 %181, label %.lr.ph853, label %._crit_edge854

.lr.ph853:                                        ; preds = %._crit_edge842
  %182 = getelementptr inbounds i8, ptr %0, i64 288
  br label %183

183:                                              ; preds = %.lr.ph853, %._crit_edge851
  %184 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #5
  %185 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  br i1 %185, label %.loopexit, label %186

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %187 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %187, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %188 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %188, ptr %12, align 8
  %189 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %189, label %.lr.ph847, label %._crit_edge848

.lr.ph847:                                        ; preds = %186, %._crit_edge845
  %190 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  %191 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %191, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %192 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %192, ptr %14, align 8
  %193 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  br i1 %193, label %.lr.ph844, label %._crit_edge845

.lr.ph844:                                        ; preds = %.lr.ph847
  %194 = getelementptr inbounds i8, ptr %190, i64 8
  %195 = getelementptr inbounds i8, ptr %190, i64 16
  br label %196

196:                                              ; preds = %.lr.ph844, %207
  %197 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  %198 = icmp eq ptr %190, %197
  br i1 %198, label %207, label %199

199:                                              ; preds = %196
  %200 = getelementptr inbounds i8, ptr %197, i64 8
  %201 = call noundef zeroext i1 @_ZN8fastgltfeqImmEEbRKNS_21OptionalWithFlagValueIT_EERKNS1_IT0_EE(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull align 8 dereferenceable(8) %200)
  br i1 %201, label %202, label %207

202:                                              ; preds = %199
  %203 = load i8, ptr %195, align 8, !tbaa !45
  %204 = getelementptr inbounds i8, ptr %197, i64 16
  %205 = load i8, ptr %204, align 8, !tbaa !45
  %206 = icmp eq i8 %203, %205
  br i1 %206, label %212, label %207

207:                                              ; preds = %199, %202, %196
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  %209 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  br i1 %209, label %196, label %._crit_edge845

._crit_edge845:                                   ; preds = %207, %.lr.ph847
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %211 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %211, label %.lr.ph847, label %._crit_edge848

212:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  br label %.loopexit

._crit_edge848:                                   ; preds = %._crit_edge845, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  %213 = getelementptr inbounds i8, ptr %184, i64 32
  %214 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf16AnimationSamplerENSt3pmr21polymorphic_allocatorIS1_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %213) #5
  br i1 %214, label %.loopexit, label %215

215:                                              ; preds = %._crit_edge848
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %216 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %216, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %217 = call ptr @_ZNKSt6vectorIN8fastgltf16AnimationChannelENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %184) #5
  store ptr %217, ptr %16, align 8
  %218 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  br i1 %218, label %.lr.ph850, label %._crit_edge851

.lr.ph850:                                        ; preds = %215, %271
  %219 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %220 = load i64, ptr %219, align 8, !tbaa !48
  %221 = call noundef nonnull align 8 dereferenceable(17) ptr @_ZNKSt6vectorIN8fastgltf16AnimationSamplerENSt3pmr21polymorphic_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %213, i64 noundef %220) #5
  %222 = load i64, ptr %221, align 8, !tbaa !49
  %223 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %222) #5
  %224 = getelementptr inbounds i8, ptr %223, i64 16
  %225 = load i8, ptr %224, align 8, !tbaa !9
  %.not624 = icmp eq i8 %225, 9
  br i1 %.not624, label %226, label %274

226:                                              ; preds = %.lr.ph850
  %227 = getelementptr inbounds i8, ptr %223, i64 18
  %228 = load i16, ptr %227, align 2, !tbaa !30
  switch i16 %228, label %274 [
    i16 29702, label %229
    i16 -3062, label %229
  ]

229:                                              ; preds = %226, %226
  %230 = getelementptr inbounds i8, ptr %223, i64 104
  %231 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %230) #5
  br i1 %231, label %232, label %238

232:                                              ; preds = %229
  %233 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %230) #5
  %234 = load i64, ptr %233, align 8, !tbaa !31
  %235 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %234) #5
  %236 = getelementptr inbounds i8, ptr %235, i64 40
  %237 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %236) #5
  br i1 %237, label %271, label %238

238:                                              ; preds = %232, %229
  %239 = getelementptr inbounds i8, ptr %223, i64 8
  %240 = load i64, ptr %239, align 8, !tbaa !52
  %241 = icmp eq i64 %240, 0
  %242 = getelementptr inbounds i8, ptr %219, i64 16
  %243 = load i8, ptr %242, align 8
  %244 = icmp eq i8 %243, 4
  %or.cond755 = select i1 %241, i1 true, i1 %244
  br i1 %or.cond755, label %271, label %245

245:                                              ; preds = %238
  %246 = getelementptr inbounds i8, ptr %221, i64 8
  %247 = load i64, ptr %246, align 8, !tbaa !53
  %248 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %247) #5
  %249 = getelementptr inbounds i8, ptr %248, i64 104
  %250 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %249) #5
  br i1 %250, label %251, label %257

251:                                              ; preds = %245
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %249) #5
  %253 = load i64, ptr %252, align 8, !tbaa !31
  %254 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %182, i64 noundef %253) #5
  %255 = getelementptr inbounds i8, ptr %254, i64 40
  %256 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %255) #5
  br i1 %256, label %271, label %257

257:                                              ; preds = %251, %245
  %258 = getelementptr inbounds i8, ptr %221, i64 16
  %259 = load i8, ptr %258, align 8, !tbaa !54
  switch i8 %259, label %271 [
    i8 0, label %260
    i8 1, label %260
    i8 2, label %264
  ]

260:                                              ; preds = %257, %257
  %261 = load i64, ptr %239, align 8, !tbaa !52
  %262 = getelementptr inbounds i8, ptr %248, i64 8
  %263 = load i64, ptr %262, align 8, !tbaa !52
  %.not628 = icmp eq i64 %261, %263
  br i1 %.not628, label %271, label %274

264:                                              ; preds = %257
  %265 = load i64, ptr %239, align 8, !tbaa !52
  %266 = icmp ult i64 %265, 2
  br i1 %266, label %274, label %267

267:                                              ; preds = %264
  %268 = mul i64 %265, 3
  %269 = getelementptr inbounds i8, ptr %248, i64 8
  %270 = load i64, ptr %269, align 8, !tbaa !52
  %.not627 = icmp eq i64 %268, %270
  br i1 %.not627, label %271, label %274

271:                                              ; preds = %257, %260, %267, %232, %238, %251
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  %273 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf16AnimationChannelESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  br i1 %273, label %.lr.ph850, label %._crit_edge851

274:                                              ; preds = %.lr.ph850, %226, %260, %264, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br label %.loopexit

._crit_edge851:                                   ; preds = %271, %215
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #5
  %276 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #5
  br i1 %276, label %183, label %._crit_edge854

.loopexit:                                        ; preds = %183, %._crit_edge848, %212, %274
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  br label %986

._crit_edge854:                                   ; preds = %._crit_edge851, %._crit_edge842
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  %277 = getelementptr inbounds i8, ptr %0, i64 264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %278 = call ptr @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #5
  store ptr %278, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %279 = call ptr @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #5
  store ptr %279, ptr %18, align 8
  %280 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %280, label %.lr.ph856, label %._crit_edge857

.lr.ph856:                                        ; preds = %._crit_edge854, %283
  %281 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %282 = load i64, ptr %281, align 8, !tbaa !55
  %.not629 = icmp eq i64 %282, 0
  br i1 %.not629, label %286, label %283

283:                                              ; preds = %.lr.ph856
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %285 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %285, label %.lr.ph856, label %._crit_edge857

286:                                              ; preds = %.lr.ph856
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  br label %986

._crit_edge857:                                   ; preds = %283, %._crit_edge854
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  %287 = getelementptr inbounds i8, ptr %0, i64 288
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  %288 = call ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #5
  store ptr %288, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %289 = call ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #5
  store ptr %289, ptr %20, align 8
  %290 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  br i1 %290, label %.lr.ph859, label %._crit_edge860

.lr.ph859:                                        ; preds = %._crit_edge857
  %.sroa.0327.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL23EXT_meshopt_compressionE, align 8
  %.sroa.2328.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL23EXT_meshopt_compressionE, i64 8), align 8
  br label %291

291:                                              ; preds = %.lr.ph859, %.critedge701
  %292 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  %293 = getelementptr inbounds i8, ptr %292, i64 16
  %294 = load i64, ptr %293, align 8, !tbaa !64
  %295 = icmp eq i64 %294, 0
  br i1 %295, label %.critedge703, label %296

296:                                              ; preds = %291
  %297 = getelementptr inbounds i8, ptr %292, i64 24
  %298 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %297)
  br i1 %298, label %299, label %311

299:                                              ; preds = %296
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %297) #5
  %301 = load i64, ptr %300, align 8, !tbaa !31
  %302 = icmp ult i64 %301, 4
  br i1 %302, label %.critedge703, label %303

303:                                              ; preds = %299
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %297) #5
  %305 = load i64, ptr %304, align 8, !tbaa !31
  %306 = icmp ugt i64 %305, 252
  br i1 %306, label %.critedge703, label %307

307:                                              ; preds = %303
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %297) #5
  %309 = load i64, ptr %308, align 8, !tbaa !31
  %310 = and i64 %309, 3
  %.not630 = icmp eq i64 %310, 0
  br i1 %.not630, label %311, label %.critedge703

311:                                              ; preds = %307, %296
  %312 = load i64, ptr %292, align 8, !tbaa !65
  %313 = call noundef i64 @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #5
  %.not631 = icmp ult i64 %312, %313
  br i1 %.not631, label %314, label %.critedge703

314:                                              ; preds = %311
  %315 = getelementptr inbounds i8, ptr %292, i64 40
  %316 = call noundef zeroext i1 @_ZStneIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEbRKSt10unique_ptrIT_T0_EDn(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr null) #5
  br i1 %316, label %317, label %319

317:                                              ; preds = %314
  %318 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0327.0.copyload, ptr %.sroa.2328.0.copyload)
  br i1 %318, label %319, label %.critedge703

319:                                              ; preds = %317, %314
  %320 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  br i1 %320, label %321, label %.critedge701

321:                                              ; preds = %319
  %322 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %323 = getelementptr inbounds i8, ptr %322, i64 32
  %324 = load i8, ptr %323, align 8, !tbaa !66
  switch i8 %324, label %.critedge701 [
    i8 0, label %325
    i8 1, label %335
    i8 2, label %340
  ]

325:                                              ; preds = %321
  %326 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %327 = getelementptr inbounds i8, ptr %326, i64 40
  %328 = load i64, ptr %327, align 8, !tbaa !70
  %329 = and i64 %328, 3
  %.not635 = icmp eq i64 %329, 0
  br i1 %.not635, label %330, label %.critedge703

330:                                              ; preds = %325
  %331 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %332 = getelementptr inbounds i8, ptr %331, i64 40
  %333 = load i64, ptr %332, align 8, !tbaa !70
  %334 = icmp ugt i64 %333, 256
  br i1 %334, label %.critedge703, label %.critedge701

335:                                              ; preds = %321
  %336 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %337 = getelementptr inbounds i8, ptr %336, i64 24
  %338 = load i64, ptr %337, align 8, !tbaa !71
  %339 = urem i64 %338, 3
  %.not632 = icmp eq i64 %339, 0
  br i1 %.not632, label %340, label %.critedge703

340:                                              ; preds = %335, %321
  %341 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %342 = getelementptr inbounds i8, ptr %341, i64 40
  %343 = load i64, ptr %342, align 8, !tbaa !70
  %.not633 = icmp eq i64 %343, 2
  br i1 %.not633, label %.critedge701, label %344

344:                                              ; preds = %340
  %345 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %315) #5
  %346 = getelementptr inbounds i8, ptr %345, i64 40
  %347 = load i64, ptr %346, align 8, !tbaa !70
  %.not634 = icmp eq i64 %347, 4
  br i1 %.not634, label %.critedge701, label %.critedge703

.critedge701:                                     ; preds = %321, %330, %344, %340, %319
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  %349 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  br i1 %349, label %291, label %._crit_edge860

.critedge703:                                     ; preds = %291, %307, %303, %299, %311, %317, %344, %335, %325, %330
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  br label %986

._crit_edge860:                                   ; preds = %.critedge701, %._crit_edge857
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  %350 = getelementptr inbounds i8, ptr %0, i64 312
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %351 = call ptr @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #5
  store ptr %351, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  %352 = call ptr @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #5
  store ptr %352, ptr %22, align 8
  %353 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  br i1 %353, label %.lr.ph862, label %._crit_edge863

.lr.ph862:                                        ; preds = %._crit_edge860, %.critedge706
  %354 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  %355 = call noundef ptr @_ZSt6get_ifIN8fastgltf6Camera12OrthographicEJNS1_11PerspectiveES2_EENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef nonnull %354) #5
  %.not636 = icmp eq ptr %355, null
  br i1 %.not636, label %360, label %356

356:                                              ; preds = %.lr.ph862
  %357 = getelementptr inbounds i8, ptr %355, i64 8
  %358 = load float, ptr %357, align 4, !tbaa !72
  %359 = fcmp oeq float %358, 0.000000e+00
  br i1 %359, label %381, label %.critedge706

360:                                              ; preds = %.lr.ph862
  %361 = call noundef ptr @_ZSt6get_ifIN8fastgltf6Camera11PerspectiveEJS2_NS1_12OrthographicEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef nonnull %354) #5
  %.not637 = icmp eq ptr %361, null
  br i1 %.not637, label %.critedge706, label %362

362:                                              ; preds = %360
  %363 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %361)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  br i1 %363, label %364, label %.critedge

364:                                              ; preds = %362
  store float 0.000000e+00, ptr %23, align 4, !tbaa !75
  %365 = call noundef zeroext i1 @_ZN8fastgltfeqIffEEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 4 dereferenceable(4) %361, ptr noundef nonnull align 4 dereferenceable(4) %23)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  br i1 %365, label %381, label %366

.critedge:                                        ; preds = %362
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  br label %366

366:                                              ; preds = %.critedge, %364
  %367 = getelementptr inbounds i8, ptr %361, i64 4
  %368 = load float, ptr %367, align 4, !tbaa !76
  %369 = fcmp oeq float %368, 0.000000e+00
  br i1 %369, label %381, label %370

370:                                              ; preds = %366
  %371 = getelementptr inbounds i8, ptr %361, i64 8
  %372 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %371)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  br i1 %372, label %373, label %.critedge60

373:                                              ; preds = %370
  store float 0.000000e+00, ptr %24, align 4, !tbaa !75
  %374 = call noundef zeroext i1 @_ZN8fastgltfeqIffEEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 4 dereferenceable(4) %371, ptr noundef nonnull align 4 dereferenceable(4) %24)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %374, label %381, label %375

.critedge60:                                      ; preds = %370
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br label %375

375:                                              ; preds = %.critedge60, %373
  %376 = getelementptr inbounds i8, ptr %361, i64 12
  %377 = load float, ptr %376, align 4, !tbaa !79
  %378 = fcmp oeq float %377, 0.000000e+00
  br i1 %378, label %381, label %.critedge706

.critedge706:                                     ; preds = %360, %375, %356
  %379 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  %380 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  br i1 %380, label %.lr.ph862, label %._crit_edge863

381:                                              ; preds = %356, %375, %373, %366, %364
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  br label %986

._crit_edge863:                                   ; preds = %.critedge706, %._crit_edge860
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  %382 = getelementptr inbounds i8, ptr %0, i64 336
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  %383 = call ptr @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  store ptr %383, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  %384 = call ptr @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  store ptr %384, ptr %26, align 8
  %385 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #5
  br i1 %385, label %.lr.ph865, label %._crit_edge866

.lr.ph865:                                        ; preds = %._crit_edge863, %.critedge759
  %386 = call noundef nonnull align 8 dereferenceable(232) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #5
  %387 = call noundef ptr @_ZSt6get_ifIN8fastgltf7sources10BufferViewEJSt9monostateS2_NS1_3URIENS1_5ArrayENS1_6VectorENS1_12CustomBufferENS1_8ByteViewENS1_8FallbackEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef nonnull %386) #5
  %.not638 = icmp eq ptr %387, null
  br i1 %.not638, label %.critedge759, label %388

388:                                              ; preds = %.lr.ph865
  %389 = load i64, ptr %387, align 8, !tbaa !80
  %390 = call noundef i64 @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #5
  %.not639 = icmp ult i64 %389, %390
  br i1 %.not639, label %.critedge759, label %393

.critedge759:                                     ; preds = %388, %.lr.ph865
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #5
  %392 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #5
  br i1 %392, label %.lr.ph865, label %._crit_edge866

393:                                              ; preds = %388
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  br label %986

._crit_edge866:                                   ; preds = %.critedge759, %._crit_edge863
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  %394 = getelementptr inbounds i8, ptr %0, i64 360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  %395 = call ptr @_ZNKSt6vectorIN8fastgltf5LightESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %394) #5
  store ptr %395, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  %396 = call ptr @_ZNKSt6vectorIN8fastgltf5LightESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %394) #5
  store ptr %396, ptr %28, align 8
  %397 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  br i1 %397, label %.lr.ph868, label %._crit_edge869

.lr.ph868:                                        ; preds = %._crit_edge866, %.critedge712
  %398 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #5
  %399 = load i8, ptr %398, align 8, !tbaa !83
  %400 = icmp eq i8 %399, 0
  br i1 %400, label %401, label %404

401:                                              ; preds = %.lr.ph868
  %402 = getelementptr inbounds i8, ptr %398, i64 20
  %403 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %402)
  br i1 %403, label %440, label %404

404:                                              ; preds = %401, %.lr.ph868
  %405 = getelementptr inbounds i8, ptr %398, i64 20
  %406 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %405)
  br i1 %406, label %407, label %411

407:                                              ; preds = %404
  %408 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %405)
  %409 = load float, ptr %408, align 4, !tbaa !75
  %410 = fcmp ugt float %409, 0.000000e+00
  br i1 %410, label %411, label %440

411:                                              ; preds = %407, %404
  %412 = load i8, ptr %398, align 8, !tbaa !83
  %.not640 = icmp eq i8 %412, 1
  %413 = getelementptr inbounds i8, ptr %398, i64 24
  %414 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %413)
  br i1 %.not640, label %419, label %415

415:                                              ; preds = %411
  br i1 %414, label %440, label %416

416:                                              ; preds = %415
  %417 = getelementptr inbounds i8, ptr %398, i64 28
  %418 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %417)
  br i1 %418, label %440, label %.critedge712

419:                                              ; preds = %411
  br i1 %414, label %420, label %440

420:                                              ; preds = %419
  %421 = getelementptr inbounds i8, ptr %398, i64 28
  %422 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueIfE9has_valueEv(ptr noundef nonnull align 4 dereferenceable(4) %421)
  br i1 %422, label %423, label %440

423:                                              ; preds = %420
  %424 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %413)
  %425 = load float, ptr %424, align 4, !tbaa !75
  %426 = fcmp olt float %425, 0.000000e+00
  br i1 %426, label %440, label %427

427:                                              ; preds = %423
  %428 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %413)
  %429 = load float, ptr %428, align 4, !tbaa !75
  %430 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %421)
  %431 = load float, ptr %430, align 4, !tbaa !75
  %432 = fcmp ogt float %429, %431
  br i1 %432, label %440, label %433

433:                                              ; preds = %427
  %434 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4) %421)
  %435 = load float, ptr %434, align 4, !tbaa !75
  %436 = fpext float %435 to x86_fp80
  %437 = fcmp ogt x86_fp80 %436, 0xK3FFFC90FDAA22168C000
  br i1 %437, label %440, label %.critedge712

.critedge712:                                     ; preds = %433, %416
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #5
  %439 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  br i1 %439, label %.lr.ph868, label %._crit_edge869

440:                                              ; preds = %401, %407, %416, %415, %420, %419, %423, %427, %433
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  br label %986

._crit_edge869:                                   ; preds = %.critedge712, %._crit_edge866
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  %441 = getelementptr inbounds i8, ptr %0, i64 384
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  %442 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %441) #5
  store ptr %442, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  %443 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %441) #5
  store ptr %443, ptr %30, align 8
  %444 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #5
  br i1 %444, label %.lr.ph871, label %._crit_edge872

.lr.ph871:                                        ; preds = %._crit_edge869
  %445 = getelementptr inbounds i8, ptr %0, i64 528
  %446 = getelementptr inbounds i8, ptr %32, i64 8
  %447 = getelementptr inbounds i8, ptr %33, i64 8
  %448 = getelementptr inbounds i8, ptr %34, i64 8
  %449 = getelementptr inbounds i8, ptr %35, i64 8
  %450 = getelementptr inbounds i8, ptr %36, i64 8
  %.sroa.0263.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL24KHR_materials_anisotropyE, align 8
  %.sroa.2264.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL24KHR_materials_anisotropyE, i64 8), align 8
  %.sroa.0261.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL23KHR_materials_clearcoatE, align 8
  %.sroa.2262.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL23KHR_materials_clearcoatE, i64 8), align 8
  %.sroa.0259.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL25KHR_materials_iridescenceE, align 8
  %.sroa.2260.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL25KHR_materials_iridescenceE, i64 8), align 8
  %.sroa.0257.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL19KHR_materials_sheenE, align 8
  %.sroa.2258.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL19KHR_materials_sheenE, i64 8), align 8
  %.sroa.0255.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL22KHR_materials_specularE, align 8
  %.sroa.2256.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL22KHR_materials_specularE, i64 8), align 8
  %.sroa.0253.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL26KHR_materials_transmissionE, align 8
  %.sroa.2254.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL26KHR_materials_transmissionE, i64 8), align 8
  %.sroa.0251.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL20KHR_materials_volumeE, align 8
  %.sroa.2252.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL20KHR_materials_volumeE, i64 8), align 8
  %.sroa.0249.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL31KHR_materials_emissive_strengthE, align 8
  %.sroa.2250.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL31KHR_materials_emissive_strengthE, i64 8), align 8
  %.sroa.0247.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL17KHR_materials_iorE, align 8
  %.sroa.2248.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL17KHR_materials_iorE, i64 8), align 8
  %.sroa.0245.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL36MSFT_packing_normalRoughnessMetallicE, align 8
  %.sroa.2246.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL36MSFT_packing_normalRoughnessMetallicE, i64 8), align 8
  %.sroa.0243.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL39MSFT_packing_occlusionRoughnessMetallicE, align 8
  %.sroa.2244.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL39MSFT_packing_occlusionRoughnessMetallicE, i64 8), align 8
  br label %451

451:                                              ; preds = %.lr.ph871, %.critedge761
  %452 = call noundef nonnull align 8 dereferenceable(368) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  store ptr %445, ptr %31, align 8, !tbaa !5
  %453 = getelementptr inbounds i8, ptr %452, i64 88
  %454 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %453) #5
  br i1 %454, label %455, label %460

455:                                              ; preds = %451
  %456 = call noundef ptr @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %453) #5
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(8) %456) #5
  %457 = load i64, ptr %32, align 8
  %458 = load i8, ptr %446, align 8
  %459 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %31, i64 %457, i8 %458)
  br i1 %459, label %551, label %460

460:                                              ; preds = %455, %451
  %461 = getelementptr inbounds i8, ptr %452, i64 168
  %462 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %461) #5
  br i1 %462, label %463, label %468

463:                                              ; preds = %460
  %464 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %461) #5
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(8) %464) #5
  %465 = load i64, ptr %33, align 8
  %466 = load i8, ptr %447, align 8
  %467 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %31, i64 %465, i8 %466)
  br i1 %467, label %551, label %468

468:                                              ; preds = %463, %460
  %469 = getelementptr inbounds i8, ptr %452, i64 128
  %470 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %469) #5
  br i1 %470, label %471, label %476

471:                                              ; preds = %468
  %472 = call noundef ptr @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %469) #5
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(8) %472) #5
  %473 = load i64, ptr %34, align 8
  %474 = load i8, ptr %448, align 8
  %475 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %31, i64 %473, i8 %474)
  br i1 %475, label %551, label %476

476:                                              ; preds = %471, %468
  %477 = getelementptr inbounds i8, ptr %452, i64 24
  %478 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %477) #5
  br i1 %478, label %479, label %484

479:                                              ; preds = %476
  %480 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %477) #5
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(8) %480) #5
  %481 = load i64, ptr %35, align 8
  %482 = load i8, ptr %449, align 8
  %483 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %31, i64 %481, i8 %482)
  br i1 %483, label %551, label %484

484:                                              ; preds = %479, %476
  %485 = getelementptr inbounds i8, ptr %452, i64 56
  %486 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %485) #5
  br i1 %486, label %487, label %492

487:                                              ; preds = %484
  %488 = call noundef ptr @_ZNKSt8optionalIN8fastgltf11TextureInfoEEptEv(ptr noundef nonnull align 8 dereferenceable(32) %485) #5
  call void @_ZNSt8optionalImEC2IRKmTnNSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS0_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_IS6_ISt10in_place_tSD_EESt16is_constructibleImJS9_EESt14is_convertibleIS9_mEEEbE4typeELb1EEEOS9_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(8) %488) #5
  %489 = load i64, ptr %36, align 8
  %490 = load i8, ptr %450, align 8
  %491 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8) %31, i64 %489, i8 %490)
  br i1 %491, label %551, label %492

492:                                              ; preds = %487, %484
  %493 = getelementptr inbounds i8, ptr %452, i64 232
  %494 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %493) #5
  br i1 %494, label %495, label %497

495:                                              ; preds = %492
  %496 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0263.0.copyload, ptr %.sroa.2264.0.copyload)
  br i1 %496, label %497, label %551

497:                                              ; preds = %495, %492
  %498 = getelementptr inbounds i8, ptr %452, i64 240
  %499 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %498) #5
  br i1 %499, label %500, label %502

500:                                              ; preds = %497
  %501 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0261.0.copyload, ptr %.sroa.2262.0.copyload)
  br i1 %501, label %502, label %551

502:                                              ; preds = %500, %497
  %503 = getelementptr inbounds i8, ptr %452, i64 248
  %504 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %503) #5
  br i1 %504, label %505, label %507

505:                                              ; preds = %502
  %506 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0259.0.copyload, ptr %.sroa.2260.0.copyload)
  br i1 %506, label %507, label %551

507:                                              ; preds = %505, %502
  %508 = getelementptr inbounds i8, ptr %452, i64 256
  %509 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %508) #5
  br i1 %509, label %510, label %512

510:                                              ; preds = %507
  %511 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0257.0.copyload, ptr %.sroa.2258.0.copyload)
  br i1 %511, label %512, label %551

512:                                              ; preds = %510, %507
  %513 = getelementptr inbounds i8, ptr %452, i64 264
  %514 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %513) #5
  br i1 %514, label %515, label %517

515:                                              ; preds = %512
  %516 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0255.0.copyload, ptr %.sroa.2256.0.copyload)
  br i1 %516, label %517, label %551

517:                                              ; preds = %515, %512
  %518 = getelementptr inbounds i8, ptr %452, i64 272
  %519 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %518) #5
  br i1 %519, label %520, label %522

520:                                              ; preds = %517
  %521 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0253.0.copyload, ptr %.sroa.2254.0.copyload)
  br i1 %521, label %522, label %551

522:                                              ; preds = %520, %517
  %523 = getelementptr inbounds i8, ptr %452, i64 280
  %524 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %523) #5
  br i1 %524, label %525, label %527

525:                                              ; preds = %522
  %526 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0251.0.copyload, ptr %.sroa.2252.0.copyload)
  br i1 %526, label %527, label %551

527:                                              ; preds = %525, %522
  %528 = getelementptr inbounds i8, ptr %452, i64 220
  %529 = load float, ptr %528, align 4, !tbaa !88
  %530 = fcmp une float %529, 1.000000e+00
  br i1 %530, label %531, label %533

531:                                              ; preds = %527
  %532 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0249.0.copyload, ptr %.sroa.2250.0.copyload)
  br i1 %532, label %533, label %551

533:                                              ; preds = %531, %527
  %534 = getelementptr inbounds i8, ptr %452, i64 224
  %535 = load float, ptr %534, align 8, !tbaa !157
  %536 = fcmp une float %535, 1.500000e+00
  br i1 %536, label %537, label %539

537:                                              ; preds = %533
  %538 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0247.0.copyload, ptr %.sroa.2248.0.copyload)
  br i1 %538, label %539, label %551

539:                                              ; preds = %537, %533
  %540 = getelementptr inbounds i8, ptr %452, i64 288
  %541 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %540) #5
  br i1 %541, label %542, label %544

542:                                              ; preds = %539
  %543 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0245.0.copyload, ptr %.sroa.2246.0.copyload)
  br i1 %543, label %544, label %551

544:                                              ; preds = %542, %539
  %545 = getelementptr inbounds i8, ptr %452, i64 320
  %546 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %545) #5
  br i1 %546, label %547, label %.critedge761

547:                                              ; preds = %544
  %548 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0243.0.copyload, ptr %.sroa.2244.0.copyload)
  br i1 %548, label %.critedge761, label %551

.critedge761:                                     ; preds = %547, %544
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  %549 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #5
  %550 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #5
  br i1 %550, label %451, label %._crit_edge872

551:                                              ; preds = %547, %542, %537, %531, %525, %520, %515, %510, %505, %500, %495, %487, %479, %471, %463, %455
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  br label %986

._crit_edge872:                                   ; preds = %.critedge761, %._crit_edge869
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  %552 = getelementptr inbounds i8, ptr %0, i64 408
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  %553 = call ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %552) #5
  store ptr %553, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  %554 = call ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %552) #5
  store ptr %554, ptr %38, align 8
  %555 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  br i1 %555, label %.lr.ph882, label %._crit_edge883

.lr.ph882:                                        ; preds = %._crit_edge872
  %.sroa.0227.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL22KHR_materials_variantsE, align 8
  %.sroa.2228.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL22KHR_materials_variantsE, i64 8), align 8
  %556 = getelementptr inbounds i8, ptr %0, i64 552
  %557 = getelementptr inbounds i8, ptr %43, i64 8
  %558 = getelementptr inbounds i8, ptr %44, i64 8
  %559 = getelementptr inbounds i8, ptr %45, i64 8
  %560 = getelementptr inbounds i8, ptr %46, i64 8
  %561 = getelementptr inbounds i8, ptr %47, i64 8
  %562 = getelementptr inbounds i8, ptr %48, i64 8
  %563 = getelementptr inbounds i8, ptr %49, i64 8
  %564 = getelementptr inbounds i8, ptr %50, i64 8
  %565 = getelementptr inbounds i8, ptr %51, i64 8
  %566 = getelementptr inbounds i8, ptr %52, i64 8
  %.sroa.0141.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, align 8
  %.sroa.2142.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL21KHR_mesh_quantizationE, i64 8), align 8
  br label %567

567:                                              ; preds = %.lr.ph882, %._crit_edge880
  %568 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  %569 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %568) #5
  store ptr %569, ptr %39, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  %570 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %568) #5
  store ptr %570, ptr %40, align 8
  %571 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #5
  br i1 %571, label %.lr.ph879, label %._crit_edge880

.lr.ph879:                                        ; preds = %567, %.critedge723
  %572 = call noundef nonnull align 8 dereferenceable(304) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #5
  %573 = getelementptr inbounds i8, ptr %572, i64 272
  %574 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %573)
  br i1 %574, label %575, label %579

575:                                              ; preds = %.lr.ph879
  %576 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %573) #5
  %577 = load i64, ptr %576, align 8, !tbaa !31
  %578 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %441) #5
  %.not641 = icmp ult i64 %577, %578
  br i1 %.not641, label %579, label %.thread824

579:                                              ; preds = %575, %.lr.ph879
  %580 = getelementptr inbounds i8, ptr %572, i64 280
  %581 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #5
  br i1 %581, label %600, label %582

582:                                              ; preds = %579
  %583 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0227.0.copyload, ptr %.sroa.2228.0.copyload)
  br i1 %583, label %584, label %.thread824

584:                                              ; preds = %582
  %585 = call noundef i64 @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #5
  %586 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %556) #5
  %.not642 = icmp eq i64 %585, %586
  br i1 %.not642, label %587, label %.thread824

587:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  %588 = call ptr @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #5
  store ptr %588, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  %589 = call ptr @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %580) #5
  store ptr %589, ptr %42, align 8
  %590 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #5
  br i1 %590, label %.lr.ph874, label %.thread805

.thread805:                                       ; preds = %select.unfold801, %587
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  br label %600

.lr.ph874:                                        ; preds = %587, %select.unfold801
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #5
  %592 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %591)
  br i1 %592, label %593, label %select.unfold801

593:                                              ; preds = %.lr.ph874
  %594 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %591)
  %595 = load i64, ptr %594, align 8, !tbaa !31
  %596 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %441) #5
  %.not643 = icmp ult i64 %595, %596
  br i1 %.not643, label %select.unfold801, label %599

select.unfold801:                                 ; preds = %593, %.lr.ph874
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #5
  %598 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #5
  br i1 %598, label %.lr.ph874, label %.thread805

599:                                              ; preds = %593
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  br label %.thread824

600:                                              ; preds = %.thread805, %579
  %601 = getelementptr inbounds i8, ptr %572, i64 264
  %602 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %601)
  br i1 %602, label %603, label %.critedge718

603:                                              ; preds = %600
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %601) #5
  %605 = load i64, ptr %604, align 8, !tbaa !31
  %606 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #5
  %.not644 = icmp ult i64 %605, %606
  br i1 %.not644, label %607, label %.thread824

607:                                              ; preds = %603
  %608 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %601) #5
  %609 = load i64, ptr %608, align 8, !tbaa !31
  %610 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %609) #5
  %611 = getelementptr inbounds i8, ptr %610, i64 104
  %612 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %611)
  br i1 %612, label %613, label %.critedge718

613:                                              ; preds = %607
  %614 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %611) #5
  %615 = load i64, ptr %614, align 8, !tbaa !31
  %616 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %287, i64 noundef %615) #5
  %617 = getelementptr inbounds i8, ptr %616, i64 24
  %618 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %617)
  br i1 %618, label %.thread824, label %.critedge718

.critedge718:                                     ; preds = %607, %613, %600
  %619 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(224) %572) #5
  %620 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %572) #5
  %.not645875 = icmp eq ptr %619, %620
  br i1 %.not645875, label %.critedge723, label %.lr.ph877

.lr.ph877:                                        ; preds = %.critedge718, %.thread811
  %.0600876 = phi ptr [ %770, %.thread811 ], [ %619, %.critedge718 ]
  %621 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #5
  %622 = getelementptr inbounds i8, ptr %.0600876, i64 40
  %623 = load i64, ptr %622, align 8, !tbaa !158
  %.not646 = icmp ugt i64 %621, %623
  br i1 %.not646, label %624, label %.thread824

624:                                              ; preds = %.lr.ph877
  %625 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %626 = extractvalue { i64, ptr } %625, 0
  %627 = extractvalue { i64, ptr } %625, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef @.str.23) #5
  %628 = load i64, ptr %43, align 8
  %629 = load ptr, ptr %557, align 8
  %630 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %626, ptr %627, i64 %628, ptr %629)
  br i1 %630, label %665, label %631

631:                                              ; preds = %624
  %632 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.22)
  br i1 %632, label %633, label %665

633:                                              ; preds = %631
  %634 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.24)
  br i1 %634, label %635, label %665

635:                                              ; preds = %633
  %636 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.25)
  br i1 %636, label %637, label %665

637:                                              ; preds = %635
  %638 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %639 = extractvalue { i64, ptr } %638, 0
  %640 = extractvalue { i64, ptr } %638, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef @.str.26) #5
  %641 = load i64, ptr %44, align 8
  %642 = load ptr, ptr %558, align 8
  %643 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %639, ptr %640, i64 %641, ptr %642)
  br i1 %643, label %665, label %644

644:                                              ; preds = %637
  %645 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %646 = extractvalue { i64, ptr } %645, 0
  %647 = extractvalue { i64, ptr } %645, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef @.str.27) #5
  %648 = load i64, ptr %45, align 8
  %649 = load ptr, ptr %559, align 8
  %650 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %646, ptr %647, i64 %648, ptr %649)
  br i1 %650, label %665, label %651

651:                                              ; preds = %644
  %652 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %653 = extractvalue { i64, ptr } %652, 0
  %654 = extractvalue { i64, ptr } %652, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.28) #5
  %655 = load i64, ptr %46, align 8
  %656 = load ptr, ptr %560, align 8
  %657 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %653, ptr %654, i64 %655, ptr %656)
  br i1 %657, label %665, label %658

658:                                              ; preds = %651
  %659 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %660 = extractvalue { i64, ptr } %659, 0
  %661 = extractvalue { i64, ptr } %659, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef @.str.29) #5
  %662 = load i64, ptr %47, align 8
  %663 = load ptr, ptr %561, align 8
  %664 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %660, ptr %661, i64 %662, ptr %663)
  br i1 %664, label %665, label %.thread824

665:                                              ; preds = %631, %633, %635, %637, %644, %651, %658, %624
  %666 = load i64, ptr %622, align 8, !tbaa !158
  %667 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %91, i64 noundef %666) #5
  %668 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.22)
  br i1 %668, label %669, label %683

669:                                              ; preds = %665
  %670 = getelementptr inbounds i8, ptr %667, i64 24
  %671 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %670) #5
  br i1 %671, label %.thread824, label %672

672:                                              ; preds = %669
  %673 = getelementptr inbounds i8, ptr %667, i64 64
  %674 = call noundef zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33) %673) #5
  %675 = getelementptr inbounds i8, ptr %667, i64 16
  %676 = load i8, ptr %675, align 8
  %.not673 = icmp ne i8 %676, 27
  %or.cond764.not = select i1 %674, i1 true, i1 %.not673
  br i1 %or.cond764.not, label %.thread824, label %677

677:                                              ; preds = %672
  %678 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0141.0.copyload, ptr %.sroa.2142.0.copyload)
  %679 = getelementptr inbounds i8, ptr %667, i64 18
  %680 = load i16, ptr %679, align 2, !tbaa !30
  br i1 %678, label %682, label %681

681:                                              ; preds = %677
  %.not674 = icmp eq i16 %680, 29702
  br i1 %.not674, label %.thread811, label %.thread824

682:                                              ; preds = %677
  switch i16 %680, label %.thread811 [
    i16 -3062, label %.thread824
    i16 29701, label %.thread824
  ]

683:                                              ; preds = %665
  %684 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.24)
  br i1 %684, label %685, label %694

685:                                              ; preds = %683
  %686 = getelementptr inbounds i8, ptr %667, i64 16
  %687 = load i8, ptr %686, align 8, !tbaa !9
  %.not668 = icmp eq i8 %687, 27
  br i1 %.not668, label %688, label %.thread824

688:                                              ; preds = %685
  %689 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0141.0.copyload, ptr %.sroa.2142.0.copyload)
  %690 = getelementptr inbounds i8, ptr %667, i64 18
  %691 = load i16, ptr %690, align 2, !tbaa !30
  br i1 %689, label %693, label %692

692:                                              ; preds = %688
  %.not669 = icmp eq i16 %691, 29702
  br i1 %.not669, label %.thread811, label %.thread824

693:                                              ; preds = %688
  switch i16 %691, label %.thread824 [
    i16 29702, label %.thread811
    i16 13314, label %.thread811
    i16 5120, label %.thread811
  ]

694:                                              ; preds = %683
  %695 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %.0600876, ptr noundef nonnull @.str.25)
  br i1 %695, label %696, label %705

696:                                              ; preds = %694
  %697 = getelementptr inbounds i8, ptr %667, i64 16
  %698 = load i8, ptr %697, align 8, !tbaa !9
  %.not663 = icmp eq i8 %698, 36
  br i1 %.not663, label %699, label %.thread824

699:                                              ; preds = %696
  %700 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0141.0.copyload, ptr %.sroa.2142.0.copyload)
  %701 = getelementptr inbounds i8, ptr %667, i64 18
  %702 = load i16, ptr %701, align 2, !tbaa !30
  br i1 %700, label %704, label %703

703:                                              ; preds = %699
  %.not664 = icmp eq i16 %702, 29702
  br i1 %.not664, label %.thread811, label %.thread824

704:                                              ; preds = %699
  switch i16 %702, label %.thread824 [
    i16 29702, label %.thread811
    i16 13314, label %.thread811
    i16 5120, label %.thread811
  ]

705:                                              ; preds = %694
  %706 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %707 = extractvalue { i64, ptr } %706, 0
  %708 = extractvalue { i64, ptr } %706, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef @.str.26) #5
  %709 = load i64, ptr %48, align 8
  %710 = load ptr, ptr %562, align 8
  %711 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %707, ptr %708, i64 %709, ptr %710)
  br i1 %711, label %712, label %721

712:                                              ; preds = %705
  %713 = getelementptr inbounds i8, ptr %667, i64 16
  %714 = load i8, ptr %713, align 8, !tbaa !9
  %.not659 = icmp eq i8 %714, 18
  br i1 %.not659, label %715, label %.thread824

715:                                              ; preds = %712
  %716 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0141.0.copyload, ptr %.sroa.2142.0.copyload)
  %717 = getelementptr inbounds i8, ptr %667, i64 18
  %718 = load i16, ptr %717, align 2, !tbaa !30
  br i1 %716, label %720, label %719

719:                                              ; preds = %715
  switch i16 %718, label %.thread824 [
    i16 29702, label %.thread811
    i16 5121, label %.thread811
    i16 13315, label %.thread811
  ]

720:                                              ; preds = %715
  switch i16 %718, label %.thread811 [
    i16 -3062, label %.thread824
    i16 29701, label %.thread824
  ]

721:                                              ; preds = %705
  %722 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %723 = extractvalue { i64, ptr } %722, 0
  %724 = extractvalue { i64, ptr } %722, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef @.str.27) #5
  %725 = load i64, ptr %49, align 8
  %726 = load ptr, ptr %563, align 8
  %727 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %723, ptr %724, i64 %725, ptr %726)
  br i1 %727, label %728, label %734

728:                                              ; preds = %721
  %729 = getelementptr inbounds i8, ptr %667, i64 16
  %730 = load i8, ptr %729, align 8, !tbaa !9
  switch i8 %730, label %.thread824 [
    i8 27, label %731
    i8 36, label %731
  ]

731:                                              ; preds = %728, %728
  %732 = getelementptr inbounds i8, ptr %667, i64 18
  %733 = load i16, ptr %732, align 2, !tbaa !30
  switch i16 %733, label %.thread824 [
    i16 29702, label %.thread811
    i16 5121, label %.thread811
    i16 13315, label %.thread811
  ]

734:                                              ; preds = %721
  %735 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %736 = extractvalue { i64, ptr } %735, 0
  %737 = extractvalue { i64, ptr } %735, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef @.str.28) #5
  %738 = load i64, ptr %50, align 8
  %739 = load ptr, ptr %564, align 8
  %740 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %736, ptr %737, i64 %738, ptr %739)
  br i1 %740, label %741, label %744

741:                                              ; preds = %734
  %742 = getelementptr inbounds i8, ptr %667, i64 16
  %743 = load i8, ptr %742, align 8, !tbaa !9
  %.not651 = icmp eq i8 %743, 36
  br i1 %.not651, label %767, label %.thread824

744:                                              ; preds = %734
  %745 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %746 = extractvalue { i64, ptr } %745, 0
  %747 = extractvalue { i64, ptr } %745, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef @.str.29) #5
  %748 = load i64, ptr %51, align 8
  %749 = load ptr, ptr %565, align 8
  %750 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %746, ptr %747, i64 %748, ptr %749)
  br i1 %750, label %751, label %757

751:                                              ; preds = %744
  %752 = getelementptr inbounds i8, ptr %667, i64 16
  %753 = load i8, ptr %752, align 8, !tbaa !9
  %.not647 = icmp eq i8 %753, 36
  br i1 %.not647, label %754, label %.thread824

754:                                              ; preds = %751
  %755 = getelementptr inbounds i8, ptr %667, i64 18
  %756 = load i16, ptr %755, align 2, !tbaa !30
  switch i16 %756, label %.thread824 [
    i16 29702, label %.thread811
    i16 5121, label %.thread811
    i16 13315, label %.thread811
  ]

757:                                              ; preds = %744
  %758 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %.0600876) #5
  %759 = extractvalue { i64, ptr } %758, 0
  %760 = extractvalue { i64, ptr } %758, 1
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef @.str.23) #5
  %761 = load i64, ptr %52, align 8
  %762 = load ptr, ptr %566, align 8
  %763 = call noundef zeroext i1 @_ZN8fastgltf10startsWithESt17basic_string_viewIcSt11char_traitsIcEES3_(i64 %759, ptr %760, i64 %761, ptr %762)
  %764 = getelementptr inbounds i8, ptr %667, i64 18
  %765 = load i16, ptr %764, align 2
  %766 = icmp eq i16 %765, 29701
  %or.cond = select i1 %763, i1 %766, i1 false
  br i1 %or.cond, label %.thread824, label %.thread811

767:                                              ; preds = %741
  %768 = getelementptr inbounds i8, ptr %667, i64 18
  %769 = load i16, ptr %768, align 2, !tbaa !30
  switch i16 %769, label %.thread824 [
    i16 13315, label %.thread811
    i16 5121, label %.thread811
  ]

.thread811:                                       ; preds = %720, %682, %767, %767, %754, %754, %754, %731, %731, %731, %719, %719, %719, %704, %704, %704, %693, %693, %693, %692, %757, %703, %681
  %770 = getelementptr inbounds i8, ptr %.0600876, i64 48
  %.not645 = icmp eq ptr %770, %620
  br i1 %.not645, label %.critedge723, label %.lr.ph877

.critedge723:                                     ; preds = %.thread811, %.critedge718
  %771 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %39) #5
  %772 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #5
  br i1 %772, label %.lr.ph879, label %._crit_edge880

._crit_edge880:                                   ; preds = %.critedge723, %567
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  %773 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  %774 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  br i1 %774, label %567, label %._crit_edge883

.thread824:                                       ; preds = %575, %582, %584, %603, %613, %720, %720, %682, %682, %767, %658, %.lr.ph877, %672, %669, %681, %685, %692, %693, %696, %703, %704, %712, %719, %728, %731, %741, %751, %754, %757, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  br label %986

._crit_edge883:                                   ; preds = %._crit_edge880, %._crit_edge872
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  %775 = getelementptr inbounds i8, ptr %0, i64 432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #5
  %776 = call ptr @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %775) #5
  store ptr %776, ptr %53, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #5
  %777 = call ptr @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %775) #5
  store ptr %777, ptr %54, align 8
  %778 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #5
  br i1 %778, label %.lr.ph888, label %.loopexit932

.lr.ph888:                                        ; preds = %._crit_edge883
  %779 = getelementptr inbounds i8, ptr %0, i64 504
  %780 = getelementptr inbounds i8, ptr %57, i64 8
  %781 = getelementptr inbounds i8, ptr %58, i64 8
  br label %782

782:                                              ; preds = %.lr.ph888, %.critedge731
  %783 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %784 = getelementptr inbounds i8, ptr %783, i64 16
  %785 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %784)
  br i1 %785, label %786, label %790

786:                                              ; preds = %782
  %787 = call noundef i64 @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %350) #5
  %788 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %784)
  %789 = load i64, ptr %788, align 8, !tbaa !31
  %.not675 = icmp ugt i64 %787, %789
  br i1 %.not675, label %790, label %.thread829

790:                                              ; preds = %786, %782
  %791 = getelementptr inbounds i8, ptr %783, i64 8
  %792 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %791)
  br i1 %792, label %793, label %797

793:                                              ; preds = %790
  %794 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %779) #5
  %795 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %791)
  %796 = load i64, ptr %795, align 8, !tbaa !31
  %.not676 = icmp ugt i64 %794, %796
  br i1 %.not676, label %797, label %.thread829

797:                                              ; preds = %793, %790
  %798 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %783)
  br i1 %798, label %799, label %803

799:                                              ; preds = %797
  %800 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %552) #5
  %801 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %783)
  %802 = load i64, ptr %801, align 8, !tbaa !31
  %.not677 = icmp ugt i64 %800, %802
  br i1 %.not677, label %803, label %.thread829

803:                                              ; preds = %799, %797
  %804 = getelementptr inbounds i8, ptr %783, i64 96
  %805 = call noundef ptr @_ZSt6get_ifIN8fastgltf3TRSEJS1_NS0_4math3matIfLm4ELm4EEEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef nonnull %804) #5
  %.not678 = icmp eq ptr %805, null
  br i1 %.not678, label %.critedge727, label %806

806:                                              ; preds = %803
  %807 = getelementptr inbounds i8, ptr %805, i64 12
  %808 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1xEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %809 = load float, ptr %808, align 4, !tbaa !75
  %810 = fcmp ogt float %809, 1.000000e+00
  br i1 %810, label %.thread829, label %811

811:                                              ; preds = %806
  %812 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1xEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %813 = load float, ptr %812, align 4, !tbaa !75
  %814 = fcmp olt float %813, -1.000000e+00
  br i1 %814, label %.thread829, label %815

815:                                              ; preds = %811
  %816 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1yEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %817 = load float, ptr %816, align 4, !tbaa !75
  %818 = fcmp ogt float %817, 1.000000e+00
  br i1 %818, label %.thread829, label %819

819:                                              ; preds = %815
  %820 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1yEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %821 = load float, ptr %820, align 4, !tbaa !75
  %822 = fcmp olt float %821, -1.000000e+00
  br i1 %822, label %.thread829, label %823

823:                                              ; preds = %819
  %824 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1zEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %825 = load float, ptr %824, align 4, !tbaa !75
  %826 = fcmp ogt float %825, 1.000000e+00
  br i1 %826, label %.thread829, label %827

827:                                              ; preds = %823
  %828 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1zEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %829 = load float, ptr %828, align 4, !tbaa !75
  %830 = fcmp olt float %829, -1.000000e+00
  br i1 %830, label %.thread829, label %831

831:                                              ; preds = %827
  %832 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1wEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %833 = load float, ptr %832, align 4, !tbaa !75
  %834 = fcmp ogt float %833, 1.000000e+00
  br i1 %834, label %.thread829, label %835

835:                                              ; preds = %831
  %836 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math4quatIfE1wEv(ptr noundef nonnull align 4 dereferenceable(16) %807) #5
  %837 = load float, ptr %836, align 4, !tbaa !75
  %838 = fcmp olt float %837, -1.000000e+00
  br i1 %838, label %.thread829, label %.critedge727

.critedge727:                                     ; preds = %835, %803
  %839 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %791)
  br i1 %839, label %843, label %840

840:                                              ; preds = %.critedge727
  %841 = getelementptr inbounds i8, ptr %783, i64 64
  %842 = call noundef zeroext i1 @_ZNKSt6vectorIfNSt3pmr21polymorphic_allocatorIfEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %841) #5
  br i1 %842, label %845, label %843

843:                                              ; preds = %840, %.critedge727
  %844 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %783)
  br i1 %844, label %845, label %.thread829

845:                                              ; preds = %843, %840
  %846 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %791)
  br i1 %846, label %847, label %.critedge731

847:                                              ; preds = %845
  %848 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %783)
  %849 = load i64, ptr %848, align 8, !tbaa !31
  %850 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %552, i64 noundef %849) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #5
  %851 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %850) #5
  store ptr %851, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #5
  %852 = call ptr @_ZNKSt6vectorIN8fastgltf9PrimitiveENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %850) #5
  store ptr %852, ptr %56, align 8
  %853 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #5
  br i1 %853, label %.lr.ph885, label %._crit_edge886

.lr.ph885:                                        ; preds = %847, %865
  %854 = call noundef nonnull align 8 dereferenceable(304) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef @.str.30) #5
  %855 = load i64, ptr %57, align 8
  %856 = load ptr, ptr %780, align 8
  %857 = call noundef ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304) %854, i64 %855, ptr %856) #5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef @.str.31) #5
  %858 = load i64, ptr %58, align 8
  %859 = load ptr, ptr %781, align 8
  %860 = call noundef ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304) %854, i64 %858, ptr %859) #5
  %861 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %854) #5
  %862 = icmp eq ptr %857, %861
  br i1 %862, label %870, label %863

863:                                              ; preds = %.lr.ph885
  %864 = call noundef ptr @_ZNK8fastgltf11SmallVectorINS_9AttributeELm4ENSt3pmr21polymorphic_allocatorIS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(224) %854) #5
  %.not831 = icmp eq ptr %860, %864
  br i1 %.not831, label %870, label %865

865:                                              ; preds = %863
  %866 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #5
  %867 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf9PrimitiveESt6vectorIS2_NSt3pmr21polymorphic_allocatorIS2_EEEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #5
  br i1 %867, label %.lr.ph885, label %._crit_edge886

._crit_edge886:                                   ; preds = %865, %847
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #5
  br label %.critedge731

.critedge731:                                     ; preds = %._crit_edge886, %845
  %868 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #5
  %869 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #5
  br i1 %869, label %782, label %.loopexit932

.thread829:                                       ; preds = %786, %793, %799, %831, %835, %823, %827, %815, %819, %806, %811, %843
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  br label %986

870:                                              ; preds = %863, %.lr.ph885
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  br label %986

.loopexit932:                                     ; preds = %.critedge731, %._crit_edge883
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  %871 = getelementptr inbounds i8, ptr %0, i64 456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #5
  %872 = call ptr @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %871) #5
  store ptr %872, ptr %59, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #5
  %873 = call ptr @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %871) #5
  store ptr %873, ptr %60, align 8
  %874 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #5
  br i1 %874, label %.lr.ph890, label %._crit_edge891

.lr.ph890:                                        ; preds = %.loopexit932, %.critedge735
  %875 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #5
  %876 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueINS_6FilterEE9has_valueEv(ptr noundef nonnull align 2 dereferenceable(2) %875)
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %61) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %62) #5
  br i1 %876, label %877, label %.critedge62

877:                                              ; preds = %.lr.ph890
  store i16 9728, ptr %61, align 2, !tbaa !160
  %878 = call noundef zeroext i1 @_ZN8fastgltfneINS_6FilterES1_EEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 2 dereferenceable(2) %875, ptr noundef nonnull align 2 dereferenceable(2) %61)
  br i1 %878, label %879, label %.critedge62

879:                                              ; preds = %877
  store i16 9729, ptr %62, align 2, !tbaa !160
  %880 = call noundef zeroext i1 @_ZN8fastgltfneINS_6FilterES1_EEbRKNS_21OptionalWithFlagValueIT_EERKT0_(ptr noundef nonnull align 2 dereferenceable(2) %875, ptr noundef nonnull align 2 dereferenceable(2) %62)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %62) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %61) #5
  br i1 %880, label %883, label %.critedge735

.critedge62:                                      ; preds = %877, %.lr.ph890
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %62) #5
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %61) #5
  br label %.critedge735

.critedge735:                                     ; preds = %.critedge62, %879
  %881 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #5
  %882 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #5
  br i1 %882, label %.lr.ph890, label %._crit_edge891

883:                                              ; preds = %879
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #5
  br label %986

._crit_edge891:                                   ; preds = %.critedge735, %.loopexit932
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #5
  %884 = getelementptr inbounds i8, ptr %0, i64 480
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #5
  %885 = call ptr @_ZNKSt6vectorIN8fastgltf5SceneESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %884) #5
  store ptr %885, ptr %63, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #5
  %886 = call ptr @_ZNKSt6vectorIN8fastgltf5SceneESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %884) #5
  store ptr %886, ptr %64, align 8
  %887 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #5
  br i1 %887, label %.lr.ph896, label %.loopexit931

.lr.ph896:                                        ; preds = %._crit_edge891, %._crit_edge894
  %888 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #5
  %889 = call ptr @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(32) %888) #5
  store ptr %889, ptr %65, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #5
  %890 = call ptr @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %888) #5
  store ptr %890, ptr %66, align 8
  %891 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #5
  br i1 %891, label %.lr.ph893, label %._crit_edge894

.lr.ph893:                                        ; preds = %.lr.ph896, %895
  %892 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #5
  %893 = load i64, ptr %892, align 8, !tbaa !31
  %894 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %775) #5
  %.not679 = icmp ult i64 %893, %894
  br i1 %.not679, label %895, label %900

895:                                              ; preds = %.lr.ph893
  %896 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %65) #5
  %897 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKmSt6vectorImNSt3pmr21polymorphic_allocatorImEEEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66) #5
  br i1 %897, label %.lr.ph893, label %._crit_edge894

._crit_edge894:                                   ; preds = %895, %.lr.ph896
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #5
  %898 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #5
  %899 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #5
  br i1 %899, label %.lr.ph896, label %.loopexit931

900:                                              ; preds = %.lr.ph893
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #5
  br label %986

.loopexit931:                                     ; preds = %._crit_edge894, %._crit_edge891
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #5
  %901 = getelementptr inbounds i8, ptr %0, i64 504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #5
  %902 = call ptr @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %901) #5
  store ptr %902, ptr %67, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #5
  %903 = call ptr @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %901) #5
  store ptr %903, ptr %68, align 8
  %904 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #5
  br i1 %904, label %.lr.ph898, label %._crit_edge899

.lr.ph898:                                        ; preds = %.loopexit931, %.critedge743
  %905 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #5
  %906 = getelementptr inbounds i8, ptr %905, i64 16
  %907 = call noundef zeroext i1 @_ZNKSt6vectorImNSt3pmr21polymorphic_allocatorImEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %906) #5
  br i1 %907, label %923, label %908

908:                                              ; preds = %.lr.ph898
  %909 = getelementptr inbounds i8, ptr %905, i64 8
  %910 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %909)
  br i1 %910, label %911, label %915

911:                                              ; preds = %908
  %912 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %909)
  %913 = load i64, ptr %912, align 8, !tbaa !31
  %914 = call noundef i64 @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %775) #5
  %.not680 = icmp ult i64 %913, %914
  br i1 %.not680, label %915, label %923

915:                                              ; preds = %911, %908
  %916 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %905)
  br i1 %916, label %917, label %.critedge743

917:                                              ; preds = %915
  %918 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %905)
  %919 = load i64, ptr %918, align 8, !tbaa !31
  %920 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #5
  %.not681 = icmp ult i64 %919, %920
  br i1 %.not681, label %.critedge743, label %923

.critedge743:                                     ; preds = %917, %915
  %921 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #5
  %922 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #5
  br i1 %922, label %.lr.ph898, label %._crit_edge899

923:                                              ; preds = %.lr.ph898, %911, %917
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #5
  br label %986

._crit_edge899:                                   ; preds = %.critedge743, %.loopexit931
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #5
  %924 = getelementptr inbounds i8, ptr %0, i64 528
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #5
  %925 = call ptr @_ZNKSt6vectorIN8fastgltf7TextureESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %924) #5
  store ptr %925, ptr %69, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #5
  %926 = call ptr @_ZNKSt6vectorIN8fastgltf7TextureESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %924) #5
  store ptr %926, ptr %70, align 8
  %927 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #5
  br i1 %927, label %.lr.ph901, label %._crit_edge902

.lr.ph901:                                        ; preds = %._crit_edge899
  %.sroa.065.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL18KHR_texture_basisuE, align 8
  %.sroa.266.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL18KHR_texture_basisuE, i64 8), align 8
  %.sroa.063.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL16MSFT_texture_ddsE, align 8
  %.sroa.264.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL16MSFT_texture_ddsE, i64 8), align 8
  %.sroa.0.0.copyload = load i64, ptr @_ZN8fastgltf10extensionsL16EXT_texture_webpE, align 8
  %.sroa.2.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @_ZN8fastgltf10extensionsL16EXT_texture_webpE, i64 8), align 8
  br label %928

928:                                              ; preds = %.lr.ph901, %.critedge747
  %929 = call noundef nonnull align 8 dereferenceable(80) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #5
  %930 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %929)
  br i1 %930, label %931, label %935

931:                                              ; preds = %928
  %932 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %929)
  %933 = load i64, ptr %932, align 8, !tbaa !31
  %934 = call noundef i64 @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %871) #5
  %.not682 = icmp ult i64 %933, %934
  br i1 %.not682, label %935, label %._crit_edge902

935:                                              ; preds = %931, %928
  %936 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.065.0.copyload, ptr %.sroa.266.0.copyload)
  br i1 %936, label %941, label %937

937:                                              ; preds = %935
  %938 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.063.0.copyload, ptr %.sroa.264.0.copyload)
  br i1 %938, label %941, label %939

939:                                              ; preds = %937
  %940 = call noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8) %2, i64 %.sroa.0.0.copyload, ptr %.sroa.2.0.copyload)
  br i1 %940, label %941, label %953

941:                                              ; preds = %939, %937, %935
  %942 = getelementptr inbounds i8, ptr %929, i64 8
  %943 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %942)
  br i1 %943, label %956, label %944

944:                                              ; preds = %941
  %945 = getelementptr inbounds i8, ptr %929, i64 16
  %946 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %945)
  br i1 %946, label %956, label %947

947:                                              ; preds = %944
  %948 = getelementptr inbounds i8, ptr %929, i64 24
  %949 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %948)
  br i1 %949, label %956, label %950

950:                                              ; preds = %947
  %951 = getelementptr inbounds i8, ptr %929, i64 32
  %952 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %951)
  br i1 %952, label %956, label %._crit_edge902

953:                                              ; preds = %939
  %954 = getelementptr inbounds i8, ptr %929, i64 8
  %955 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %954)
  br i1 %955, label %956, label %._crit_edge902

956:                                              ; preds = %953, %941, %944, %947, %950
  %957 = getelementptr inbounds i8, ptr %929, i64 8
  %958 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %957)
  br i1 %958, label %959, label %963

959:                                              ; preds = %956
  %960 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %957)
  %961 = load i64, ptr %960, align 8, !tbaa !31
  %962 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  %.not683 = icmp ult i64 %961, %962
  br i1 %.not683, label %963, label %._crit_edge902

963:                                              ; preds = %959, %956
  %964 = getelementptr inbounds i8, ptr %929, i64 16
  %965 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %964)
  br i1 %965, label %966, label %970

966:                                              ; preds = %963
  %967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %964)
  %968 = load i64, ptr %967, align 8, !tbaa !31
  %969 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  %.not684 = icmp ult i64 %968, %969
  br i1 %.not684, label %970, label %._crit_edge902

970:                                              ; preds = %966, %963
  %971 = getelementptr inbounds i8, ptr %929, i64 24
  %972 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %971)
  br i1 %972, label %973, label %977

973:                                              ; preds = %970
  %974 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %971)
  %975 = load i64, ptr %974, align 8, !tbaa !31
  %976 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  %.not685 = icmp ult i64 %975, %976
  br i1 %.not685, label %977, label %._crit_edge902

977:                                              ; preds = %973, %970
  %978 = getelementptr inbounds i8, ptr %929, i64 32
  %979 = call noundef zeroext i1 @_ZNK8fastgltf21OptionalWithFlagValueImE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(8) %978)
  br i1 %979, label %980, label %.critedge747

980:                                              ; preds = %977
  %981 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImE5valueEv(ptr noundef nonnull align 8 dereferenceable(8) %978)
  %982 = load i64, ptr %981, align 8, !tbaa !31
  %983 = call noundef i64 @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %382) #5
  %.not686 = icmp ult i64 %982, %983
  br i1 %.not686, label %.critedge747, label %._crit_edge902

.critedge747:                                     ; preds = %980, %977
  %984 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %69) #5
  %985 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #5
  br i1 %985, label %928, label %._crit_edge902

._crit_edge902:                                   ; preds = %.critedge747, %980, %973, %966, %959, %953, %950, %931, %._crit_edge899
  %spec.select748 = phi i64 [ 0, %._crit_edge899 ], [ 5, %931 ], [ 5, %950 ], [ 5, %953 ], [ 5, %959 ], [ 5, %966 ], [ 5, %973 ], [ 5, %980 ], [ 0, %.critedge747 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #5
  br label %986

986:                                              ; preds = %900, %870, %.loopexit920, %923, %883, %.thread829, %.thread824, %551, %440, %393, %381, %.critedge703, %286, %.loopexit, %.critedge692, %._crit_edge902, %1
  %.86 = phi i64 [ 5, %923 ], [ 5, %900 ], [ 5, %883 ], [ 5, %870 ], [ 5, %551 ], [ 5, %440 ], [ 5, %393 ], [ 5, %381 ], [ 5, %.critedge703 ], [ 5, %286 ], [ 5, %.loopexit ], [ 5, %.critedge692 ], [ 5, %.loopexit920 ], [ 5, %1 ], [ %spec.select748, %._crit_edge902 ], [ 5, %.thread824 ], [ 5, %.thread829 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #5
  ret i64 %.86
}

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_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_cxxneIPKN8fastgltf8AccessorESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN8fastgltf20getComponentByteSizeENS_13ComponentTypeE(i16 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_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 zeroext i1 @_ZSt17holds_alternativeISt9monostateJS0_St6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEEbRKSt7variantIJDpT0_EE(ptr noundef nonnull align 8 dereferenceable(33)) local_unnamed_addr #1

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf9AnimationESaIS1_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_cxxneIPKN8fastgltf9AnimationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt6vectorIN8fastgltf8AccessorESaIS1_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(8) ptr @_ZNKR8fastgltf21OptionalWithFlagValueImEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf6BufferESaIS1_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_cxxneIPKN8fastgltf6BufferESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf10BufferViewESaIS1_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_cxxneIPKN8fastgltf10BufferViewESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_0clESt17basic_string_viewIcSt11char_traitsIcEE"(ptr noundef nonnull align 8 dereferenceable(8), i64, ptr) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf6CameraESaIS1_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_cxxneIPKN8fastgltf6CameraESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf6Camera12OrthographicEJNS1_11PerspectiveES2_EENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf6Camera11PerspectiveEJS2_NS1_12OrthographicEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) local_unnamed_addr #1

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf5ImageESaIS1_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_cxxneIPKN8fastgltf5ImageESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf7sources10BufferViewEJSt9monostateS2_NS1_3URIENS1_5ArrayENS1_6VectorENS1_12CustomBufferENS1_8ByteViewENS1_8FallbackEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf5LightESaIS1_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_cxxneIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKR8fastgltf21OptionalWithFlagValueIfE5valueEv(ptr noundef nonnull align 4 dereferenceable(4)) 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_iteratorIPKN8fastgltf5LightESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_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_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN8fastgltf8validateERKNS_5AssetEENK3$_1clESt8optionalImE"(ptr noundef nonnull align 8 dereferenceable(8), i64, i8) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_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_cxxneIPKN8fastgltf4MeshESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf21OptionalWithFlagValueImEESaIS2_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_cxxneIPKN8fastgltf21OptionalWithFlagValueImEESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf4NodeESaIS1_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_cxxneIPKN8fastgltf4NodeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZSt6get_ifIN8fastgltf3TRSEJS1_NS0_4math3matIfLm4ELm4EEEEENSt11add_pointerIKT_E4typeEPKSt7variantIJDpT0_EE(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(104) ptr @_ZNKSt6vectorIN8fastgltf4MeshESaIS1_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 ptr @_ZNK8fastgltf9Primitive13findAttributeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(304), i64, ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf7SamplerESaIS1_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_cxxneIPKN8fastgltf7SamplerESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf5SceneESaIS1_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_cxxneIPKN8fastgltf5SceneESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf4SkinESaIS1_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_cxxneIPKN8fastgltf4SkinESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf7TextureESaIS1_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_cxxneIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf7TextureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_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 = { 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 #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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 16}
!10 = !{!"_ZTSN8fastgltf8AccessorE", !11, i64 0, !11, i64 8, !12, i64 16, !13, i64 18, !14, i64 20, !15, i64 24, !15, i64 64, !22, i64 104, !23, i64 112, !27, i64 168}
!11 = !{!"long", !7, i64 0}
!12 = !{!"_ZTSN8fastgltf12AccessorTypeE", !7, i64 0}
!13 = !{!"_ZTSN8fastgltf13ComponentTypeE", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTSSt7variantIJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES1_IlNS3_IlEEEEE", !16, i64 0}
!16 = !{!"_ZTSNSt8__detail9__variant13_Variant_baseIJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !17, i64 0}
!17 = !{!"_ZTSNSt8__detail9__variant17_Move_assign_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !18, i64 0}
!18 = !{!"_ZTSNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !19, i64 0}
!19 = !{!"_ZTSNSt8__detail9__variant15_Move_ctor_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !20, i64 0}
!20 = !{!"_ZTSNSt8__detail9__variant15_Copy_ctor_baseILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !21, i64 0}
!21 = !{!"_ZTSNSt8__detail9__variant16_Variant_storageILb0EJSt9monostateSt6vectorIdNSt3pmr21polymorphic_allocatorIdEEES3_IlNS5_IlEEEEEE", !7, i64 0, !7, i64 32}
!22 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueImEE", !7, i64 0}
!23 = !{!"_ZTSSt8optionalIN8fastgltf14SparseAccessorEE", !24, i64 0}
!24 = !{!"_ZTSSt14_Optional_baseIN8fastgltf14SparseAccessorELb1ELb1EE", !25, i64 0}
!25 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf14SparseAccessorELb1ELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf14SparseAccessorEE", !7, i64 0, !14, i64 48}
!27 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEE", !28, i64 0, !11, i64 16, !7, i64 24}
!28 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE12_Alloc_hiderE", !29, i64 0, !6, i64 8}
!29 = !{!"_ZTSNSt3pmr21polymorphic_allocatorIcEE", !6, i64 0}
!30 = !{!10, !13, i64 18}
!31 = !{!11, !11, i64 0}
!32 = !{!10, !11, i64 0}
!33 = !{!34, !11, i64 8}
!34 = !{!"_ZTSN8fastgltf10BufferViewE", !11, i64 0, !11, i64 8, !11, i64 16, !22, i64 24, !35, i64 32, !36, i64 40, !27, i64 48}
!35 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueINS_12BufferTargetEEE", !7, i64 0}
!36 = !{!"_ZTSSt10unique_ptrIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_ELb1ELb1EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt5tupleIJPN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEE", !40, i64 0}
!40 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20CompressedBufferViewESt14default_deleteIS1_EEE", !41, i64 0}
!41 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20CompressedBufferViewELb0EE", !6, i64 0}
!42 = !{!43, !11, i64 8}
!43 = !{!"_ZTSN8fastgltf14SparseAccessorE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !13, i64 40}
!44 = !{!43, !11, i64 24}
!45 = !{!46, !47, i64 16}
!46 = !{!"_ZTSN8fastgltf16AnimationChannelE", !11, i64 0, !22, i64 8, !47, i64 16}
!47 = !{!"_ZTSN8fastgltf13AnimationPathE", !7, i64 0}
!48 = !{!46, !11, i64 0}
!49 = !{!50, !11, i64 0}
!50 = !{!"_ZTSN8fastgltf16AnimationSamplerE", !11, i64 0, !11, i64 8, !51, i64 16}
!51 = !{!"_ZTSN8fastgltf22AnimationInterpolationE", !7, i64 0}
!52 = !{!10, !11, i64 8}
!53 = !{!50, !11, i64 8}
!54 = !{!50, !51, i64 16}
!55 = !{!56, !11, i64 0}
!56 = !{!"_ZTSN8fastgltf6BufferE", !11, i64 0, !57, i64 8, !27, i64 200}
!57 = !{!"_ZTSSt7variantIJSt9monostateN8fastgltf7sources10BufferViewENS2_3URIENS2_5ArrayENS2_6VectorENS2_12CustomBufferENS2_8ByteViewENS2_8FallbackEEE", !58, i64 0}
!58 = !{!"_ZTSNSt8__detail9__variant13_Variant_baseIJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !59, i64 0}
!59 = !{!"_ZTSNSt8__detail9__variant17_Move_assign_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !60, i64 0}
!60 = !{!"_ZTSNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !61, i64 0}
!61 = !{!"_ZTSNSt8__detail9__variant15_Move_ctor_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !62, i64 0}
!62 = !{!"_ZTSNSt8__detail9__variant15_Copy_ctor_baseILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !63, i64 0}
!63 = !{!"_ZTSNSt8__detail9__variant16_Variant_storageILb0EJSt9monostateN8fastgltf7sources10BufferViewENS4_3URIENS4_5ArrayENS4_6VectorENS4_12CustomBufferENS4_8ByteViewENS4_8FallbackEEEE", !7, i64 0, !7, i64 184}
!64 = !{!34, !11, i64 16}
!65 = !{!34, !11, i64 0}
!66 = !{!67, !68, i64 32}
!67 = !{!"_ZTSN8fastgltf20CompressedBufferViewE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !68, i64 32, !69, i64 33, !11, i64 40}
!68 = !{!"_ZTSN8fastgltf22MeshoptCompressionModeE", !7, i64 0}
!69 = !{!"_ZTSN8fastgltf24MeshoptCompressionFilterE", !7, i64 0}
!70 = !{!67, !11, i64 40}
!71 = !{!67, !11, i64 24}
!72 = !{!73, !74, i64 8}
!73 = !{!"_ZTSN8fastgltf6Camera12OrthographicE", !74, i64 0, !74, i64 4, !74, i64 8, !74, i64 12}
!74 = !{!"float", !7, i64 0}
!75 = !{!74, !74, i64 0}
!76 = !{!77, !74, i64 4}
!77 = !{!"_ZTSN8fastgltf6Camera11PerspectiveE", !78, i64 0, !74, i64 4, !78, i64 8, !74, i64 12}
!78 = !{!"_ZTSN8fastgltf21OptionalWithFlagValueIfEE", !7, i64 0}
!79 = !{!77, !74, i64 12}
!80 = !{!81, !11, i64 0}
!81 = !{!"_ZTSN8fastgltf7sources10BufferViewE", !11, i64 0, !82, i64 8}
!82 = !{!"_ZTSN8fastgltf8MimeTypeE", !7, i64 0}
!83 = !{!84, !85, i64 0}
!84 = !{!"_ZTSN8fastgltf5LightE", !85, i64 0, !86, i64 4, !74, i64 16, !78, i64 20, !78, i64 24, !78, i64 28, !27, i64 32}
!85 = !{!"_ZTSN8fastgltf9LightTypeE", !7, i64 0}
!86 = !{!"_ZTSN8fastgltf4math3vecIfLm3EEE", !87, i64 0}
!87 = !{!"_ZTSSt5arrayIfLm3EE", !7, i64 0}
!88 = !{!89, !74, i64 220}
!89 = !{!"_ZTSN8fastgltf8MaterialE", !90, i64 0, !98, i64 88, !103, i64 128, !93, i64 168, !86, i64 200, !108, i64 212, !14, i64 213, !14, i64 214, !74, i64 216, !74, i64 220, !74, i64 224, !74, i64 228, !109, i64 232, !115, i64 240, !121, i64 248, !127, i64 256, !133, i64 264, !139, i64 272, !145, i64 280, !93, i64 288, !151, i64 320, !27, i64 328}
!90 = !{!"_ZTSN8fastgltf7PBRDataE", !91, i64 0, !74, i64 16, !74, i64 20, !93, i64 24, !93, i64 56}
!91 = !{!"_ZTSN8fastgltf4math3vecIfLm4EEE", !92, i64 0}
!92 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!93 = !{!"_ZTSSt8optionalIN8fastgltf11TextureInfoEE", !94, i64 0}
!94 = !{!"_ZTSSt14_Optional_baseIN8fastgltf11TextureInfoELb0ELb0EE", !95, i64 0}
!95 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb0ELb0ELb0EE", !96, i64 0}
!96 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb1ELb0ELb0EE", !97, i64 0}
!97 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf11TextureInfoEE", !7, i64 0, !14, i64 24}
!98 = !{!"_ZTSSt8optionalIN8fastgltf17NormalTextureInfoEE", !99, i64 0}
!99 = !{!"_ZTSSt14_Optional_baseIN8fastgltf17NormalTextureInfoELb0ELb0EE", !100, i64 0}
!100 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb0ELb0ELb0EE", !101, i64 0}
!101 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb1ELb0ELb0EE", !102, i64 0}
!102 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf17NormalTextureInfoEE", !7, i64 0, !14, i64 32}
!103 = !{!"_ZTSSt8optionalIN8fastgltf20OcclusionTextureInfoEE", !104, i64 0}
!104 = !{!"_ZTSSt14_Optional_baseIN8fastgltf20OcclusionTextureInfoELb0ELb0EE", !105, i64 0}
!105 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb0ELb0ELb0EE", !106, i64 0}
!106 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb1ELb0ELb0EE", !107, i64 0}
!107 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf20OcclusionTextureInfoEE", !7, i64 0, !14, i64 32}
!108 = !{!"_ZTSN8fastgltf9AlphaModeE", !7, i64 0}
!109 = !{!"_ZTSSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !110, i64 0}
!110 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_ELb1ELb1EE", !111, i64 0}
!111 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !112, i64 0}
!112 = !{!"_ZTSSt5tupleIJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !113, i64 0}
!113 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !114, i64 0}
!114 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf18MaterialAnisotropyELb0EE", !6, i64 0}
!115 = !{!"_ZTSSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !116, i64 0}
!116 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_ELb1ELb1EE", !117, i64 0}
!117 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !118, i64 0}
!118 = !{!"_ZTSSt5tupleIJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !119, i64 0}
!119 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !120, i64 0}
!120 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf17MaterialClearcoatELb0EE", !6, i64 0}
!121 = !{!"_ZTSSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !122, i64 0}
!122 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_ELb1ELb1EE", !123, i64 0}
!123 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !124, i64 0}
!124 = !{!"_ZTSSt5tupleIJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !125, i64 0}
!125 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !126, i64 0}
!126 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf19MaterialIridescenceELb0EE", !6, i64 0}
!127 = !{!"_ZTSSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !128, i64 0}
!128 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf13MaterialSheenESt14default_deleteIS1_ELb1ELb1EE", !129, i64 0}
!129 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !130, i64 0}
!130 = !{!"_ZTSSt5tupleIJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !131, i64 0}
!131 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !132, i64 0}
!132 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf13MaterialSheenELb0EE", !6, i64 0}
!133 = !{!"_ZTSSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !134, i64 0}
!134 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf16MaterialSpecularESt14default_deleteIS1_ELb1ELb1EE", !135, i64 0}
!135 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !136, i64 0}
!136 = !{!"_ZTSSt5tupleIJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !137, i64 0}
!137 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !138, i64 0}
!138 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf16MaterialSpecularELb0EE", !6, i64 0}
!139 = !{!"_ZTSSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !140, i64 0}
!140 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_ELb1ELb1EE", !141, i64 0}
!141 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !142, i64 0}
!142 = !{!"_ZTSSt5tupleIJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !143, i64 0}
!143 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !144, i64 0}
!144 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20MaterialTransmissionELb0EE", !6, i64 0}
!145 = !{!"_ZTSSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !146, i64 0}
!146 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf14MaterialVolumeESt14default_deleteIS1_ELb1ELb1EE", !147, i64 0}
!147 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !148, i64 0}
!148 = !{!"_ZTSSt5tupleIJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !149, i64 0}
!149 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !150, i64 0}
!150 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf14MaterialVolumeELb0EE", !6, i64 0}
!151 = !{!"_ZTSSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !152, i64 0}
!152 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_ELb1ELb1EE", !153, i64 0}
!153 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !154, i64 0}
!154 = !{!"_ZTSSt5tupleIJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !155, i64 0}
!155 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !156, i64 0}
!156 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf22MaterialPackedTexturesELb0EE", !6, i64 0}
!157 = !{!89, !74, i64 224}
!158 = !{!159, !11, i64 40}
!159 = !{!"_ZTSN8fastgltf9AttributeE", !27, i64 0, !11, i64 40}
!160 = !{!161, !161, i64 0}
!161 = !{!"_ZTSN8fastgltf6FilterE", !7, i64 0}


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