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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.30 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.30 = type { i64, [8 x i8] }
%"class.__gnu_cxx::__normal_iterator.266" = type { ptr }
%"class.fastgltf::math::vec.267" = type { %"struct.std::array.268" }
%"struct.std::array.268" = type { [4 x float] }
%"class.fastgltf::math::vec.264" = type { %"struct.std::array.265" }
%"struct.std::array.265" = type { [3 x float] }
%"class.std::optional.467" = type { %"struct.std::_Optional_base.468" }
%"struct.std::_Optional_base.468" = type { %"struct.std::_Optional_payload.470" }
%"struct.std::_Optional_payload.470" = type { %"struct.std::_Optional_payload.base.474", [7 x i8] }
%"struct.std::_Optional_payload.base.474" = type { %"struct.std::_Optional_payload_base.base.473" }
%"struct.std::_Optional_payload_base.base.473" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }
%"class.std::basic_string_view" = type { i64, 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::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.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::MaterialAnisotropy" = type { float, float, %"class.std::optional.269" }
%"struct.fastgltf::MaterialClearcoat" = type { float, [4 x i8], %"class.std::optional.269", float, [4 x i8], %"class.std::optional.269", %"class.std::optional.269" }
%"struct.fastgltf::MaterialIridescence" = type { float, [4 x i8], %"class.std::optional.269", float, float, float, [4 x i8], %"class.std::optional.269" }
%"struct.fastgltf::MaterialSheen" = type { %"class.fastgltf::math::vec.264", [4 x i8], %"class.std::optional.269", float, [4 x i8], %"class.std::optional.269" }
%"struct.fastgltf::MaterialSpecular" = type { float, [4 x i8], %"class.std::optional.269", %"class.fastgltf::math::vec.264", [4 x i8], %"class.std::optional.269" }
%"struct.fastgltf::MaterialTransmission" = type { float, [4 x i8], %"class.std::optional.269" }
%"struct.fastgltf::MaterialVolume" = type { float, [4 x i8], %"class.std::optional.269", float, %"class.fastgltf::math::vec.264" }
%"struct.fastgltf::MaterialPackedTextures" = type { %"class.std::optional.269", %"class.std::optional.269", %"class.std::optional.269" }
%"class.fastgltf::Exporter" = type { i64, i64, i8, %"class.std::filesystem::__cxx11::path", %"class.std::filesystem::__cxx11::path", ptr, ptr, %"class.std::vector.461", %"class.std::vector.461" }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr.31" }
%"class.std::unique_ptr.31" = type { %"struct.std::__uniq_ptr_data.32" }
%"struct.std::__uniq_ptr_data.32" = type { %"class.std::__uniq_ptr_impl.33" }
%"class.std::__uniq_ptr_impl.33" = type { %"class.std::tuple.34" }
%"class.std::tuple.34" = type { %"struct.std::_Tuple_impl.35" }
%"struct.std::_Tuple_impl.35" = type { %"struct.std::_Head_base.38" }
%"struct.std::_Head_base.38" = type { ptr }
%"class.std::vector.461" = type { %"struct.std::_Vector_base.462" }
%"struct.std::_Vector_base.462" = type { %"struct.std::_Vector_base<std::optional<std::filesystem::__cxx11::path>, std::allocator<std::optional<std::filesystem::__cxx11::path>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::optional<std::filesystem::__cxx11::path>, std::allocator<std::optional<std::filesystem::__cxx11::path>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::optional<std::filesystem::__cxx11::path>, std::allocator<std::optional<std::filesystem::__cxx11::path>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::optional<std::filesystem::__cxx11::path>, std::allocator<std::optional<std::filesystem::__cxx11::path>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.176 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [9 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12), i64 noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12), float noundef) unnamed_addr #4 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8fastgltf12escapeStringB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64, ptr) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN8fastgltf4uabsIlEENSt13make_unsignedIT_E4typeES2_(i64 noundef) #4

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12), i64 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8fastgltf8Exporter14writeMaterialsERKNS_5AssetERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(168) %0, ptr noundef nonnull align 8 dereferenceable(580) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %9 = alloca %"class.fastgltf::math::vec.267", align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.fastgltf::math::vec.264", align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.fastgltf::math::vec.264", align 4
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.fastgltf::math::vec.264", align 4
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.fastgltf::math::vec.264", align 4
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::optional.467", align 8
  %102 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %103 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::basic_string_view", align 8
  %111 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %112 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %113 = load ptr, ptr %4, align 8
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = getelementptr inbounds %"class.fastgltf::Asset", ptr %114, i32 0, i32 12
  %116 = call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %115) #6
  br i1 %116, label %117, label %118

117:                                              ; preds = %3
  br label %1994

118:                                              ; preds = %3
  %119 = load ptr, ptr %6, align 8, !tbaa !5
  %120 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  %121 = load i8, ptr %120, align 1, !tbaa !9
  %122 = sext i8 %121 to i32
  %123 = icmp eq i32 %122, 93
  br i1 %123, label %130, label %124

124:                                              ; preds = %118
  %125 = load ptr, ptr %6, align 8, !tbaa !5
  %126 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  %127 = load i8, ptr %126, align 1, !tbaa !9
  %128 = sext i8 %127 to i32
  %129 = icmp eq i32 %128, 125
  br i1 %129, label %130, label %133

130:                                              ; preds = %124, %118
  %131 = load ptr, ptr %6, align 8, !tbaa !5
  %132 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %131, i8 noundef signext 44)
  br label %133

133:                                              ; preds = %130, %124
  %134 = load ptr, ptr %6, align 8, !tbaa !5
  %135 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @.str.214)
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %136 = load ptr, ptr %5, align 8, !tbaa !5
  %137 = getelementptr inbounds %"class.fastgltf::Asset", ptr %136, i32 0, i32 12
  %138 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %137) #6
  %139 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %7, i32 0, i32 0
  store ptr %138, ptr %139, align 8
  br label %140

140:                                              ; preds = %1988, %133
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %141 = load ptr, ptr %5, align 8, !tbaa !5
  %142 = getelementptr inbounds %"class.fastgltf::Asset", ptr %141, i32 0, i32 12
  %143 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %142) #6
  %144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %8, i32 0, i32 0
  store ptr %143, ptr %144, align 8
  %145 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  br i1 %145, label %147, label %146

146:                                              ; preds = %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  br label %1991

147:                                              ; preds = %140
  %148 = load ptr, ptr %6, align 8, !tbaa !5
  %149 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %148, i8 noundef signext 123)
  %150 = load ptr, ptr %6, align 8, !tbaa !5
  %151 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str.215)
  %152 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %153 = getelementptr inbounds %"struct.fastgltf::Material", ptr %152, i32 0, i32 0
  %154 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %153, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #6
  call void @_ZN8fastgltf4math3vecIfLm4EEC2Ef(ptr noundef nonnull align 4 dereferenceable(16) %9, float noundef 1.000000e+00) #6
  %155 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm4EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(16) %154, ptr noundef nonnull align 4 dereferenceable(16) %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #6
  br i1 %155, label %156, label %242

156:                                              ; preds = %147
  %157 = load ptr, ptr %6, align 8, !tbaa !5
  %158 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef @.str.216)
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #6
  %159 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %160 = getelementptr inbounds %"struct.fastgltf::Material", ptr %159, i32 0, i32 0
  %161 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %160, i32 0, i32 0
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %161, i64 noundef 0) #6
  %163 = load float, ptr %162, align 4, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, float noundef %163)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, i8 noundef signext 44)
          to label %164 unwind label %193

164:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #6
  %165 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %166 = getelementptr inbounds %"struct.fastgltf::Material", ptr %165, i32 0, i32 0
  %167 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %166, i32 0, i32 0
  %168 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %167, i64 noundef 1) #6
  %169 = load float, ptr %168, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, float noundef %169)
          to label %170 unwind label %197

170:                                              ; preds = %164
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %171 unwind label %201

171:                                              ; preds = %170
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, i8 noundef signext 44)
          to label %172 unwind label %205

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  %173 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %174 = getelementptr inbounds %"struct.fastgltf::Material", ptr %173, i32 0, i32 0
  %175 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %174, i32 0, i32 0
  %176 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %175, i64 noundef 2) #6
  %177 = load float, ptr %176, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, float noundef %177)
          to label %178 unwind label %209

178:                                              ; preds = %172
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %179 unwind label %213

179:                                              ; preds = %178
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, i8 noundef signext 44)
          to label %180 unwind label %217

180:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  %181 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %182 = getelementptr inbounds %"struct.fastgltf::Material", ptr %181, i32 0, i32 0
  %183 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %182, i32 0, i32 0
  %184 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %183, i64 noundef 3) #6
  %185 = load float, ptr %184, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, float noundef %185)
          to label %186 unwind label %221

186:                                              ; preds = %180
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %187 unwind label %225

187:                                              ; preds = %186
  %188 = load ptr, ptr %6, align 8, !tbaa !5
  %189 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %190 unwind label %229

190:                                              ; preds = %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  %191 = load ptr, ptr %6, align 8, !tbaa !5
  %192 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %191, ptr noundef @.str.185)
  br label %242

193:                                              ; preds = %156
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %17, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %18, align 4
  br label %241

197:                                              ; preds = %164
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %17, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %18, align 4
  br label %240

201:                                              ; preds = %170
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %17, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %18, align 4
  br label %239

205:                                              ; preds = %171
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %17, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %18, align 4
  br label %238

209:                                              ; preds = %172
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %17, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %18, align 4
  br label %237

213:                                              ; preds = %178
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %17, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %18, align 4
  br label %236

217:                                              ; preds = %179
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %17, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %18, align 4
  br label %235

221:                                              ; preds = %180
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %17, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %18, align 4
  br label %234

225:                                              ; preds = %186
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %17, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %18, align 4
  br label %233

229:                                              ; preds = %187
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %17, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %233

233:                                              ; preds = %229, %225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %234

234:                                              ; preds = %233, %221
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %235

235:                                              ; preds = %234, %217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %236

236:                                              ; preds = %235, %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %237

237:                                              ; preds = %236, %209
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %238

238:                                              ; preds = %237, %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %239

239:                                              ; preds = %238, %201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %240

240:                                              ; preds = %239, %197
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %241

241:                                              ; preds = %240, %193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %1990

242:                                              ; preds = %190, %147
  %243 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %244 = getelementptr inbounds %"struct.fastgltf::Material", ptr %243, i32 0, i32 0
  %245 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %244, i32 0, i32 3
  %246 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %245) #6
  br i1 %246, label %247, label %264

247:                                              ; preds = %242
  %248 = load ptr, ptr %6, align 8, !tbaa !5
  %249 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %248) #6
  %250 = load i8, ptr %249, align 1, !tbaa !9
  %251 = sext i8 %250 to i32
  %252 = icmp ne i32 %251, 123
  br i1 %252, label %253, label %256

253:                                              ; preds = %247
  %254 = load ptr, ptr %6, align 8, !tbaa !5
  %255 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %254, i8 noundef signext 44)
  br label %256

256:                                              ; preds = %253, %247
  %257 = load ptr, ptr %6, align 8, !tbaa !5
  %258 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef @.str.217)
  %259 = load ptr, ptr %6, align 8, !tbaa !5
  %260 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %261 = getelementptr inbounds %"struct.fastgltf::Material", ptr %260, i32 0, i32 0
  %262 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %261, i32 0, i32 3
  %263 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %262)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef %263, i8 noundef zeroext 0)
  br label %264

264:                                              ; preds = %256, %242
  %265 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %266 = getelementptr inbounds %"struct.fastgltf::Material", ptr %265, i32 0, i32 0
  %267 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %266, i32 0, i32 1
  %268 = load float, ptr %267, align 8, !tbaa !12
  %269 = fcmp une float %268, 1.000000e+00
  br i1 %269, label %270, label %297

270:                                              ; preds = %264
  %271 = load ptr, ptr %6, align 8, !tbaa !5
  %272 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %271) #6
  %273 = load i8, ptr %272, align 1, !tbaa !9
  %274 = sext i8 %273 to i32
  %275 = icmp ne i32 %274, 123
  br i1 %275, label %276, label %279

276:                                              ; preds = %270
  %277 = load ptr, ptr %6, align 8, !tbaa !5
  %278 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %277, i8 noundef signext 44)
  br label %279

279:                                              ; preds = %276, %270
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #6
  %280 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %281 = getelementptr inbounds %"struct.fastgltf::Material", ptr %280, i32 0, i32 0
  %282 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %281, i32 0, i32 1
  %283 = load float, ptr %282, align 8, !tbaa !12
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, float noundef %283)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef @.str.218, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %284 unwind label %288

284:                                              ; preds = %279
  %285 = load ptr, ptr %6, align 8, !tbaa !5
  %286 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %287 unwind label %292

287:                                              ; preds = %284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %297

288:                                              ; preds = %279
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %17, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %18, align 4
  br label %296

292:                                              ; preds = %284
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %17, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %296

296:                                              ; preds = %292, %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %1990

297:                                              ; preds = %287, %264
  %298 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %299 = getelementptr inbounds %"struct.fastgltf::Material", ptr %298, i32 0, i32 0
  %300 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %299, i32 0, i32 2
  %301 = load float, ptr %300, align 4, !tbaa !88
  %302 = fcmp une float %301, 1.000000e+00
  br i1 %302, label %303, label %330

303:                                              ; preds = %297
  %304 = load ptr, ptr %6, align 8, !tbaa !5
  %305 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %304) #6
  %306 = load i8, ptr %305, align 1, !tbaa !9
  %307 = sext i8 %306 to i32
  %308 = icmp ne i32 %307, 123
  br i1 %308, label %309, label %312

309:                                              ; preds = %303
  %310 = load ptr, ptr %6, align 8, !tbaa !5
  %311 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %310, i8 noundef signext 44)
  br label %312

312:                                              ; preds = %309, %303
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  %313 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %314 = getelementptr inbounds %"struct.fastgltf::Material", ptr %313, i32 0, i32 0
  %315 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %314, i32 0, i32 2
  %316 = load float, ptr %315, align 4, !tbaa !88
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, float noundef %316)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef @.str.219, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %317 unwind label %321

317:                                              ; preds = %312
  %318 = load ptr, ptr %6, align 8, !tbaa !5
  %319 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %320 unwind label %325

320:                                              ; preds = %317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %330

321:                                              ; preds = %312
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %17, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %18, align 4
  br label %329

325:                                              ; preds = %317
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %17, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %329

329:                                              ; preds = %325, %321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %1990

330:                                              ; preds = %320, %297
  %331 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %332 = getelementptr inbounds %"struct.fastgltf::Material", ptr %331, i32 0, i32 0
  %333 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %332, i32 0, i32 4
  %334 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %333) #6
  br i1 %334, label %335, label %352

335:                                              ; preds = %330
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %336) #6
  %338 = load i8, ptr %337, align 1, !tbaa !9
  %339 = sext i8 %338 to i32
  %340 = icmp ne i32 %339, 123
  br i1 %340, label %341, label %344

341:                                              ; preds = %335
  %342 = load ptr, ptr %6, align 8, !tbaa !5
  %343 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %342, i8 noundef signext 44)
  br label %344

344:                                              ; preds = %341, %335
  %345 = load ptr, ptr %6, align 8, !tbaa !5
  %346 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef @.str.220)
  %347 = load ptr, ptr %6, align 8, !tbaa !5
  %348 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %349 = getelementptr inbounds %"struct.fastgltf::Material", ptr %348, i32 0, i32 0
  %350 = getelementptr inbounds %"struct.fastgltf::PBRData", ptr %349, i32 0, i32 4
  %351 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %350)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef %351, i8 noundef zeroext 0)
  br label %352

352:                                              ; preds = %344, %330
  %353 = load ptr, ptr %6, align 8, !tbaa !5
  %354 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %353, i8 noundef signext 125)
  %355 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %356 = getelementptr inbounds %"struct.fastgltf::Material", ptr %355, i32 0, i32 1
  %357 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %356) #6
  br i1 %357, label %358, label %374

358:                                              ; preds = %352
  %359 = load ptr, ptr %6, align 8, !tbaa !5
  %360 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %359) #6
  %361 = load i8, ptr %360, align 1, !tbaa !9
  %362 = sext i8 %361 to i32
  %363 = icmp ne i32 %362, 44
  br i1 %363, label %364, label %367

364:                                              ; preds = %358
  %365 = load ptr, ptr %6, align 8, !tbaa !5
  %366 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %365, i8 noundef signext 44)
  br label %367

367:                                              ; preds = %364, %358
  %368 = load ptr, ptr %6, align 8, !tbaa !5
  %369 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef @.str.221)
  %370 = load ptr, ptr %6, align 8, !tbaa !5
  %371 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %372 = getelementptr inbounds %"struct.fastgltf::Material", ptr %371, i32 0, i32 1
  %373 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf17NormalTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %372)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef %373, i8 noundef zeroext 1)
  br label %374

374:                                              ; preds = %367, %352
  %375 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %376 = getelementptr inbounds %"struct.fastgltf::Material", ptr %375, i32 0, i32 2
  %377 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %376) #6
  br i1 %377, label %378, label %394

378:                                              ; preds = %374
  %379 = load ptr, ptr %6, align 8, !tbaa !5
  %380 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %379) #6
  %381 = load i8, ptr %380, align 1, !tbaa !9
  %382 = sext i8 %381 to i32
  %383 = icmp ne i32 %382, 44
  br i1 %383, label %384, label %387

384:                                              ; preds = %378
  %385 = load ptr, ptr %6, align 8, !tbaa !5
  %386 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %385, i8 noundef signext 44)
  br label %387

387:                                              ; preds = %384, %378
  %388 = load ptr, ptr %6, align 8, !tbaa !5
  %389 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef @.str.222)
  %390 = load ptr, ptr %6, align 8, !tbaa !5
  %391 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %392 = getelementptr inbounds %"struct.fastgltf::Material", ptr %391, i32 0, i32 2
  %393 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf20OcclusionTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %392)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef %393, i8 noundef zeroext 2)
  br label %394

394:                                              ; preds = %387, %374
  %395 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %396 = getelementptr inbounds %"struct.fastgltf::Material", ptr %395, i32 0, i32 3
  %397 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %396) #6
  br i1 %397, label %398, label %414

398:                                              ; preds = %394
  %399 = load ptr, ptr %6, align 8, !tbaa !5
  %400 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %399) #6
  %401 = load i8, ptr %400, align 1, !tbaa !9
  %402 = sext i8 %401 to i32
  %403 = icmp ne i32 %402, 44
  br i1 %403, label %404, label %407

404:                                              ; preds = %398
  %405 = load ptr, ptr %6, align 8, !tbaa !5
  %406 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %405, i8 noundef signext 44)
  br label %407

407:                                              ; preds = %404, %398
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %408, ptr noundef @.str.223)
  %410 = load ptr, ptr %6, align 8, !tbaa !5
  %411 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %412 = getelementptr inbounds %"struct.fastgltf::Material", ptr %411, i32 0, i32 3
  %413 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %412)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef %413, i8 noundef zeroext 0)
  br label %414

414:                                              ; preds = %407, %394
  %415 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %416 = getelementptr inbounds %"struct.fastgltf::Material", ptr %415, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 12, ptr %26) #6
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %26, float noundef 0.000000e+00) #6
  %417 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %416, ptr noundef nonnull align 4 dereferenceable(12) %26) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %26) #6
  br i1 %417, label %418, label %487

418:                                              ; preds = %414
  %419 = load ptr, ptr %6, align 8, !tbaa !5
  %420 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %419) #6
  %421 = load i8, ptr %420, align 1, !tbaa !9
  %422 = sext i8 %421 to i32
  %423 = icmp ne i32 %422, 44
  br i1 %423, label %424, label %427

424:                                              ; preds = %418
  %425 = load ptr, ptr %6, align 8, !tbaa !5
  %426 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %425, i8 noundef signext 44)
  br label %427

427:                                              ; preds = %424, %418
  %428 = load ptr, ptr %6, align 8, !tbaa !5
  %429 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef @.str.224)
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #6
  %430 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %431 = getelementptr inbounds %"struct.fastgltf::Material", ptr %430, i32 0, i32 4
  %432 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %431, i64 noundef 0) #6
  %433 = load float, ptr %432, align 4, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, float noundef %433)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, i8 noundef signext 44)
          to label %434 unwind label %453

434:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #6
  %435 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %436 = getelementptr inbounds %"struct.fastgltf::Material", ptr %435, i32 0, i32 4
  %437 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %436, i64 noundef 1) #6
  %438 = load float, ptr %437, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, float noundef %438)
          to label %439 unwind label %457

439:                                              ; preds = %434
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %440 unwind label %461

440:                                              ; preds = %439
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, i8 noundef signext 44)
          to label %441 unwind label %465

441:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #6
  %442 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %443 = getelementptr inbounds %"struct.fastgltf::Material", ptr %442, i32 0, i32 4
  %444 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %443, i64 noundef 2) #6
  %445 = load float, ptr %444, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, float noundef %445)
          to label %446 unwind label %469

446:                                              ; preds = %441
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %447 unwind label %473

447:                                              ; preds = %446
  %448 = load ptr, ptr %6, align 8, !tbaa !5
  %449 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %450 unwind label %477

450:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  %451 = load ptr, ptr %6, align 8, !tbaa !5
  %452 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %451, ptr noundef @.str.176)
  br label %487

453:                                              ; preds = %427
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %17, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %18, align 4
  br label %486

457:                                              ; preds = %434
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %17, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %18, align 4
  br label %485

461:                                              ; preds = %439
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %17, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %18, align 4
  br label %484

465:                                              ; preds = %440
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %17, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %18, align 4
  br label %483

469:                                              ; preds = %441
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %17, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %18, align 4
  br label %482

473:                                              ; preds = %446
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %17, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %18, align 4
  br label %481

477:                                              ; preds = %447
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %17, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %481

481:                                              ; preds = %477, %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %482

482:                                              ; preds = %481, %469
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %483

483:                                              ; preds = %482, %465
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %484

484:                                              ; preds = %483, %461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %485

485:                                              ; preds = %484, %457
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %486

486:                                              ; preds = %485, %453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %1990

487:                                              ; preds = %450, %414
  %488 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %489 = getelementptr inbounds %"struct.fastgltf::Material", ptr %488, i32 0, i32 5
  %490 = load i8, ptr %489, align 4, !tbaa !89
  %491 = icmp ne i8 %490, 0
  br i1 %491, label %492, label %521

492:                                              ; preds = %487
  %493 = load ptr, ptr %6, align 8, !tbaa !5
  %494 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %493) #6
  %495 = load i8, ptr %494, align 1, !tbaa !9
  %496 = sext i8 %495 to i32
  %497 = icmp ne i32 %496, 44
  br i1 %497, label %498, label %501

498:                                              ; preds = %492
  %499 = load ptr, ptr %6, align 8, !tbaa !5
  %500 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %499, i8 noundef signext 44)
  br label %501

501:                                              ; preds = %498, %492
  %502 = load ptr, ptr %6, align 8, !tbaa !5
  %503 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %502, ptr noundef @.str.225)
  %504 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %505 = getelementptr inbounds %"struct.fastgltf::Material", ptr %504, i32 0, i32 5
  %506 = load i8, ptr %505, align 4, !tbaa !89
  %507 = icmp eq i8 %506, 2
  br i1 %507, label %508, label %511

508:                                              ; preds = %501
  %509 = load ptr, ptr %6, align 8, !tbaa !5
  %510 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %509, ptr noundef @.str.226)
  br label %520

511:                                              ; preds = %501
  %512 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %513 = getelementptr inbounds %"struct.fastgltf::Material", ptr %512, i32 0, i32 5
  %514 = load i8, ptr %513, align 4, !tbaa !89
  %515 = icmp eq i8 %514, 1
  br i1 %515, label %516, label %519

516:                                              ; preds = %511
  %517 = load ptr, ptr %6, align 8, !tbaa !5
  %518 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %517, ptr noundef @.str.227)
  br label %519

519:                                              ; preds = %516, %511
  br label %520

520:                                              ; preds = %519, %508
  br label %521

521:                                              ; preds = %520, %487
  %522 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %523 = getelementptr inbounds %"struct.fastgltf::Material", ptr %522, i32 0, i32 5
  %524 = load i8, ptr %523, align 4, !tbaa !89
  %525 = icmp eq i8 %524, 1
  br i1 %525, label %526, label %557

526:                                              ; preds = %521
  %527 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %528 = getelementptr inbounds %"struct.fastgltf::Material", ptr %527, i32 0, i32 8
  %529 = load float, ptr %528, align 8, !tbaa !90
  %530 = fcmp une float %529, 5.000000e-01
  br i1 %530, label %531, label %557

531:                                              ; preds = %526
  %532 = load ptr, ptr %6, align 8, !tbaa !5
  %533 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %532) #6
  %534 = load i8, ptr %533, align 1, !tbaa !9
  %535 = sext i8 %534 to i32
  %536 = icmp ne i32 %535, 44
  br i1 %536, label %537, label %540

537:                                              ; preds = %531
  %538 = load ptr, ptr %6, align 8, !tbaa !5
  %539 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %538, i8 noundef signext 44)
  br label %540

540:                                              ; preds = %537, %531
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #6
  %541 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %542 = getelementptr inbounds %"struct.fastgltf::Material", ptr %541, i32 0, i32 8
  %543 = load float, ptr %542, align 8, !tbaa !90
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, float noundef %543)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef @.str.228, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %544 unwind label %548

544:                                              ; preds = %540
  %545 = load ptr, ptr %6, align 8, !tbaa !5
  %546 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %545, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %547 unwind label %552

547:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  br label %557

548:                                              ; preds = %540
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %17, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %18, align 4
  br label %556

552:                                              ; preds = %544
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %17, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %556

556:                                              ; preds = %552, %548
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #6
  br label %1990

557:                                              ; preds = %547, %526, %521
  %558 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %559 = getelementptr inbounds %"struct.fastgltf::Material", ptr %558, i32 0, i32 6
  %560 = load i8, ptr %559, align 1, !tbaa !91, !range !92, !noundef !93
  %561 = trunc i8 %560 to i1
  br i1 %561, label %562, label %574

562:                                              ; preds = %557
  %563 = load ptr, ptr %6, align 8, !tbaa !5
  %564 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %563) #6
  %565 = load i8, ptr %564, align 1, !tbaa !9
  %566 = sext i8 %565 to i32
  %567 = icmp ne i32 %566, 44
  br i1 %567, label %568, label %571

568:                                              ; preds = %562
  %569 = load ptr, ptr %6, align 8, !tbaa !5
  %570 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %569, i8 noundef signext 44)
  br label %571

571:                                              ; preds = %568, %562
  %572 = load ptr, ptr %6, align 8, !tbaa !5
  %573 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef @.str.229)
  br label %574

574:                                              ; preds = %571, %557
  %575 = load ptr, ptr %6, align 8, !tbaa !5
  %576 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %575) #6
  %577 = load i8, ptr %576, align 1, !tbaa !9
  %578 = sext i8 %577 to i32
  %579 = icmp ne i32 %578, 44
  br i1 %579, label %580, label %583

580:                                              ; preds = %574
  %581 = load ptr, ptr %6, align 8, !tbaa !5
  %582 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %581, i8 noundef signext 44)
  br label %583

583:                                              ; preds = %580, %574
  %584 = load ptr, ptr %6, align 8, !tbaa !5
  %585 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %584, ptr noundef @.str.230)
  %586 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %587 = getelementptr inbounds %"struct.fastgltf::Material", ptr %586, i32 0, i32 12
  %588 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %587) #6
  br i1 %588, label %589, label %679

589:                                              ; preds = %583
  %590 = load ptr, ptr %6, align 8, !tbaa !5
  %591 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %590, ptr noundef @.str.231)
  %592 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %593 = getelementptr inbounds %"struct.fastgltf::Material", ptr %592, i32 0, i32 12
  %594 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %593) #6
  %595 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %594, i32 0, i32 0
  %596 = load float, ptr %595, align 8, !tbaa !94
  %597 = fcmp une float %596, 0.000000e+00
  br i1 %597, label %598, label %617

598:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  %599 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %600 = getelementptr inbounds %"struct.fastgltf::Material", ptr %599, i32 0, i32 12
  %601 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %600) #6
  %602 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %601, i32 0, i32 0
  %603 = load float, ptr %602, align 8, !tbaa !94
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, float noundef %603)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef @.str.232, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %604 unwind label %608

604:                                              ; preds = %598
  %605 = load ptr, ptr %6, align 8, !tbaa !5
  %606 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %605, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %607 unwind label %612

607:                                              ; preds = %604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #6
  br label %617

608:                                              ; preds = %598
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %17, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %18, align 4
  br label %616

612:                                              ; preds = %604
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %17, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %616

616:                                              ; preds = %612, %608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #6
  br label %1990

617:                                              ; preds = %607, %589
  %618 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %619 = getelementptr inbounds %"struct.fastgltf::Material", ptr %618, i32 0, i32 12
  %620 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %619) #6
  %621 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %620, i32 0, i32 1
  %622 = load float, ptr %621, align 4, !tbaa !96
  %623 = fcmp une float %622, 0.000000e+00
  br i1 %623, label %624, label %652

624:                                              ; preds = %617
  %625 = load ptr, ptr %6, align 8, !tbaa !5
  %626 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %625) #6
  %627 = load i8, ptr %626, align 1, !tbaa !9
  %628 = sext i8 %627 to i32
  %629 = icmp ne i32 %628, 123
  br i1 %629, label %630, label %633

630:                                              ; preds = %624
  %631 = load ptr, ptr %6, align 8, !tbaa !5
  %632 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %631, i8 noundef signext 44)
  br label %633

633:                                              ; preds = %630, %624
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #6
  %634 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %635 = getelementptr inbounds %"struct.fastgltf::Material", ptr %634, i32 0, i32 12
  %636 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %635) #6
  %637 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %636, i32 0, i32 1
  %638 = load float, ptr %637, align 4, !tbaa !96
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, float noundef %638)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %639 unwind label %643

639:                                              ; preds = %633
  %640 = load ptr, ptr %6, align 8, !tbaa !5
  %641 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %640, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %642 unwind label %647

642:                                              ; preds = %639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  br label %652

643:                                              ; preds = %633
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %17, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %18, align 4
  br label %651

647:                                              ; preds = %639
  %648 = landingpad { ptr, i32 }
          cleanup
  %649 = extractvalue { ptr, i32 } %648, 0
  store ptr %649, ptr %17, align 8
  %650 = extractvalue { ptr, i32 } %648, 1
  store i32 %650, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %651

651:                                              ; preds = %647, %643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  br label %1990

652:                                              ; preds = %642, %617
  %653 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %654 = getelementptr inbounds %"struct.fastgltf::Material", ptr %653, i32 0, i32 12
  %655 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %654) #6
  %656 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %655, i32 0, i32 2
  %657 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %656) #6
  br i1 %657, label %658, label %676

658:                                              ; preds = %652
  %659 = load ptr, ptr %6, align 8, !tbaa !5
  %660 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %659) #6
  %661 = load i8, ptr %660, align 1, !tbaa !9
  %662 = sext i8 %661 to i32
  %663 = icmp ne i32 %662, 123
  br i1 %663, label %664, label %667

664:                                              ; preds = %658
  %665 = load ptr, ptr %6, align 8, !tbaa !5
  %666 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %665, i8 noundef signext 44)
  br label %667

667:                                              ; preds = %664, %658
  %668 = load ptr, ptr %6, align 8, !tbaa !5
  %669 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef @.str.234)
  %670 = load ptr, ptr %6, align 8, !tbaa !5
  %671 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %672 = getelementptr inbounds %"struct.fastgltf::Material", ptr %671, i32 0, i32 12
  %673 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %672) #6
  %674 = getelementptr inbounds %"struct.fastgltf::MaterialAnisotropy", ptr %673, i32 0, i32 2
  %675 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %674)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %670, ptr noundef %675, i8 noundef zeroext 0)
  br label %676

676:                                              ; preds = %667, %652
  %677 = load ptr, ptr %6, align 8, !tbaa !5
  %678 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %677, i8 noundef signext 125)
  br label %679

679:                                              ; preds = %676, %583
  %680 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %681 = getelementptr inbounds %"struct.fastgltf::Material", ptr %680, i32 0, i32 13
  %682 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %681) #6
  br i1 %682, label %683, label %830

683:                                              ; preds = %679
  %684 = load ptr, ptr %6, align 8, !tbaa !5
  %685 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %684) #6
  %686 = load i8, ptr %685, align 1, !tbaa !9
  %687 = sext i8 %686 to i32
  %688 = icmp eq i32 %687, 125
  br i1 %688, label %689, label %692

689:                                              ; preds = %683
  %690 = load ptr, ptr %6, align 8, !tbaa !5
  %691 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %690, i8 noundef signext 44)
  br label %692

692:                                              ; preds = %689, %683
  %693 = load ptr, ptr %6, align 8, !tbaa !5
  %694 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %693, ptr noundef @.str.235)
  %695 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %696 = getelementptr inbounds %"struct.fastgltf::Material", ptr %695, i32 0, i32 13
  %697 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %696) #6
  %698 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %697, i32 0, i32 0
  %699 = load float, ptr %698, align 8, !tbaa !97
  %700 = fcmp une float %699, 0.000000e+00
  br i1 %700, label %701, label %720

701:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  %702 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %703 = getelementptr inbounds %"struct.fastgltf::Material", ptr %702, i32 0, i32 13
  %704 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %703) #6
  %705 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %704, i32 0, i32 0
  %706 = load float, ptr %705, align 8, !tbaa !97
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, float noundef %706)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef @.str.236, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %707 unwind label %711

707:                                              ; preds = %701
  %708 = load ptr, ptr %6, align 8, !tbaa !5
  %709 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %708, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %710 unwind label %715

710:                                              ; preds = %707
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %720

711:                                              ; preds = %701
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %17, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %18, align 4
  br label %719

715:                                              ; preds = %707
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %17, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %719

719:                                              ; preds = %715, %711
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %1990

720:                                              ; preds = %710, %692
  %721 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %722 = getelementptr inbounds %"struct.fastgltf::Material", ptr %721, i32 0, i32 13
  %723 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %722) #6
  %724 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %723, i32 0, i32 2
  %725 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %724) #6
  br i1 %725, label %726, label %744

726:                                              ; preds = %720
  %727 = load ptr, ptr %6, align 8, !tbaa !5
  %728 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %727) #6
  %729 = load i8, ptr %728, align 1, !tbaa !9
  %730 = sext i8 %729 to i32
  %731 = icmp ne i32 %730, 123
  br i1 %731, label %732, label %735

732:                                              ; preds = %726
  %733 = load ptr, ptr %6, align 8, !tbaa !5
  %734 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %733, i8 noundef signext 44)
  br label %735

735:                                              ; preds = %732, %726
  %736 = load ptr, ptr %6, align 8, !tbaa !5
  %737 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef @.str.237)
  %738 = load ptr, ptr %6, align 8, !tbaa !5
  %739 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %740 = getelementptr inbounds %"struct.fastgltf::Material", ptr %739, i32 0, i32 13
  %741 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %740) #6
  %742 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %741, i32 0, i32 2
  %743 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %742)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %738, ptr noundef %743, i8 noundef zeroext 0)
  br label %744

744:                                              ; preds = %735, %720
  %745 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %746 = getelementptr inbounds %"struct.fastgltf::Material", ptr %745, i32 0, i32 13
  %747 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %746) #6
  %748 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %747, i32 0, i32 3
  %749 = load float, ptr %748, align 8, !tbaa !99
  %750 = fcmp une float %749, 0.000000e+00
  br i1 %750, label %751, label %779

751:                                              ; preds = %744
  %752 = load ptr, ptr %6, align 8, !tbaa !5
  %753 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %752) #6
  %754 = load i8, ptr %753, align 1, !tbaa !9
  %755 = sext i8 %754 to i32
  %756 = icmp ne i32 %755, 123
  br i1 %756, label %757, label %760

757:                                              ; preds = %751
  %758 = load ptr, ptr %6, align 8, !tbaa !5
  %759 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %758, i8 noundef signext 44)
  br label %760

760:                                              ; preds = %757, %751
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #6
  %761 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %762 = getelementptr inbounds %"struct.fastgltf::Material", ptr %761, i32 0, i32 13
  %763 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %762) #6
  %764 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %763, i32 0, i32 3
  %765 = load float, ptr %764, align 8, !tbaa !99
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, float noundef %765)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef @.str.238, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %766 unwind label %770

766:                                              ; preds = %760
  %767 = load ptr, ptr %6, align 8, !tbaa !5
  %768 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %767, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %769 unwind label %774

769:                                              ; preds = %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #6
  br label %779

770:                                              ; preds = %760
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %17, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %18, align 4
  br label %778

774:                                              ; preds = %766
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %17, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %778

778:                                              ; preds = %774, %770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #6
  br label %1990

779:                                              ; preds = %769, %744
  %780 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %781 = getelementptr inbounds %"struct.fastgltf::Material", ptr %780, i32 0, i32 13
  %782 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %781) #6
  %783 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %782, i32 0, i32 5
  %784 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %783) #6
  br i1 %784, label %785, label %803

785:                                              ; preds = %779
  %786 = load ptr, ptr %6, align 8, !tbaa !5
  %787 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %786) #6
  %788 = load i8, ptr %787, align 1, !tbaa !9
  %789 = sext i8 %788 to i32
  %790 = icmp ne i32 %789, 123
  br i1 %790, label %791, label %794

791:                                              ; preds = %785
  %792 = load ptr, ptr %6, align 8, !tbaa !5
  %793 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %792, i8 noundef signext 44)
  br label %794

794:                                              ; preds = %791, %785
  %795 = load ptr, ptr %6, align 8, !tbaa !5
  %796 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %795, ptr noundef @.str.239)
  %797 = load ptr, ptr %6, align 8, !tbaa !5
  %798 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %799 = getelementptr inbounds %"struct.fastgltf::Material", ptr %798, i32 0, i32 13
  %800 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %799) #6
  %801 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %800, i32 0, i32 5
  %802 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %801)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %797, ptr noundef %802, i8 noundef zeroext 0)
  br label %803

803:                                              ; preds = %794, %779
  %804 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %805 = getelementptr inbounds %"struct.fastgltf::Material", ptr %804, i32 0, i32 13
  %806 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %805) #6
  %807 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %806, i32 0, i32 6
  %808 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %807) #6
  br i1 %808, label %809, label %827

809:                                              ; preds = %803
  %810 = load ptr, ptr %6, align 8, !tbaa !5
  %811 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %810) #6
  %812 = load i8, ptr %811, align 1, !tbaa !9
  %813 = sext i8 %812 to i32
  %814 = icmp ne i32 %813, 123
  br i1 %814, label %815, label %818

815:                                              ; preds = %809
  %816 = load ptr, ptr %6, align 8, !tbaa !5
  %817 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %816, i8 noundef signext 44)
  br label %818

818:                                              ; preds = %815, %809
  %819 = load ptr, ptr %6, align 8, !tbaa !5
  %820 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %819, ptr noundef @.str.240)
  %821 = load ptr, ptr %6, align 8, !tbaa !5
  %822 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %823 = getelementptr inbounds %"struct.fastgltf::Material", ptr %822, i32 0, i32 13
  %824 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %823) #6
  %825 = getelementptr inbounds %"struct.fastgltf::MaterialClearcoat", ptr %824, i32 0, i32 6
  %826 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %825)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %821, ptr noundef %826, i8 noundef zeroext 0)
  br label %827

827:                                              ; preds = %818, %803
  %828 = load ptr, ptr %6, align 8, !tbaa !5
  %829 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %828, i8 noundef signext 125)
  br label %830

830:                                              ; preds = %827, %679
  %831 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %832 = getelementptr inbounds %"struct.fastgltf::Material", ptr %831, i32 0, i32 11
  %833 = load float, ptr %832, align 4, !tbaa !100
  %834 = fcmp une float %833, 0.000000e+00
  br i1 %834, label %835, label %867

835:                                              ; preds = %830
  %836 = load ptr, ptr %6, align 8, !tbaa !5
  %837 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %836) #6
  %838 = load i8, ptr %837, align 1, !tbaa !9
  %839 = sext i8 %838 to i32
  %840 = icmp eq i32 %839, 125
  br i1 %840, label %841, label %844

841:                                              ; preds = %835
  %842 = load ptr, ptr %6, align 8, !tbaa !5
  %843 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %842, i8 noundef signext 44)
  br label %844

844:                                              ; preds = %841, %835
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #6
  %845 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %846 = getelementptr inbounds %"struct.fastgltf::Material", ptr %845, i32 0, i32 11
  %847 = load float, ptr %846, align 4, !tbaa !100
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, float noundef %847)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef @.str.241, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %848 unwind label %853

848:                                              ; preds = %844
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, i8 noundef signext 125)
          to label %849 unwind label %857

849:                                              ; preds = %848
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %850, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %852 unwind label %861

852:                                              ; preds = %849
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #6
  br label %867

853:                                              ; preds = %844
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %17, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %18, align 4
  br label %866

857:                                              ; preds = %848
  %858 = landingpad { ptr, i32 }
          cleanup
  %859 = extractvalue { ptr, i32 } %858, 0
  store ptr %859, ptr %17, align 8
  %860 = extractvalue { ptr, i32 } %858, 1
  store i32 %860, ptr %18, align 4
  br label %865

861:                                              ; preds = %849
  %862 = landingpad { ptr, i32 }
          cleanup
  %863 = extractvalue { ptr, i32 } %862, 0
  store ptr %863, ptr %17, align 8
  %864 = extractvalue { ptr, i32 } %862, 1
  store i32 %864, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %865

865:                                              ; preds = %861, %857
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %866

866:                                              ; preds = %865, %853
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #6
  br label %1990

867:                                              ; preds = %852, %830
  %868 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %869 = getelementptr inbounds %"struct.fastgltf::Material", ptr %868, i32 0, i32 9
  %870 = load float, ptr %869, align 4, !tbaa !101
  %871 = fcmp une float %870, 1.000000e+00
  br i1 %871, label %872, label %904

872:                                              ; preds = %867
  %873 = load ptr, ptr %6, align 8, !tbaa !5
  %874 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %873) #6
  %875 = load i8, ptr %874, align 1, !tbaa !9
  %876 = sext i8 %875 to i32
  %877 = icmp eq i32 %876, 125
  br i1 %877, label %878, label %881

878:                                              ; preds = %872
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %879, i8 noundef signext 44)
  br label %881

881:                                              ; preds = %878, %872
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #6
  %882 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %883 = getelementptr inbounds %"struct.fastgltf::Material", ptr %882, i32 0, i32 9
  %884 = load float, ptr %883, align 4, !tbaa !101
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, float noundef %884)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef @.str.242, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %885 unwind label %890

885:                                              ; preds = %881
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, i8 noundef signext 125)
          to label %886 unwind label %894

886:                                              ; preds = %885
  %887 = load ptr, ptr %6, align 8, !tbaa !5
  %888 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %887, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %889 unwind label %898

889:                                              ; preds = %886
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  br label %904

890:                                              ; preds = %881
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %17, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %18, align 4
  br label %903

894:                                              ; preds = %885
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %17, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %18, align 4
  br label %902

898:                                              ; preds = %886
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %17, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %902

902:                                              ; preds = %898, %894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #6
  br label %903

903:                                              ; preds = %902, %890
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  br label %1990

904:                                              ; preds = %889, %867
  %905 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %906 = getelementptr inbounds %"struct.fastgltf::Material", ptr %905, i32 0, i32 10
  %907 = load float, ptr %906, align 8, !tbaa !102
  %908 = fcmp une float %907, 1.500000e+00
  br i1 %908, label %909, label %941

909:                                              ; preds = %904
  %910 = load ptr, ptr %6, align 8, !tbaa !5
  %911 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %910) #6
  %912 = load i8, ptr %911, align 1, !tbaa !9
  %913 = sext i8 %912 to i32
  %914 = icmp eq i32 %913, 125
  br i1 %914, label %915, label %918

915:                                              ; preds = %909
  %916 = load ptr, ptr %6, align 8, !tbaa !5
  %917 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %916, i8 noundef signext 44)
  br label %918

918:                                              ; preds = %915, %909
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #6
  %919 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %920 = getelementptr inbounds %"struct.fastgltf::Material", ptr %919, i32 0, i32 10
  %921 = load float, ptr %920, align 8, !tbaa !102
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, float noundef %921)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef @.str.243, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %922 unwind label %927

922:                                              ; preds = %918
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, i8 noundef signext 125)
          to label %923 unwind label %931

923:                                              ; preds = %922
  %924 = load ptr, ptr %6, align 8, !tbaa !5
  %925 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %924, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %926 unwind label %935

926:                                              ; preds = %923
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  br label %941

927:                                              ; preds = %918
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %17, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %18, align 4
  br label %940

931:                                              ; preds = %922
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %17, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %18, align 4
  br label %939

935:                                              ; preds = %923
  %936 = landingpad { ptr, i32 }
          cleanup
  %937 = extractvalue { ptr, i32 } %936, 0
  store ptr %937, ptr %17, align 8
  %938 = extractvalue { ptr, i32 } %936, 1
  store i32 %938, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %939

939:                                              ; preds = %935, %931
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %940

940:                                              ; preds = %939, %927
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #6
  br label %1990

941:                                              ; preds = %926, %904
  %942 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %943 = getelementptr inbounds %"struct.fastgltf::Material", ptr %942, i32 0, i32 14
  %944 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %943) #6
  br i1 %944, label %945, label %1138

945:                                              ; preds = %941
  %946 = load ptr, ptr %6, align 8, !tbaa !5
  %947 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %946) #6
  %948 = load i8, ptr %947, align 1, !tbaa !9
  %949 = sext i8 %948 to i32
  %950 = icmp eq i32 %949, 125
  br i1 %950, label %951, label %954

951:                                              ; preds = %945
  %952 = load ptr, ptr %6, align 8, !tbaa !5
  %953 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %952, i8 noundef signext 44)
  br label %954

954:                                              ; preds = %951, %945
  %955 = load ptr, ptr %6, align 8, !tbaa !5
  %956 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %955, ptr noundef @.str.244)
  %957 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %958 = getelementptr inbounds %"struct.fastgltf::Material", ptr %957, i32 0, i32 14
  %959 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %958) #6
  %960 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %959, i32 0, i32 0
  %961 = load float, ptr %960, align 8, !tbaa !103
  %962 = fcmp une float %961, 0.000000e+00
  br i1 %962, label %963, label %982

963:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #6
  %964 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %965 = getelementptr inbounds %"struct.fastgltf::Material", ptr %964, i32 0, i32 14
  %966 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %965) #6
  %967 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %966, i32 0, i32 0
  %968 = load float, ptr %967, align 8, !tbaa !103
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, float noundef %968)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef @.str.245, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %969 unwind label %973

969:                                              ; preds = %963
  %970 = load ptr, ptr %6, align 8, !tbaa !5
  %971 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %970, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %972 unwind label %977

972:                                              ; preds = %969
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %982

973:                                              ; preds = %963
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %17, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %18, align 4
  br label %981

977:                                              ; preds = %969
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %17, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %981

981:                                              ; preds = %977, %973
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %1990

982:                                              ; preds = %972, %954
  %983 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %984 = getelementptr inbounds %"struct.fastgltf::Material", ptr %983, i32 0, i32 14
  %985 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %984) #6
  %986 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %985, i32 0, i32 2
  %987 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %986) #6
  br i1 %987, label %988, label %1006

988:                                              ; preds = %982
  %989 = load ptr, ptr %6, align 8, !tbaa !5
  %990 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %989) #6
  %991 = load i8, ptr %990, align 1, !tbaa !9
  %992 = sext i8 %991 to i32
  %993 = icmp ne i32 %992, 123
  br i1 %993, label %994, label %997

994:                                              ; preds = %988
  %995 = load ptr, ptr %6, align 8, !tbaa !5
  %996 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %995, i8 noundef signext 44)
  br label %997

997:                                              ; preds = %994, %988
  %998 = load ptr, ptr %6, align 8, !tbaa !5
  %999 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %998, ptr noundef @.str.246)
  %1000 = load ptr, ptr %6, align 8, !tbaa !5
  %1001 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1002 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1001, i32 0, i32 14
  %1003 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1002) #6
  %1004 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1003, i32 0, i32 2
  %1005 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1004)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1000, ptr noundef %1005, i8 noundef zeroext 0)
  br label %1006

1006:                                             ; preds = %997, %982
  %1007 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1008 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1007, i32 0, i32 14
  %1009 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1008) #6
  %1010 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1009, i32 0, i32 3
  %1011 = load float, ptr %1010, align 8, !tbaa !105
  %1012 = fcmp une float %1011, 0x3FF4CCCCC0000000
  br i1 %1012, label %1013, label %1041

1013:                                             ; preds = %1006
  %1014 = load ptr, ptr %6, align 8, !tbaa !5
  %1015 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1014) #6
  %1016 = load i8, ptr %1015, align 1, !tbaa !9
  %1017 = sext i8 %1016 to i32
  %1018 = icmp ne i32 %1017, 123
  br i1 %1018, label %1019, label %1022

1019:                                             ; preds = %1013
  %1020 = load ptr, ptr %6, align 8, !tbaa !5
  %1021 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1020, i8 noundef signext 44)
  br label %1022

1022:                                             ; preds = %1019, %1013
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #6
  %1023 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1024 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1023, i32 0, i32 14
  %1025 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1024) #6
  %1026 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1025, i32 0, i32 3
  %1027 = load float, ptr %1026, align 8, !tbaa !105
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, float noundef %1027)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef @.str.247, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %1028 unwind label %1032

1028:                                             ; preds = %1022
  %1029 = load ptr, ptr %6, align 8, !tbaa !5
  %1030 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1029, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %1031 unwind label %1036

1031:                                             ; preds = %1028
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %1041

1032:                                             ; preds = %1022
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %17, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %18, align 4
  br label %1040

1036:                                             ; preds = %1028
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %17, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %1040

1040:                                             ; preds = %1036, %1032
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #6
  br label %1990

1041:                                             ; preds = %1031, %1006
  %1042 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1043 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1042, i32 0, i32 14
  %1044 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1043) #6
  %1045 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1044, i32 0, i32 4
  %1046 = load float, ptr %1045, align 4, !tbaa !106
  %1047 = fcmp une float %1046, 1.000000e+02
  br i1 %1047, label %1048, label %1076

1048:                                             ; preds = %1041
  %1049 = load ptr, ptr %6, align 8, !tbaa !5
  %1050 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1049) #6
  %1051 = load i8, ptr %1050, align 1, !tbaa !9
  %1052 = sext i8 %1051 to i32
  %1053 = icmp ne i32 %1052, 123
  br i1 %1053, label %1054, label %1057

1054:                                             ; preds = %1048
  %1055 = load ptr, ptr %6, align 8, !tbaa !5
  %1056 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1055, i8 noundef signext 44)
  br label %1057

1057:                                             ; preds = %1054, %1048
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #6
  %1058 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1059 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1058, i32 0, i32 14
  %1060 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1059) #6
  %1061 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1060, i32 0, i32 4
  %1062 = load float, ptr %1061, align 4, !tbaa !106
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, float noundef %1062)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef @.str.248, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %1063 unwind label %1067

1063:                                             ; preds = %1057
  %1064 = load ptr, ptr %6, align 8, !tbaa !5
  %1065 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1064, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %1066 unwind label %1071

1066:                                             ; preds = %1063
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %1076

1067:                                             ; preds = %1057
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %17, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %18, align 4
  br label %1075

1071:                                             ; preds = %1063
  %1072 = landingpad { ptr, i32 }
          cleanup
  %1073 = extractvalue { ptr, i32 } %1072, 0
  store ptr %1073, ptr %17, align 8
  %1074 = extractvalue { ptr, i32 } %1072, 1
  store i32 %1074, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %1075

1075:                                             ; preds = %1071, %1067
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #6
  br label %1990

1076:                                             ; preds = %1066, %1041
  %1077 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1078 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1077, i32 0, i32 14
  %1079 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1078) #6
  %1080 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1079, i32 0, i32 5
  %1081 = load float, ptr %1080, align 8, !tbaa !107
  %1082 = fcmp une float %1081, 4.000000e+02
  br i1 %1082, label %1083, label %1111

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr %6, align 8, !tbaa !5
  %1085 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1084) #6
  %1086 = load i8, ptr %1085, align 1, !tbaa !9
  %1087 = sext i8 %1086 to i32
  %1088 = icmp ne i32 %1087, 123
  br i1 %1088, label %1089, label %1092

1089:                                             ; preds = %1083
  %1090 = load ptr, ptr %6, align 8, !tbaa !5
  %1091 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1090, i8 noundef signext 44)
  br label %1092

1092:                                             ; preds = %1089, %1083
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #6
  %1093 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1094 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1093, i32 0, i32 14
  %1095 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1094) #6
  %1096 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1095, i32 0, i32 5
  %1097 = load float, ptr %1096, align 8, !tbaa !107
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, float noundef %1097)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %1098 unwind label %1102

1098:                                             ; preds = %1092
  %1099 = load ptr, ptr %6, align 8, !tbaa !5
  %1100 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1099, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %1101 unwind label %1106

1101:                                             ; preds = %1098
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #6
  br label %1111

1102:                                             ; preds = %1092
  %1103 = landingpad { ptr, i32 }
          cleanup
  %1104 = extractvalue { ptr, i32 } %1103, 0
  store ptr %1104, ptr %17, align 8
  %1105 = extractvalue { ptr, i32 } %1103, 1
  store i32 %1105, ptr %18, align 4
  br label %1110

1106:                                             ; preds = %1098
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %17, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %1110

1110:                                             ; preds = %1106, %1102
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #6
  br label %1990

1111:                                             ; preds = %1101, %1076
  %1112 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1113 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1112, i32 0, i32 14
  %1114 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1113) #6
  %1115 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1114, i32 0, i32 7
  %1116 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1115) #6
  br i1 %1116, label %1117, label %1135

1117:                                             ; preds = %1111
  %1118 = load ptr, ptr %6, align 8, !tbaa !5
  %1119 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1118) #6
  %1120 = load i8, ptr %1119, align 1, !tbaa !9
  %1121 = sext i8 %1120 to i32
  %1122 = icmp ne i32 %1121, 123
  br i1 %1122, label %1123, label %1126

1123:                                             ; preds = %1117
  %1124 = load ptr, ptr %6, align 8, !tbaa !5
  %1125 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1124, i8 noundef signext 44)
  br label %1126

1126:                                             ; preds = %1123, %1117
  %1127 = load ptr, ptr %6, align 8, !tbaa !5
  %1128 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1127, ptr noundef @.str.250)
  %1129 = load ptr, ptr %6, align 8, !tbaa !5
  %1130 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1131 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1130, i32 0, i32 14
  %1132 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1131) #6
  %1133 = getelementptr inbounds %"struct.fastgltf::MaterialIridescence", ptr %1132, i32 0, i32 7
  %1134 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1133)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1129, ptr noundef %1134, i8 noundef zeroext 0)
  br label %1135

1135:                                             ; preds = %1126, %1111
  %1136 = load ptr, ptr %6, align 8, !tbaa !5
  %1137 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1136, i8 noundef signext 125)
  br label %1138

1138:                                             ; preds = %1135, %941
  %1139 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1140 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1139, i32 0, i32 15
  %1141 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1140) #6
  br i1 %1141, label %1142, label %1319

1142:                                             ; preds = %1138
  %1143 = load ptr, ptr %6, align 8, !tbaa !5
  %1144 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1143) #6
  %1145 = load i8, ptr %1144, align 1, !tbaa !9
  %1146 = sext i8 %1145 to i32
  %1147 = icmp eq i32 %1146, 125
  br i1 %1147, label %1148, label %1151

1148:                                             ; preds = %1142
  %1149 = load ptr, ptr %6, align 8, !tbaa !5
  %1150 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1149, i8 noundef signext 44)
  br label %1151

1151:                                             ; preds = %1148, %1142
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1152, ptr noundef @.str.251)
  %1154 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1155 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1154, i32 0, i32 15
  %1156 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1155) #6
  %1157 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1156, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 12, ptr %61) #6
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %61, float noundef 0.000000e+00) #6
  %1158 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %1157, ptr noundef nonnull align 4 dereferenceable(12) %61) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %61) #6
  br i1 %1158, label %1159, label %1233

1159:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #6
  %1160 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1161 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1160, i32 0, i32 15
  %1162 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1161) #6
  %1163 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1162, i32 0, i32 0
  %1164 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1163, i64 noundef 0) #6
  %1165 = load float, ptr %1164, align 4, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, float noundef %1165)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef @.str.252, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %1166 unwind label %1189

1166:                                             ; preds = %1159
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, i8 noundef signext 44)
          to label %1167 unwind label %1193

1167:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #6
  %1168 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1169 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1168, i32 0, i32 15
  %1170 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1169) #6
  %1171 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1170, i32 0, i32 0
  %1172 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1171, i64 noundef 1) #6
  %1173 = load float, ptr %1172, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, float noundef %1173)
          to label %1174 unwind label %1197

1174:                                             ; preds = %1167
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %1175 unwind label %1201

1175:                                             ; preds = %1174
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, i8 noundef signext 44)
          to label %1176 unwind label %1205

1176:                                             ; preds = %1175
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #6
  %1177 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1178 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1177, i32 0, i32 15
  %1179 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1178) #6
  %1180 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1179, i32 0, i32 0
  %1181 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1180, i64 noundef 2) #6
  %1182 = load float, ptr %1181, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, float noundef %1182)
          to label %1183 unwind label %1209

1183:                                             ; preds = %1176
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %1184 unwind label %1213

1184:                                             ; preds = %1183
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, i8 noundef signext 93)
          to label %1185 unwind label %1217

1185:                                             ; preds = %1184
  %1186 = load ptr, ptr %6, align 8, !tbaa !5
  %1187 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1186, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %1188 unwind label %1221

1188:                                             ; preds = %1185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %1233

1189:                                             ; preds = %1159
  %1190 = landingpad { ptr, i32 }
          cleanup
  %1191 = extractvalue { ptr, i32 } %1190, 0
  store ptr %1191, ptr %17, align 8
  %1192 = extractvalue { ptr, i32 } %1190, 1
  store i32 %1192, ptr %18, align 4
  br label %1232

1193:                                             ; preds = %1166
  %1194 = landingpad { ptr, i32 }
          cleanup
  %1195 = extractvalue { ptr, i32 } %1194, 0
  store ptr %1195, ptr %17, align 8
  %1196 = extractvalue { ptr, i32 } %1194, 1
  store i32 %1196, ptr %18, align 4
  br label %1231

1197:                                             ; preds = %1167
  %1198 = landingpad { ptr, i32 }
          cleanup
  %1199 = extractvalue { ptr, i32 } %1198, 0
  store ptr %1199, ptr %17, align 8
  %1200 = extractvalue { ptr, i32 } %1198, 1
  store i32 %1200, ptr %18, align 4
  br label %1230

1201:                                             ; preds = %1174
  %1202 = landingpad { ptr, i32 }
          cleanup
  %1203 = extractvalue { ptr, i32 } %1202, 0
  store ptr %1203, ptr %17, align 8
  %1204 = extractvalue { ptr, i32 } %1202, 1
  store i32 %1204, ptr %18, align 4
  br label %1229

1205:                                             ; preds = %1175
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %17, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %18, align 4
  br label %1228

1209:                                             ; preds = %1176
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %17, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %18, align 4
  br label %1227

1213:                                             ; preds = %1183
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %17, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %18, align 4
  br label %1226

1217:                                             ; preds = %1184
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %17, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %18, align 4
  br label %1225

1221:                                             ; preds = %1185
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %17, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %1225

1225:                                             ; preds = %1221, %1217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %1226

1226:                                             ; preds = %1225, %1213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %1227

1227:                                             ; preds = %1226, %1209
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %1228

1228:                                             ; preds = %1227, %1205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %1229

1229:                                             ; preds = %1228, %1201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #6
  br label %1230

1230:                                             ; preds = %1229, %1197
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %1231

1231:                                             ; preds = %1230, %1193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #6
  br label %1232

1232:                                             ; preds = %1231, %1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %1990

1233:                                             ; preds = %1188, %1151
  %1234 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1235 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1234, i32 0, i32 15
  %1236 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1235) #6
  %1237 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1236, i32 0, i32 2
  %1238 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1237) #6
  br i1 %1238, label %1239, label %1257

1239:                                             ; preds = %1233
  %1240 = load ptr, ptr %6, align 8, !tbaa !5
  %1241 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1240) #6
  %1242 = load i8, ptr %1241, align 1, !tbaa !9
  %1243 = sext i8 %1242 to i32
  %1244 = icmp ne i32 %1243, 123
  br i1 %1244, label %1245, label %1248

1245:                                             ; preds = %1239
  %1246 = load ptr, ptr %6, align 8, !tbaa !5
  %1247 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1246, i8 noundef signext 44)
  br label %1248

1248:                                             ; preds = %1245, %1239
  %1249 = load ptr, ptr %6, align 8, !tbaa !5
  %1250 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1249, ptr noundef @.str.253)
  %1251 = load ptr, ptr %6, align 8, !tbaa !5
  %1252 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1253 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1252, i32 0, i32 15
  %1254 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1253) #6
  %1255 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1254, i32 0, i32 2
  %1256 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1255)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1251, ptr noundef %1256, i8 noundef zeroext 0)
  br label %1257

1257:                                             ; preds = %1248, %1233
  %1258 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1259 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1258, i32 0, i32 15
  %1260 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1259) #6
  %1261 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1260, i32 0, i32 3
  %1262 = load float, ptr %1261, align 8, !tbaa !108
  %1263 = fcmp une float %1262, 0.000000e+00
  br i1 %1263, label %1264, label %1292

1264:                                             ; preds = %1257
  %1265 = load ptr, ptr %6, align 8, !tbaa !5
  %1266 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1265) #6
  %1267 = load i8, ptr %1266, align 1, !tbaa !9
  %1268 = sext i8 %1267 to i32
  %1269 = icmp ne i32 %1268, 123
  br i1 %1269, label %1270, label %1273

1270:                                             ; preds = %1264
  %1271 = load ptr, ptr %6, align 8, !tbaa !5
  %1272 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1271, i8 noundef signext 44)
  br label %1273

1273:                                             ; preds = %1270, %1264
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #6
  %1274 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1275 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1274, i32 0, i32 15
  %1276 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1275) #6
  %1277 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1276, i32 0, i32 3
  %1278 = load float, ptr %1277, align 8, !tbaa !108
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, float noundef %1278)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef @.str.254, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %1279 unwind label %1283

1279:                                             ; preds = %1273
  %1280 = load ptr, ptr %6, align 8, !tbaa !5
  %1281 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1280, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %1282 unwind label %1287

1282:                                             ; preds = %1279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #6
  br label %1292

1283:                                             ; preds = %1273
  %1284 = landingpad { ptr, i32 }
          cleanup
  %1285 = extractvalue { ptr, i32 } %1284, 0
  store ptr %1285, ptr %17, align 8
  %1286 = extractvalue { ptr, i32 } %1284, 1
  store i32 %1286, ptr %18, align 4
  br label %1291

1287:                                             ; preds = %1279
  %1288 = landingpad { ptr, i32 }
          cleanup
  %1289 = extractvalue { ptr, i32 } %1288, 0
  store ptr %1289, ptr %17, align 8
  %1290 = extractvalue { ptr, i32 } %1288, 1
  store i32 %1290, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #6
  br label %1291

1291:                                             ; preds = %1287, %1283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #6
  br label %1990

1292:                                             ; preds = %1282, %1257
  %1293 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1294 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1293, i32 0, i32 15
  %1295 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1294) #6
  %1296 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1295, i32 0, i32 5
  %1297 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1296) #6
  br i1 %1297, label %1298, label %1316

1298:                                             ; preds = %1292
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1299) #6
  %1301 = load i8, ptr %1300, align 1, !tbaa !9
  %1302 = sext i8 %1301 to i32
  %1303 = icmp ne i32 %1302, 123
  br i1 %1303, label %1304, label %1307

1304:                                             ; preds = %1298
  %1305 = load ptr, ptr %6, align 8, !tbaa !5
  %1306 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1305, i8 noundef signext 44)
  br label %1307

1307:                                             ; preds = %1304, %1298
  %1308 = load ptr, ptr %6, align 8, !tbaa !5
  %1309 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1308, ptr noundef @.str.255)
  %1310 = load ptr, ptr %6, align 8, !tbaa !5
  %1311 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1312 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1311, i32 0, i32 15
  %1313 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1312) #6
  %1314 = getelementptr inbounds %"struct.fastgltf::MaterialSheen", ptr %1313, i32 0, i32 5
  %1315 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1314)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1310, ptr noundef %1315, i8 noundef zeroext 0)
  br label %1316

1316:                                             ; preds = %1307, %1292
  %1317 = load ptr, ptr %6, align 8, !tbaa !5
  %1318 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1317, i8 noundef signext 125)
  br label %1319

1319:                                             ; preds = %1316, %1138
  %1320 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1321 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1320, i32 0, i32 16
  %1322 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1321) #6
  br i1 %1322, label %1323, label %1500

1323:                                             ; preds = %1319
  %1324 = load ptr, ptr %6, align 8, !tbaa !5
  %1325 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1324) #6
  %1326 = load i8, ptr %1325, align 1, !tbaa !9
  %1327 = sext i8 %1326 to i32
  %1328 = icmp eq i32 %1327, 125
  br i1 %1328, label %1329, label %1332

1329:                                             ; preds = %1323
  %1330 = load ptr, ptr %6, align 8, !tbaa !5
  %1331 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1330, i8 noundef signext 44)
  br label %1332

1332:                                             ; preds = %1329, %1323
  %1333 = load ptr, ptr %6, align 8, !tbaa !5
  %1334 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1333, ptr noundef @.str.256)
  %1335 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1336 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1335, i32 0, i32 16
  %1337 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1336) #6
  %1338 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1337, i32 0, i32 0
  %1339 = load float, ptr %1338, align 8, !tbaa !110
  %1340 = fcmp une float %1339, 1.000000e+00
  br i1 %1340, label %1341, label %1360

1341:                                             ; preds = %1332
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #6
  %1342 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1343 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1342, i32 0, i32 16
  %1344 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1343) #6
  %1345 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1344, i32 0, i32 0
  %1346 = load float, ptr %1345, align 8, !tbaa !110
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, float noundef %1346)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef @.str.257, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %1347 unwind label %1351

1347:                                             ; preds = %1341
  %1348 = load ptr, ptr %6, align 8, !tbaa !5
  %1349 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1348, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %1350 unwind label %1355

1350:                                             ; preds = %1347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  br label %1360

1351:                                             ; preds = %1341
  %1352 = landingpad { ptr, i32 }
          cleanup
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %17, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %18, align 4
  br label %1359

1355:                                             ; preds = %1347
  %1356 = landingpad { ptr, i32 }
          cleanup
  %1357 = extractvalue { ptr, i32 } %1356, 0
  store ptr %1357, ptr %17, align 8
  %1358 = extractvalue { ptr, i32 } %1356, 1
  store i32 %1358, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %1359

1359:                                             ; preds = %1355, %1351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  br label %1990

1360:                                             ; preds = %1350, %1332
  %1361 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1362 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1361, i32 0, i32 16
  %1363 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1362) #6
  %1364 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1363, i32 0, i32 2
  %1365 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1364) #6
  br i1 %1365, label %1366, label %1384

1366:                                             ; preds = %1360
  %1367 = load ptr, ptr %6, align 8, !tbaa !5
  %1368 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1367) #6
  %1369 = load i8, ptr %1368, align 1, !tbaa !9
  %1370 = sext i8 %1369 to i32
  %1371 = icmp ne i32 %1370, 123
  br i1 %1371, label %1372, label %1375

1372:                                             ; preds = %1366
  %1373 = load ptr, ptr %6, align 8, !tbaa !5
  %1374 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1373, i8 noundef signext 44)
  br label %1375

1375:                                             ; preds = %1372, %1366
  %1376 = load ptr, ptr %6, align 8, !tbaa !5
  %1377 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1376, ptr noundef @.str.258)
  %1378 = load ptr, ptr %6, align 8, !tbaa !5
  %1379 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1380 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1379, i32 0, i32 16
  %1381 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1380) #6
  %1382 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1381, i32 0, i32 2
  %1383 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1382)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1378, ptr noundef %1383, i8 noundef zeroext 0)
  br label %1384

1384:                                             ; preds = %1375, %1360
  %1385 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1386 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1385, i32 0, i32 16
  %1387 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1386) #6
  %1388 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1387, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 12, ptr %75) #6
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %75, float noundef 1.000000e+00) #6
  %1389 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %1388, ptr noundef nonnull align 4 dereferenceable(12) %75) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %75) #6
  br i1 %1389, label %1390, label %1473

1390:                                             ; preds = %1384
  %1391 = load ptr, ptr %6, align 8, !tbaa !5
  %1392 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1391) #6
  %1393 = load i8, ptr %1392, align 1, !tbaa !9
  %1394 = sext i8 %1393 to i32
  %1395 = icmp ne i32 %1394, 123
  br i1 %1395, label %1396, label %1399

1396:                                             ; preds = %1390
  %1397 = load ptr, ptr %6, align 8, !tbaa !5
  %1398 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1397, i8 noundef signext 44)
  br label %1399

1399:                                             ; preds = %1396, %1390
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #6
  %1400 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1401 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1400, i32 0, i32 16
  %1402 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1401) #6
  %1403 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1402, i32 0, i32 3
  %1404 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1403, i64 noundef 0) #6
  %1405 = load float, ptr %1404, align 4, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, float noundef %1405)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef @.str.259, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %1406 unwind label %1429

1406:                                             ; preds = %1399
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, i8 noundef signext 44)
          to label %1407 unwind label %1433

1407:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #6
  %1408 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1409 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1408, i32 0, i32 16
  %1410 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1409) #6
  %1411 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1410, i32 0, i32 3
  %1412 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1411, i64 noundef 1) #6
  %1413 = load float, ptr %1412, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, float noundef %1413)
          to label %1414 unwind label %1437

1414:                                             ; preds = %1407
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %1415 unwind label %1441

1415:                                             ; preds = %1414
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, i8 noundef signext 44)
          to label %1416 unwind label %1445

1416:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #6
  %1417 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1418 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1417, i32 0, i32 16
  %1419 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1418) #6
  %1420 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1419, i32 0, i32 3
  %1421 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1420, i64 noundef 2) #6
  %1422 = load float, ptr %1421, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, float noundef %1422)
          to label %1423 unwind label %1449

1423:                                             ; preds = %1416
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %1424 unwind label %1453

1424:                                             ; preds = %1423
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, i8 noundef signext 93)
          to label %1425 unwind label %1457

1425:                                             ; preds = %1424
  %1426 = load ptr, ptr %6, align 8, !tbaa !5
  %1427 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1426, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %1428 unwind label %1461

1428:                                             ; preds = %1425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %1473

1429:                                             ; preds = %1399
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %17, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %18, align 4
  br label %1472

1433:                                             ; preds = %1406
  %1434 = landingpad { ptr, i32 }
          cleanup
  %1435 = extractvalue { ptr, i32 } %1434, 0
  store ptr %1435, ptr %17, align 8
  %1436 = extractvalue { ptr, i32 } %1434, 1
  store i32 %1436, ptr %18, align 4
  br label %1471

1437:                                             ; preds = %1407
  %1438 = landingpad { ptr, i32 }
          cleanup
  %1439 = extractvalue { ptr, i32 } %1438, 0
  store ptr %1439, ptr %17, align 8
  %1440 = extractvalue { ptr, i32 } %1438, 1
  store i32 %1440, ptr %18, align 4
  br label %1470

1441:                                             ; preds = %1414
  %1442 = landingpad { ptr, i32 }
          cleanup
  %1443 = extractvalue { ptr, i32 } %1442, 0
  store ptr %1443, ptr %17, align 8
  %1444 = extractvalue { ptr, i32 } %1442, 1
  store i32 %1444, ptr %18, align 4
  br label %1469

1445:                                             ; preds = %1415
  %1446 = landingpad { ptr, i32 }
          cleanup
  %1447 = extractvalue { ptr, i32 } %1446, 0
  store ptr %1447, ptr %17, align 8
  %1448 = extractvalue { ptr, i32 } %1446, 1
  store i32 %1448, ptr %18, align 4
  br label %1468

1449:                                             ; preds = %1416
  %1450 = landingpad { ptr, i32 }
          cleanup
  %1451 = extractvalue { ptr, i32 } %1450, 0
  store ptr %1451, ptr %17, align 8
  %1452 = extractvalue { ptr, i32 } %1450, 1
  store i32 %1452, ptr %18, align 4
  br label %1467

1453:                                             ; preds = %1423
  %1454 = landingpad { ptr, i32 }
          cleanup
  %1455 = extractvalue { ptr, i32 } %1454, 0
  store ptr %1455, ptr %17, align 8
  %1456 = extractvalue { ptr, i32 } %1454, 1
  store i32 %1456, ptr %18, align 4
  br label %1466

1457:                                             ; preds = %1424
  %1458 = landingpad { ptr, i32 }
          cleanup
  %1459 = extractvalue { ptr, i32 } %1458, 0
  store ptr %1459, ptr %17, align 8
  %1460 = extractvalue { ptr, i32 } %1458, 1
  store i32 %1460, ptr %18, align 4
  br label %1465

1461:                                             ; preds = %1425
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %17, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %1465

1465:                                             ; preds = %1461, %1457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %1466

1466:                                             ; preds = %1465, %1453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %1467

1467:                                             ; preds = %1466, %1449
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %1468

1468:                                             ; preds = %1467, %1445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %1469

1469:                                             ; preds = %1468, %1441
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %1470

1470:                                             ; preds = %1469, %1437
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %1471

1471:                                             ; preds = %1470, %1433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %1472

1472:                                             ; preds = %1471, %1429
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %1990

1473:                                             ; preds = %1428, %1384
  %1474 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1475 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1474, i32 0, i32 16
  %1476 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1475) #6
  %1477 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1476, i32 0, i32 5
  %1478 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1477) #6
  br i1 %1478, label %1479, label %1497

1479:                                             ; preds = %1473
  %1480 = load ptr, ptr %6, align 8, !tbaa !5
  %1481 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1480) #6
  %1482 = load i8, ptr %1481, align 1, !tbaa !9
  %1483 = sext i8 %1482 to i32
  %1484 = icmp ne i32 %1483, 123
  br i1 %1484, label %1485, label %1488

1485:                                             ; preds = %1479
  %1486 = load ptr, ptr %6, align 8, !tbaa !5
  %1487 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1486, i8 noundef signext 44)
  br label %1488

1488:                                             ; preds = %1485, %1479
  %1489 = load ptr, ptr %6, align 8, !tbaa !5
  %1490 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1489, ptr noundef @.str.260)
  %1491 = load ptr, ptr %6, align 8, !tbaa !5
  %1492 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1493 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1492, i32 0, i32 16
  %1494 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1493) #6
  %1495 = getelementptr inbounds %"struct.fastgltf::MaterialSpecular", ptr %1494, i32 0, i32 5
  %1496 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1495)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1491, ptr noundef %1496, i8 noundef zeroext 0)
  br label %1497

1497:                                             ; preds = %1488, %1473
  %1498 = load ptr, ptr %6, align 8, !tbaa !5
  %1499 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1498, i8 noundef signext 125)
  br label %1500

1500:                                             ; preds = %1497, %1319
  %1501 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1502 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1501, i32 0, i32 17
  %1503 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1502) #6
  br i1 %1503, label %1504, label %1568

1504:                                             ; preds = %1500
  %1505 = load ptr, ptr %6, align 8, !tbaa !5
  %1506 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1505) #6
  %1507 = load i8, ptr %1506, align 1, !tbaa !9
  %1508 = sext i8 %1507 to i32
  %1509 = icmp eq i32 %1508, 125
  br i1 %1509, label %1510, label %1513

1510:                                             ; preds = %1504
  %1511 = load ptr, ptr %6, align 8, !tbaa !5
  %1512 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1511, i8 noundef signext 44)
  br label %1513

1513:                                             ; preds = %1510, %1504
  %1514 = load ptr, ptr %6, align 8, !tbaa !5
  %1515 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1514, ptr noundef @.str.261)
  %1516 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1517 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1516, i32 0, i32 17
  %1518 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1517) #6
  %1519 = getelementptr inbounds %"struct.fastgltf::MaterialTransmission", ptr %1518, i32 0, i32 0
  %1520 = load float, ptr %1519, align 8, !tbaa !112
  %1521 = fcmp une float %1520, 0.000000e+00
  br i1 %1521, label %1522, label %1541

1522:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #6
  %1523 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1524 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1523, i32 0, i32 17
  %1525 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1524) #6
  %1526 = getelementptr inbounds %"struct.fastgltf::MaterialTransmission", ptr %1525, i32 0, i32 0
  %1527 = load float, ptr %1526, align 8, !tbaa !112
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, float noundef %1527)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef @.str.262, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1528 unwind label %1532

1528:                                             ; preds = %1522
  %1529 = load ptr, ptr %6, align 8, !tbaa !5
  %1530 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1529, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %1531 unwind label %1536

1531:                                             ; preds = %1528
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  br label %1541

1532:                                             ; preds = %1522
  %1533 = landingpad { ptr, i32 }
          cleanup
  %1534 = extractvalue { ptr, i32 } %1533, 0
  store ptr %1534, ptr %17, align 8
  %1535 = extractvalue { ptr, i32 } %1533, 1
  store i32 %1535, ptr %18, align 4
  br label %1540

1536:                                             ; preds = %1528
  %1537 = landingpad { ptr, i32 }
          cleanup
  %1538 = extractvalue { ptr, i32 } %1537, 0
  store ptr %1538, ptr %17, align 8
  %1539 = extractvalue { ptr, i32 } %1537, 1
  store i32 %1539, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %1540

1540:                                             ; preds = %1536, %1532
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  br label %1990

1541:                                             ; preds = %1531, %1513
  %1542 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1543 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1542, i32 0, i32 17
  %1544 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1543) #6
  %1545 = getelementptr inbounds %"struct.fastgltf::MaterialTransmission", ptr %1544, i32 0, i32 2
  %1546 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1545) #6
  br i1 %1546, label %1547, label %1565

1547:                                             ; preds = %1541
  %1548 = load ptr, ptr %6, align 8, !tbaa !5
  %1549 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1548) #6
  %1550 = load i8, ptr %1549, align 1, !tbaa !9
  %1551 = sext i8 %1550 to i32
  %1552 = icmp ne i32 %1551, 123
  br i1 %1552, label %1553, label %1556

1553:                                             ; preds = %1547
  %1554 = load ptr, ptr %6, align 8, !tbaa !5
  %1555 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1554, i8 noundef signext 44)
  br label %1556

1556:                                             ; preds = %1553, %1547
  %1557 = load ptr, ptr %6, align 8, !tbaa !5
  %1558 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1557, ptr noundef @.str.263)
  %1559 = load ptr, ptr %6, align 8, !tbaa !5
  %1560 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1561 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1560, i32 0, i32 17
  %1562 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1561) #6
  %1563 = getelementptr inbounds %"struct.fastgltf::MaterialTransmission", ptr %1562, i32 0, i32 2
  %1564 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1563)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1559, ptr noundef %1564, i8 noundef zeroext 0)
  br label %1565

1565:                                             ; preds = %1556, %1541
  %1566 = load ptr, ptr %6, align 8, !tbaa !5
  %1567 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1566, i8 noundef signext 125)
  br label %1568

1568:                                             ; preds = %1565, %1500
  %1569 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1570 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1569, i32 0, i32 7
  %1571 = load i8, ptr %1570, align 2, !tbaa !114, !range !92, !noundef !93
  %1572 = trunc i8 %1571 to i1
  br i1 %1572, label %1573, label %1585

1573:                                             ; preds = %1568
  %1574 = load ptr, ptr %6, align 8, !tbaa !5
  %1575 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1574) #6
  %1576 = load i8, ptr %1575, align 1, !tbaa !9
  %1577 = sext i8 %1576 to i32
  %1578 = icmp eq i32 %1577, 125
  br i1 %1578, label %1579, label %1582

1579:                                             ; preds = %1573
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1580, i8 noundef signext 44)
  br label %1582

1582:                                             ; preds = %1579, %1573
  %1583 = load ptr, ptr %6, align 8, !tbaa !5
  %1584 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1583, ptr noundef @.str.264)
  br label %1585

1585:                                             ; preds = %1582, %1568
  %1586 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1587 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1586, i32 0, i32 18
  %1588 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1587) #6
  br i1 %1588, label %1589, label %1778

1589:                                             ; preds = %1585
  %1590 = load ptr, ptr %6, align 8, !tbaa !5
  %1591 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1590) #6
  %1592 = load i8, ptr %1591, align 1, !tbaa !9
  %1593 = sext i8 %1592 to i32
  %1594 = icmp eq i32 %1593, 125
  br i1 %1594, label %1595, label %1598

1595:                                             ; preds = %1589
  %1596 = load ptr, ptr %6, align 8, !tbaa !5
  %1597 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1596, i8 noundef signext 44)
  br label %1598

1598:                                             ; preds = %1595, %1589
  %1599 = load ptr, ptr %6, align 8, !tbaa !5
  %1600 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1599, ptr noundef @.str.265)
  %1601 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1602 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1601, i32 0, i32 18
  %1603 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1602) #6
  %1604 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1603, i32 0, i32 0
  %1605 = load float, ptr %1604, align 8, !tbaa !115
  %1606 = fcmp une float %1605, 0.000000e+00
  br i1 %1606, label %1607, label %1626

1607:                                             ; preds = %1598
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #6
  %1608 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1609 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1608, i32 0, i32 18
  %1610 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1609) #6
  %1611 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1610, i32 0, i32 0
  %1612 = load float, ptr %1611, align 8, !tbaa !115
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, float noundef %1612)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef @.str.266, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %1613 unwind label %1617

1613:                                             ; preds = %1607
  %1614 = load ptr, ptr %6, align 8, !tbaa !5
  %1615 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1614, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1616 unwind label %1621

1616:                                             ; preds = %1613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #6
  br label %1626

1617:                                             ; preds = %1607
  %1618 = landingpad { ptr, i32 }
          cleanup
  %1619 = extractvalue { ptr, i32 } %1618, 0
  store ptr %1619, ptr %17, align 8
  %1620 = extractvalue { ptr, i32 } %1618, 1
  store i32 %1620, ptr %18, align 4
  br label %1625

1621:                                             ; preds = %1613
  %1622 = landingpad { ptr, i32 }
          cleanup
  %1623 = extractvalue { ptr, i32 } %1622, 0
  store ptr %1623, ptr %17, align 8
  %1624 = extractvalue { ptr, i32 } %1622, 1
  store i32 %1624, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #6
  br label %1625

1625:                                             ; preds = %1621, %1617
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #6
  br label %1990

1626:                                             ; preds = %1616, %1598
  %1627 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1628 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1627, i32 0, i32 18
  %1629 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1628) #6
  %1630 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1629, i32 0, i32 2
  %1631 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1630) #6
  br i1 %1631, label %1632, label %1650

1632:                                             ; preds = %1626
  %1633 = load ptr, ptr %6, align 8, !tbaa !5
  %1634 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1633) #6
  %1635 = load i8, ptr %1634, align 1, !tbaa !9
  %1636 = sext i8 %1635 to i32
  %1637 = icmp ne i32 %1636, 123
  br i1 %1637, label %1638, label %1641

1638:                                             ; preds = %1632
  %1639 = load ptr, ptr %6, align 8, !tbaa !5
  %1640 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1639, i8 noundef signext 44)
  br label %1641

1641:                                             ; preds = %1638, %1632
  %1642 = load ptr, ptr %6, align 8, !tbaa !5
  %1643 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1642, ptr noundef @.str.267)
  %1644 = load ptr, ptr %6, align 8, !tbaa !5
  %1645 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1646 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1645, i32 0, i32 18
  %1647 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1646) #6
  %1648 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1647, i32 0, i32 2
  %1649 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1648)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1644, ptr noundef %1649, i8 noundef zeroext 0)
  br label %1650

1650:                                             ; preds = %1641, %1626
  %1651 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1652 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1651, i32 0, i32 18
  %1653 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1652) #6
  %1654 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1653, i32 0, i32 3
  %1655 = load float, ptr %1654, align 8, !tbaa !117
  %1656 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #6
  %1657 = fcmp une float %1655, %1656
  br i1 %1657, label %1658, label %1686

1658:                                             ; preds = %1650
  %1659 = load ptr, ptr %6, align 8, !tbaa !5
  %1660 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1659) #6
  %1661 = load i8, ptr %1660, align 1, !tbaa !9
  %1662 = sext i8 %1661 to i32
  %1663 = icmp ne i32 %1662, 123
  br i1 %1663, label %1664, label %1667

1664:                                             ; preds = %1658
  %1665 = load ptr, ptr %6, align 8, !tbaa !5
  %1666 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1665, i8 noundef signext 44)
  br label %1667

1667:                                             ; preds = %1664, %1658
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #6
  %1668 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1669 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1668, i32 0, i32 18
  %1670 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1669) #6
  %1671 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1670, i32 0, i32 3
  %1672 = load float, ptr %1671, align 8, !tbaa !117
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, float noundef %1672)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef @.str.268, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %1673 unwind label %1677

1673:                                             ; preds = %1667
  %1674 = load ptr, ptr %6, align 8, !tbaa !5
  %1675 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1674, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1676 unwind label %1681

1676:                                             ; preds = %1673
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  br label %1686

1677:                                             ; preds = %1667
  %1678 = landingpad { ptr, i32 }
          cleanup
  %1679 = extractvalue { ptr, i32 } %1678, 0
  store ptr %1679, ptr %17, align 8
  %1680 = extractvalue { ptr, i32 } %1678, 1
  store i32 %1680, ptr %18, align 4
  br label %1685

1681:                                             ; preds = %1673
  %1682 = landingpad { ptr, i32 }
          cleanup
  %1683 = extractvalue { ptr, i32 } %1682, 0
  store ptr %1683, ptr %17, align 8
  %1684 = extractvalue { ptr, i32 } %1682, 1
  store i32 %1684, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %1685

1685:                                             ; preds = %1681, %1677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  br label %1990

1686:                                             ; preds = %1676, %1650
  %1687 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1688 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1687, i32 0, i32 18
  %1689 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1688) #6
  %1690 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1689, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 12, ptr %91) #6
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %91, float noundef 1.000000e+00) #6
  %1691 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %1690, ptr noundef nonnull align 4 dereferenceable(12) %91) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %91) #6
  br i1 %1691, label %1692, label %1775

1692:                                             ; preds = %1686
  %1693 = load ptr, ptr %6, align 8, !tbaa !5
  %1694 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1693) #6
  %1695 = load i8, ptr %1694, align 1, !tbaa !9
  %1696 = sext i8 %1695 to i32
  %1697 = icmp ne i32 %1696, 123
  br i1 %1697, label %1698, label %1701

1698:                                             ; preds = %1692
  %1699 = load ptr, ptr %6, align 8, !tbaa !5
  %1700 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1699, i8 noundef signext 44)
  br label %1701

1701:                                             ; preds = %1698, %1692
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #6
  %1702 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1703 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1702, i32 0, i32 18
  %1704 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1703) #6
  %1705 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1704, i32 0, i32 4
  %1706 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1705, i64 noundef 0) #6
  %1707 = load float, ptr %1706, align 4, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, float noundef %1707)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef @.str.269, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %1708 unwind label %1731

1708:                                             ; preds = %1701
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, i8 noundef signext 44)
          to label %1709 unwind label %1735

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #6
  %1710 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1711 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1710, i32 0, i32 18
  %1712 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1711) #6
  %1713 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1712, i32 0, i32 4
  %1714 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1713, i64 noundef 1) #6
  %1715 = load float, ptr %1714, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, float noundef %1715)
          to label %1716 unwind label %1739

1716:                                             ; preds = %1709
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %1717 unwind label %1743

1717:                                             ; preds = %1716
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, i8 noundef signext 44)
          to label %1718 unwind label %1747

1718:                                             ; preds = %1717
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #6
  %1719 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1720 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1719, i32 0, i32 18
  %1721 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1720) #6
  %1722 = getelementptr inbounds %"struct.fastgltf::MaterialVolume", ptr %1721, i32 0, i32 4
  %1723 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1722, i64 noundef 2) #6
  %1724 = load float, ptr %1723, align 4, !tbaa !10
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, float noundef %1724)
          to label %1725 unwind label %1751

1725:                                             ; preds = %1718
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %1726 unwind label %1755

1726:                                             ; preds = %1725
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, i8 noundef signext 93)
          to label %1727 unwind label %1759

1727:                                             ; preds = %1726
  %1728 = load ptr, ptr %6, align 8, !tbaa !5
  %1729 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1728, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %1730 unwind label %1763

1730:                                             ; preds = %1727
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  br label %1775

1731:                                             ; preds = %1701
  %1732 = landingpad { ptr, i32 }
          cleanup
  %1733 = extractvalue { ptr, i32 } %1732, 0
  store ptr %1733, ptr %17, align 8
  %1734 = extractvalue { ptr, i32 } %1732, 1
  store i32 %1734, ptr %18, align 4
  br label %1774

1735:                                             ; preds = %1708
  %1736 = landingpad { ptr, i32 }
          cleanup
  %1737 = extractvalue { ptr, i32 } %1736, 0
  store ptr %1737, ptr %17, align 8
  %1738 = extractvalue { ptr, i32 } %1736, 1
  store i32 %1738, ptr %18, align 4
  br label %1773

1739:                                             ; preds = %1709
  %1740 = landingpad { ptr, i32 }
          cleanup
  %1741 = extractvalue { ptr, i32 } %1740, 0
  store ptr %1741, ptr %17, align 8
  %1742 = extractvalue { ptr, i32 } %1740, 1
  store i32 %1742, ptr %18, align 4
  br label %1772

1743:                                             ; preds = %1716
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %17, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %18, align 4
  br label %1771

1747:                                             ; preds = %1717
  %1748 = landingpad { ptr, i32 }
          cleanup
  %1749 = extractvalue { ptr, i32 } %1748, 0
  store ptr %1749, ptr %17, align 8
  %1750 = extractvalue { ptr, i32 } %1748, 1
  store i32 %1750, ptr %18, align 4
  br label %1770

1751:                                             ; preds = %1718
  %1752 = landingpad { ptr, i32 }
          cleanup
  %1753 = extractvalue { ptr, i32 } %1752, 0
  store ptr %1753, ptr %17, align 8
  %1754 = extractvalue { ptr, i32 } %1752, 1
  store i32 %1754, ptr %18, align 4
  br label %1769

1755:                                             ; preds = %1725
  %1756 = landingpad { ptr, i32 }
          cleanup
  %1757 = extractvalue { ptr, i32 } %1756, 0
  store ptr %1757, ptr %17, align 8
  %1758 = extractvalue { ptr, i32 } %1756, 1
  store i32 %1758, ptr %18, align 4
  br label %1768

1759:                                             ; preds = %1726
  %1760 = landingpad { ptr, i32 }
          cleanup
  %1761 = extractvalue { ptr, i32 } %1760, 0
  store ptr %1761, ptr %17, align 8
  %1762 = extractvalue { ptr, i32 } %1760, 1
  store i32 %1762, ptr %18, align 4
  br label %1767

1763:                                             ; preds = %1727
  %1764 = landingpad { ptr, i32 }
          cleanup
  %1765 = extractvalue { ptr, i32 } %1764, 0
  store ptr %1765, ptr %17, align 8
  %1766 = extractvalue { ptr, i32 } %1764, 1
  store i32 %1766, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #6
  br label %1767

1767:                                             ; preds = %1763, %1759
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %1768

1768:                                             ; preds = %1767, %1755
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #6
  br label %1769

1769:                                             ; preds = %1768, %1751
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #6
  br label %1770

1770:                                             ; preds = %1769, %1747
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #6
  br label %1771

1771:                                             ; preds = %1770, %1743
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %1772

1772:                                             ; preds = %1771, %1739
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #6
  br label %1773

1773:                                             ; preds = %1772, %1735
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %1774

1774:                                             ; preds = %1773, %1731
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #6
  br label %1990

1775:                                             ; preds = %1730, %1686
  %1776 = load ptr, ptr %6, align 8, !tbaa !5
  %1777 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1776, i8 noundef signext 125)
  br label %1778

1778:                                             ; preds = %1775, %1585
  %1779 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1780 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1779, i32 0, i32 19
  %1781 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1780) #6
  br i1 %1781, label %1782, label %1800

1782:                                             ; preds = %1778
  %1783 = load ptr, ptr %6, align 8, !tbaa !5
  %1784 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1783) #6
  %1785 = load i8, ptr %1784, align 1, !tbaa !9
  %1786 = sext i8 %1785 to i32
  %1787 = icmp eq i32 %1786, 125
  br i1 %1787, label %1788, label %1791

1788:                                             ; preds = %1782
  %1789 = load ptr, ptr %6, align 8, !tbaa !5
  %1790 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1789, i8 noundef signext 44)
  br label %1791

1791:                                             ; preds = %1788, %1782
  %1792 = load ptr, ptr %6, align 8, !tbaa !5
  %1793 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1792, ptr noundef @.str.270)
  %1794 = load ptr, ptr %6, align 8, !tbaa !5
  %1795 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1796 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1795, i32 0, i32 19
  %1797 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1796)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1794, ptr noundef %1797, i8 noundef zeroext 0)
  %1798 = load ptr, ptr %6, align 8, !tbaa !5
  %1799 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1798, i8 noundef signext 125)
  br label %1800

1800:                                             ; preds = %1791, %1778
  %1801 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1802 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1801, i32 0, i32 20
  %1803 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1802) #6
  br i1 %1803, label %1804, label %1863

1804:                                             ; preds = %1800
  %1805 = load ptr, ptr %6, align 8, !tbaa !5
  %1806 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1805) #6
  %1807 = load i8, ptr %1806, align 1, !tbaa !9
  %1808 = sext i8 %1807 to i32
  %1809 = icmp eq i32 %1808, 125
  br i1 %1809, label %1810, label %1813

1810:                                             ; preds = %1804
  %1811 = load ptr, ptr %6, align 8, !tbaa !5
  %1812 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1811, i8 noundef signext 44)
  br label %1813

1813:                                             ; preds = %1810, %1804
  %1814 = load ptr, ptr %6, align 8, !tbaa !5
  %1815 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1814, ptr noundef @.str.271)
  %1816 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1817 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1816, i32 0, i32 20
  %1818 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1817) #6
  %1819 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1818, i32 0, i32 0
  %1820 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1819) #6
  br i1 %1820, label %1821, label %1830

1821:                                             ; preds = %1813
  %1822 = load ptr, ptr %6, align 8, !tbaa !5
  %1823 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1822, ptr noundef @.str.272)
  %1824 = load ptr, ptr %6, align 8, !tbaa !5
  %1825 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1826 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1825, i32 0, i32 20
  %1827 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1826) #6
  %1828 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1827, i32 0, i32 0
  %1829 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1828)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1824, ptr noundef %1829, i8 noundef zeroext 0)
  br label %1830

1830:                                             ; preds = %1821, %1813
  %1831 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1832 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1831, i32 0, i32 20
  %1833 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1832) #6
  %1834 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1833, i32 0, i32 1
  %1835 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1834) #6
  br i1 %1835, label %1836, label %1845

1836:                                             ; preds = %1830
  %1837 = load ptr, ptr %6, align 8, !tbaa !5
  %1838 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1837, ptr noundef @.str.273)
  %1839 = load ptr, ptr %6, align 8, !tbaa !5
  %1840 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1841 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1840, i32 0, i32 20
  %1842 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1841) #6
  %1843 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1842, i32 0, i32 1
  %1844 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1843)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1839, ptr noundef %1844, i8 noundef zeroext 0)
  br label %1845

1845:                                             ; preds = %1836, %1830
  %1846 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1847 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1846, i32 0, i32 20
  %1848 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1847) #6
  %1849 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1848, i32 0, i32 2
  %1850 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1849) #6
  br i1 %1850, label %1851, label %1860

1851:                                             ; preds = %1845
  %1852 = load ptr, ptr %6, align 8, !tbaa !5
  %1853 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %1852, ptr noundef @.str.221)
  %1854 = load ptr, ptr %6, align 8, !tbaa !5
  %1855 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1856 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1855, i32 0, i32 20
  %1857 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1856) #6
  %1858 = getelementptr inbounds %"struct.fastgltf::MaterialPackedTextures", ptr %1857, i32 0, i32 2
  %1859 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1858)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %1854, ptr noundef %1859, i8 noundef zeroext 0)
  br label %1860

1860:                                             ; preds = %1851, %1845
  %1861 = load ptr, ptr %6, align 8, !tbaa !5
  %1862 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1861, i8 noundef signext 125)
  br label %1863

1863:                                             ; preds = %1860, %1800
  %1864 = load ptr, ptr %6, align 8, !tbaa !5
  %1865 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1864, i8 noundef signext 125)
  %1866 = getelementptr inbounds %"class.fastgltf::Exporter", ptr %113, i32 0, i32 6
  %1867 = load ptr, ptr %1866, align 8, !tbaa !118
  %1868 = icmp ne ptr %1867, null
  br i1 %1868, label %1869, label %1922

1869:                                             ; preds = %1863
  call void @llvm.lifetime.start.p0(i64 40, ptr %101) #6
  %1870 = getelementptr inbounds %"class.fastgltf::Exporter", ptr %113, i32 0, i32 6
  %1871 = load ptr, ptr %1870, align 8, !tbaa !118
  %1872 = load ptr, ptr %5, align 8, !tbaa !5
  %1873 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1872, i32 0, i32 12
  %1874 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1873) #6
  %1875 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %102, i32 0, i32 0
  store ptr %1874, ptr %1875, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %103, ptr align 8 %7, i64 8, i1 false), !tbaa.struct !136
  %1876 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %102, i32 0, i32 0
  %1877 = load ptr, ptr %1876, align 8
  %1878 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %103, i32 0, i32 0
  %1879 = load ptr, ptr %1878, align 8
  %1880 = call noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS3_SaIS3_EEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(ptr %1877, ptr %1879)
  %1881 = call noundef i64 @_ZN8fastgltf4uabsIlEENSt13make_unsignedIT_E4typeES2_(i64 noundef %1880)
  %1882 = getelementptr inbounds %"class.fastgltf::Exporter", ptr %113, i32 0, i32 5
  %1883 = load ptr, ptr %1882, align 8, !tbaa !137
  call void %1871(ptr dead_on_unwind writable sret(%"class.std::optional.467") align 8 %101, i64 noundef %1881, i32 noundef 256, ptr noundef %1883)
  %1884 = call noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %101) #6
  br i1 %1884, label %1885, label %1920

1885:                                             ; preds = %1869
  %1886 = load ptr, ptr %6, align 8, !tbaa !5
  %1887 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1886) #6
  %1888 = load i8, ptr %1887, align 1, !tbaa !9
  %1889 = sext i8 %1888 to i32
  %1890 = icmp ne i32 %1889, 123
  br i1 %1890, label %1891, label %1899

1891:                                             ; preds = %1885
  %1892 = load ptr, ptr %6, align 8, !tbaa !5
  %1893 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1892, i8 noundef signext 44)
          to label %1894 unwind label %1895

1894:                                             ; preds = %1891
  br label %1899

1895:                                             ; preds = %1891
  %1896 = landingpad { ptr, i32 }
          cleanup
  %1897 = extractvalue { ptr, i32 } %1896, 0
  store ptr %1897, ptr %17, align 8
  %1898 = extractvalue { ptr, i32 } %1896, 1
  store i32 %1898, ptr %18, align 4
  br label %1921

1899:                                             ; preds = %1894, %1885
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.274, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %1900 unwind label %1906

1900:                                             ; preds = %1899
  %1901 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNRSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(40) %101) #6
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %1901)
          to label %1902 unwind label %1910

1902:                                             ; preds = %1900
  %1903 = load ptr, ptr %6, align 8, !tbaa !5
  %1904 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1903, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1905 unwind label %1914

1905:                                             ; preds = %1902
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  br label %1920

1906:                                             ; preds = %1899
  %1907 = landingpad { ptr, i32 }
          cleanup
  %1908 = extractvalue { ptr, i32 } %1907, 0
  store ptr %1908, ptr %17, align 8
  %1909 = extractvalue { ptr, i32 } %1907, 1
  store i32 %1909, ptr %18, align 4
  br label %1919

1910:                                             ; preds = %1900
  %1911 = landingpad { ptr, i32 }
          cleanup
  %1912 = extractvalue { ptr, i32 } %1911, 0
  store ptr %1912, ptr %17, align 8
  %1913 = extractvalue { ptr, i32 } %1911, 1
  store i32 %1913, ptr %18, align 4
  br label %1918

1914:                                             ; preds = %1902
  %1915 = landingpad { ptr, i32 }
          cleanup
  %1916 = extractvalue { ptr, i32 } %1915, 0
  store ptr %1916, ptr %17, align 8
  %1917 = extractvalue { ptr, i32 } %1915, 1
  store i32 %1917, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #6
  br label %1918

1918:                                             ; preds = %1914, %1910
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %1919

1919:                                             ; preds = %1918, %1906
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #6
  br label %1921

1920:                                             ; preds = %1905, %1869
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %101) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %101) #6
  br label %1922

1921:                                             ; preds = %1919, %1895
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %101) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %101) #6
  br label %1990

1922:                                             ; preds = %1920, %1863
  %1923 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1924 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1923, i32 0, i32 21
  %1925 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(40) %1924) #6
  br i1 %1925, label %1966, label %1926

1926:                                             ; preds = %1922
  %1927 = load ptr, ptr %6, align 8, !tbaa !5
  %1928 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %1927) #6
  %1929 = load i8, ptr %1928, align 1, !tbaa !9
  %1930 = sext i8 %1929 to i32
  %1931 = icmp ne i32 %1930, 44
  br i1 %1931, label %1932, label %1935

1932:                                             ; preds = %1926
  %1933 = load ptr, ptr %6, align 8, !tbaa !5
  %1934 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1933, i8 noundef signext 44)
  br label %1935

1935:                                             ; preds = %1932, %1926
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #6
  %1936 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  %1937 = getelementptr inbounds %"struct.fastgltf::Material", ptr %1936, i32 0, i32 21
  %1938 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1937) #6
  %1939 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 0
  %1940 = extractvalue { i64, ptr } %1938, 0
  store i64 %1940, ptr %1939, align 8
  %1941 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 1
  %1942 = extractvalue { i64, ptr } %1938, 1
  store ptr %1942, ptr %1941, align 8
  %1943 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 0
  %1944 = load i64, ptr %1943, align 8
  %1945 = getelementptr inbounds { i64, ptr }, ptr %110, i32 0, i32 1
  %1946 = load ptr, ptr %1945, align 8
  call void @_ZN8fastgltf12escapeStringB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, i64 %1944, ptr %1946)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef @.str.275, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %1947 unwind label %1952

1947:                                             ; preds = %1935
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, i8 noundef signext 34)
          to label %1948 unwind label %1956

1948:                                             ; preds = %1947
  %1949 = load ptr, ptr %6, align 8, !tbaa !5
  %1950 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1949, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1951 unwind label %1960

1951:                                             ; preds = %1948
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %1966

1952:                                             ; preds = %1935
  %1953 = landingpad { ptr, i32 }
          cleanup
  %1954 = extractvalue { ptr, i32 } %1953, 0
  store ptr %1954, ptr %17, align 8
  %1955 = extractvalue { ptr, i32 } %1953, 1
  store i32 %1955, ptr %18, align 4
  br label %1965

1956:                                             ; preds = %1947
  %1957 = landingpad { ptr, i32 }
          cleanup
  %1958 = extractvalue { ptr, i32 } %1957, 0
  store ptr %1958, ptr %17, align 8
  %1959 = extractvalue { ptr, i32 } %1957, 1
  store i32 %1959, ptr %18, align 4
  br label %1964

1960:                                             ; preds = %1948
  %1961 = landingpad { ptr, i32 }
          cleanup
  %1962 = extractvalue { ptr, i32 } %1961, 0
  store ptr %1962, ptr %17, align 8
  %1963 = extractvalue { ptr, i32 } %1961, 1
  store i32 %1963, ptr %18, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %1964

1964:                                             ; preds = %1960, %1956
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #6
  br label %1965

1965:                                             ; preds = %1964, %1952
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %1990

1966:                                             ; preds = %1951, %1922
  %1967 = load ptr, ptr %6, align 8, !tbaa !5
  %1968 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1967, i8 noundef signext 125)
  %1969 = load ptr, ptr %5, align 8, !tbaa !5
  %1970 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1969, i32 0, i32 12
  %1971 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1970) #6
  %1972 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %111, i32 0, i32 0
  store ptr %1971, ptr %1972, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %112, ptr align 8 %7, i64 8, i1 false), !tbaa.struct !136
  %1973 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %111, i32 0, i32 0
  %1974 = load ptr, ptr %1973, align 8
  %1975 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.266", ptr %112, i32 0, i32 0
  %1976 = load ptr, ptr %1975, align 8
  %1977 = call noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS3_SaIS3_EEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(ptr %1974, ptr %1976)
  %1978 = call noundef i64 @_ZN8fastgltf4uabsIlEENSt13make_unsignedIT_E4typeES2_(i64 noundef %1977)
  %1979 = add i64 %1978, 1
  %1980 = load ptr, ptr %5, align 8, !tbaa !5
  %1981 = getelementptr inbounds %"class.fastgltf::Asset", ptr %1980, i32 0, i32 12
  %1982 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1981) #6
  %1983 = icmp ult i64 %1979, %1982
  br i1 %1983, label %1984, label %1987

1984:                                             ; preds = %1966
  %1985 = load ptr, ptr %6, align 8, !tbaa !5
  %1986 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1985, i8 noundef signext 44)
  br label %1987

1987:                                             ; preds = %1984, %1966
  br label %1988

1988:                                             ; preds = %1987
  %1989 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #6
  br label %140, !llvm.loop !138

1990:                                             ; preds = %1965, %1921, %1774, %1685, %1625, %1540, %1472, %1359, %1291, %1232, %1110, %1075, %1040, %981, %940, %903, %866, %778, %719, %651, %616, %556, %486, %329, %296, %241
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  br label %1995

1991:                                             ; preds = %146
  %1992 = load ptr, ptr %6, align 8, !tbaa !5
  %1993 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %1992, i8 noundef signext 93)
  br label %1994

1994:                                             ; preds = %1991, %117
  ret void

1995:                                             ; preds = %1990
  %1996 = load ptr, ptr %17, align 8
  %1997 = load i32, ptr %18, align 4
  %1998 = insertvalue { ptr, i32 } poison, ptr %1996, 0
  %1999 = insertvalue { ptr, i32 } %1998, i32 %1997, 1
  resume { ptr, i32 } %1999
}

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #4 align 2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 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 = { 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 nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = !{!13, !11, i64 16}
!13 = !{!"_ZTSN8fastgltf8MaterialE", !14, i64 0, !23, i64 88, !28, i64 128, !17, i64 168, !33, i64 200, !35, i64 212, !22, i64 213, !22, i64 214, !11, i64 216, !11, i64 220, !11, i64 224, !11, i64 228, !36, i64 232, !42, i64 240, !48, i64 248, !54, i64 256, !60, i64 264, !66, i64 272, !72, i64 280, !17, i64 288, !78, i64 320, !84, i64 328}
!14 = !{!"_ZTSN8fastgltf7PBRDataE", !15, i64 0, !11, i64 16, !11, i64 20, !17, i64 24, !17, i64 56}
!15 = !{!"_ZTSN8fastgltf4math3vecIfLm4EEE", !16, i64 0}
!16 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!17 = !{!"_ZTSSt8optionalIN8fastgltf11TextureInfoEE", !18, i64 0}
!18 = !{!"_ZTSSt14_Optional_baseIN8fastgltf11TextureInfoELb0ELb0EE", !19, i64 0}
!19 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb0ELb0ELb0EE", !20, i64 0}
!20 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb1ELb0ELb0EE", !21, i64 0}
!21 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf11TextureInfoEE", !7, i64 0, !22, i64 24}
!22 = !{!"bool", !7, i64 0}
!23 = !{!"_ZTSSt8optionalIN8fastgltf17NormalTextureInfoEE", !24, i64 0}
!24 = !{!"_ZTSSt14_Optional_baseIN8fastgltf17NormalTextureInfoELb0ELb0EE", !25, i64 0}
!25 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb0ELb0ELb0EE", !26, i64 0}
!26 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb1ELb0ELb0EE", !27, i64 0}
!27 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf17NormalTextureInfoEE", !7, i64 0, !22, i64 32}
!28 = !{!"_ZTSSt8optionalIN8fastgltf20OcclusionTextureInfoEE", !29, i64 0}
!29 = !{!"_ZTSSt14_Optional_baseIN8fastgltf20OcclusionTextureInfoELb0ELb0EE", !30, i64 0}
!30 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb0ELb0ELb0EE", !31, i64 0}
!31 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb1ELb0ELb0EE", !32, i64 0}
!32 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf20OcclusionTextureInfoEE", !7, i64 0, !22, i64 32}
!33 = !{!"_ZTSN8fastgltf4math3vecIfLm3EEE", !34, i64 0}
!34 = !{!"_ZTSSt5arrayIfLm3EE", !7, i64 0}
!35 = !{!"_ZTSN8fastgltf9AlphaModeE", !7, i64 0}
!36 = !{!"_ZTSSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_ELb1ELb1EE", !38, i64 0}
!38 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !39, i64 0}
!39 = !{!"_ZTSSt5tupleIJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !40, i64 0}
!40 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !41, i64 0}
!41 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf18MaterialAnisotropyELb0EE", !6, i64 0}
!42 = !{!"_ZTSSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !43, i64 0}
!43 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_ELb1ELb1EE", !44, i64 0}
!44 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !45, i64 0}
!45 = !{!"_ZTSSt5tupleIJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !46, i64 0}
!46 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !47, i64 0}
!47 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf17MaterialClearcoatELb0EE", !6, i64 0}
!48 = !{!"_ZTSSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !49, i64 0}
!49 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_ELb1ELb1EE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !51, i64 0}
!51 = !{!"_ZTSSt5tupleIJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !52, i64 0}
!52 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !53, i64 0}
!53 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf19MaterialIridescenceELb0EE", !6, i64 0}
!54 = !{!"_ZTSSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !55, i64 0}
!55 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf13MaterialSheenESt14default_deleteIS1_ELb1ELb1EE", !56, i64 0}
!56 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !57, i64 0}
!57 = !{!"_ZTSSt5tupleIJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !58, i64 0}
!58 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !59, i64 0}
!59 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf13MaterialSheenELb0EE", !6, i64 0}
!60 = !{!"_ZTSSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !61, i64 0}
!61 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf16MaterialSpecularESt14default_deleteIS1_ELb1ELb1EE", !62, i64 0}
!62 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !63, i64 0}
!63 = !{!"_ZTSSt5tupleIJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !64, i64 0}
!64 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !65, i64 0}
!65 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf16MaterialSpecularELb0EE", !6, i64 0}
!66 = !{!"_ZTSSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !67, i64 0}
!67 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_ELb1ELb1EE", !68, i64 0}
!68 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt5tupleIJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !70, i64 0}
!70 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !71, i64 0}
!71 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20MaterialTransmissionELb0EE", !6, i64 0}
!72 = !{!"_ZTSSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !73, i64 0}
!73 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf14MaterialVolumeESt14default_deleteIS1_ELb1ELb1EE", !74, i64 0}
!74 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !75, i64 0}
!75 = !{!"_ZTSSt5tupleIJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !76, i64 0}
!76 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !77, i64 0}
!77 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf14MaterialVolumeELb0EE", !6, i64 0}
!78 = !{!"_ZTSSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !79, i64 0}
!79 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_ELb1ELb1EE", !80, i64 0}
!80 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt5tupleIJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !82, i64 0}
!82 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !83, i64 0}
!83 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf22MaterialPackedTexturesELb0EE", !6, i64 0}
!84 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEE", !85, i64 0, !87, i64 16, !7, i64 24}
!85 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE12_Alloc_hiderE", !86, i64 0, !6, i64 8}
!86 = !{!"_ZTSNSt3pmr21polymorphic_allocatorIcEE", !6, i64 0}
!87 = !{!"long", !7, i64 0}
!88 = !{!13, !11, i64 20}
!89 = !{!13, !35, i64 212}
!90 = !{!13, !11, i64 216}
!91 = !{!13, !22, i64 213}
!92 = !{i8 0, i8 2}
!93 = !{}
!94 = !{!95, !11, i64 0}
!95 = !{!"_ZTSN8fastgltf18MaterialAnisotropyE", !11, i64 0, !11, i64 4, !17, i64 8}
!96 = !{!95, !11, i64 4}
!97 = !{!98, !11, i64 0}
!98 = !{!"_ZTSN8fastgltf17MaterialClearcoatE", !11, i64 0, !17, i64 8, !11, i64 40, !17, i64 48, !17, i64 80}
!99 = !{!98, !11, i64 40}
!100 = !{!13, !11, i64 228}
!101 = !{!13, !11, i64 220}
!102 = !{!13, !11, i64 224}
!103 = !{!104, !11, i64 0}
!104 = !{!"_ZTSN8fastgltf19MaterialIridescenceE", !11, i64 0, !17, i64 8, !11, i64 40, !11, i64 44, !11, i64 48, !17, i64 56}
!105 = !{!104, !11, i64 40}
!106 = !{!104, !11, i64 44}
!107 = !{!104, !11, i64 48}
!108 = !{!109, !11, i64 48}
!109 = !{!"_ZTSN8fastgltf13MaterialSheenE", !33, i64 0, !17, i64 16, !11, i64 48, !17, i64 56}
!110 = !{!111, !11, i64 0}
!111 = !{!"_ZTSN8fastgltf16MaterialSpecularE", !11, i64 0, !17, i64 8, !33, i64 40, !17, i64 56}
!112 = !{!113, !11, i64 0}
!113 = !{!"_ZTSN8fastgltf20MaterialTransmissionE", !11, i64 0, !17, i64 8}
!114 = !{!13, !22, i64 214}
!115 = !{!116, !11, i64 0}
!116 = !{!"_ZTSN8fastgltf14MaterialVolumeE", !11, i64 0, !17, i64 8, !11, i64 40, !33, i64 44}
!117 = !{!116, !11, i64 40}
!118 = !{!119, !6, i64 112}
!119 = !{!"_ZTSN8fastgltf8ExporterE", !120, i64 0, !121, i64 8, !22, i64 16, !122, i64 24, !122, i64 64, !6, i64 104, !6, i64 112, !132, i64 120, !132, i64 144}
!120 = !{!"_ZTSN8fastgltf5ErrorE", !7, i64 0}
!121 = !{!"_ZTSN8fastgltf13ExportOptionsE", !7, i64 0}
!122 = !{!"_ZTSNSt10filesystem7__cxx114pathE", !123, i64 0, !125, i64 32}
!123 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !124, i64 0, !87, i64 8, !7, i64 16}
!124 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!125 = !{!"_ZTSNSt10filesystem7__cxx114path5_ListE", !126, i64 0}
!126 = !{!"_ZTSSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !127, i64 0}
!127 = !{!"_ZTSSt15__uniq_ptr_dataINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterELb1ELb1EE", !128, i64 0}
!128 = !{!"_ZTSSt15__uniq_ptr_implINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !129, i64 0}
!129 = !{!"_ZTSSt5tupleIJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !130, i64 0}
!130 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !131, i64 0}
!131 = !{!"_ZTSSt10_Head_baseILm0EPNSt10filesystem7__cxx114path5_List5_ImplELb0EE", !6, i64 0}
!132 = !{!"_ZTSSt6vectorISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE", !133, i64 0}
!133 = !{!"_ZTSSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE12_Vector_implE", !135, i64 0}
!135 = !{!"_ZTSNSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!136 = !{i64 0, i64 8, !5}
!137 = !{!119, !6, i64 104}
!138 = distinct !{!138, !139}
!139 = !{!"llvm.loop.mustprogress"}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.30 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.30 = type { i64, [8 x i8] }
%"class.__gnu_cxx::__normal_iterator.266" = type { ptr }
%"class.fastgltf::math::vec.267" = type { %"struct.std::array.268" }
%"struct.std::array.268" = type { [4 x float] }
%"class.fastgltf::math::vec.264" = type { %"struct.std::array.265" }
%"struct.std::array.265" = type { [3 x float] }
%"class.std::optional.467" = type { %"struct.std::_Optional_base.468" }
%"struct.std::_Optional_base.468" = type { %"struct.std::_Optional_payload.470" }
%"struct.std::_Optional_payload.470" = type { %"struct.std::_Optional_payload.base.474", [7 x i8] }
%"struct.std::_Optional_payload.base.474" = type { %"struct.std::_Optional_payload_base.base.473" }
%"struct.std::_Optional_payload_base.base.473" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::allocator" = type { i8 }

@.str.176 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.235 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.262 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.263 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.264 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.265 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.266 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.267 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.268 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.269 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.271 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [9 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i8 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, float noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 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 #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12), i64 noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8fastgltf12escapeStringB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64, ptr) local_unnamed_addr #1

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8fastgltf8Exporter14writeMaterialsERKNS_5AssetERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(168) %0, ptr noundef nonnull align 8 dereferenceable(580) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %5 = alloca %"class.__gnu_cxx::__normal_iterator.266", align 8
  %6 = alloca %"class.fastgltf::math::vec.267", align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.fastgltf::math::vec.264", align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.fastgltf::math::vec.264", align 4
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.fastgltf::math::vec.264", align 4
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.fastgltf::math::vec.264", align 4
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::optional.467", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::allocator", align 1
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = getelementptr inbounds i8, ptr %1, i64 384
  %104 = tail call noundef zeroext i1 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  br i1 %104, label %1437, label %105

105:                                              ; preds = %3
  %106 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %107 = load i8, ptr %106, align 1, !tbaa !5
  %108 = icmp eq i8 %107, 93
  br i1 %108, label %113, label %109

109:                                              ; preds = %105
  %110 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %111 = load i8, ptr %110, align 1, !tbaa !5
  %112 = icmp eq i8 %111, 125
  br i1 %112, label %113, label %115

113:                                              ; preds = %109, %105
  %114 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %115

115:                                              ; preds = %113, %109
  %116 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.214)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #5
  %117 = tail call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  store ptr %117, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %118 = tail call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  store ptr %118, ptr %5, align 8
  %119 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  br i1 %119, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %115
  %120 = getelementptr inbounds i8, ptr %0, i64 112
  %121 = getelementptr inbounds i8, ptr %0, i64 104
  br label %123

._crit_edge:                                      ; preds = %1432, %115
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  %122 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 93)
  br label %1437

123:                                              ; preds = %.lr.ph, %1432
  %124 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 123)
  %125 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.215)
  %126 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #5
  call void @_ZN8fastgltf4math3vecIfLm4EEC2Ef(ptr noundef nonnull align 4 dereferenceable(16) %6, float noundef 1.000000e+00) #5
  %127 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm4EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(16) %126, ptr noundef nonnull align 4 dereferenceable(16) %6) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #5
  br i1 %127, label %128, label %183

128:                                              ; preds = %123
  %129 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.216)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #5
  %130 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %131 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %130, i64 noundef 0) #5
  %132 = load float, ptr %131, align 4, !tbaa !8
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, float noundef %132)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, i8 noundef signext 44)
          to label %133 unwind label %154

133:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #5
  %134 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %135 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %134, i64 noundef 1) #5
  %136 = load float, ptr %135, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, float noundef %136)
          to label %137 unwind label %156

137:                                              ; preds = %133
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %138 unwind label %158

138:                                              ; preds = %137
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, i8 noundef signext 44)
          to label %139 unwind label %160

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #5
  %140 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %140, i64 noundef 2) #5
  %142 = load float, ptr %141, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, float noundef %142)
          to label %143 unwind label %162

143:                                              ; preds = %139
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %144 unwind label %164

144:                                              ; preds = %143
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, i8 noundef signext 44)
          to label %145 unwind label %166

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #5
  %146 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %147 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16) %146, i64 noundef 3) #5
  %148 = load float, ptr %147, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, float noundef %148)
          to label %149 unwind label %168

149:                                              ; preds = %145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %150 unwind label %170

150:                                              ; preds = %149
  %151 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %152 unwind label %172

152:                                              ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  %153 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.185)
  br label %183

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

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

158:                                              ; preds = %137
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %180

160:                                              ; preds = %138
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %179

162:                                              ; preds = %139
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %178

164:                                              ; preds = %143
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %177

166:                                              ; preds = %144
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %176

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

170:                                              ; preds = %149
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %150
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  br label %174

174:                                              ; preds = %172, %170
  %.pn = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %175

175:                                              ; preds = %174, %168
  %.pn.pn = phi { ptr, i32 } [ %.pn, %174 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %176

176:                                              ; preds = %175, %166
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %175 ], [ %167, %166 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  br label %177

177:                                              ; preds = %176, %164
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %176 ], [ %165, %164 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br label %178

178:                                              ; preds = %177, %162
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %177 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %179

179:                                              ; preds = %178, %160
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %178 ], [ %161, %160 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %180

180:                                              ; preds = %179, %158
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %179 ], [ %159, %158 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  br label %181

181:                                              ; preds = %180, %156
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %180 ], [ %157, %156 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  br label %182

182:                                              ; preds = %181, %154
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %181 ], [ %155, %154 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %1436

183:                                              ; preds = %152, %123
  %184 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %185 = getelementptr inbounds i8, ptr %184, i64 24
  %186 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %185) #5
  br i1 %186, label %187, label %197

187:                                              ; preds = %183
  %188 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %189 = load i8, ptr %188, align 1, !tbaa !5
  %.not = icmp eq i8 %189, 123
  br i1 %.not, label %192, label %190

190:                                              ; preds = %187
  %191 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %192

192:                                              ; preds = %190, %187
  %193 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.217)
  %194 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %195 = getelementptr inbounds i8, ptr %194, i64 24
  %196 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %195)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %196, i8 noundef zeroext 0)
  br label %197

197:                                              ; preds = %192, %183
  %198 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %199 = getelementptr inbounds i8, ptr %198, i64 16
  %200 = load float, ptr %199, align 8, !tbaa !10
  %201 = fcmp une float %200, 1.000000e+00
  br i1 %201, label %202, label %219

202:                                              ; preds = %197
  %203 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %204 = load i8, ptr %203, align 1, !tbaa !5
  %.not288 = icmp eq i8 %204, 123
  br i1 %.not288, label %207, label %205

205:                                              ; preds = %202
  %206 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %207

207:                                              ; preds = %205, %202
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #5
  %208 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %209 = getelementptr inbounds i8, ptr %208, i64 16
  %210 = load float, ptr %209, align 8, !tbaa !10
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, float noundef %210)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull @.str.218, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %211 unwind label %214

211:                                              ; preds = %207
  %212 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %213 unwind label %216

213:                                              ; preds = %211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  br label %219

214:                                              ; preds = %207
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %218

216:                                              ; preds = %211
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  br label %218

218:                                              ; preds = %216, %214
  %.pn289 = phi { ptr, i32 } [ %217, %216 ], [ %215, %214 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  br label %1436

219:                                              ; preds = %213, %197
  %220 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %221 = getelementptr inbounds i8, ptr %220, i64 20
  %222 = load float, ptr %221, align 4, !tbaa !87
  %223 = fcmp une float %222, 1.000000e+00
  br i1 %223, label %224, label %241

224:                                              ; preds = %219
  %225 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %226 = load i8, ptr %225, align 1, !tbaa !5
  %.not291 = icmp eq i8 %226, 123
  br i1 %.not291, label %229, label %227

227:                                              ; preds = %224
  %228 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %229

229:                                              ; preds = %227, %224
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #5
  %230 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %231 = getelementptr inbounds i8, ptr %230, i64 20
  %232 = load float, ptr %231, align 4, !tbaa !87
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, float noundef %232)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull @.str.219, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %233 unwind label %236

233:                                              ; preds = %229
  %234 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %235 unwind label %238

235:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  br label %241

236:                                              ; preds = %229
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %240

238:                                              ; preds = %233
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  br label %240

240:                                              ; preds = %238, %236
  %.pn292 = phi { ptr, i32 } [ %239, %238 ], [ %237, %236 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #5
  br label %1436

241:                                              ; preds = %235, %219
  %242 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %243 = getelementptr inbounds i8, ptr %242, i64 56
  %244 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %243) #5
  br i1 %244, label %245, label %255

245:                                              ; preds = %241
  %246 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %247 = load i8, ptr %246, align 1, !tbaa !5
  %.not294 = icmp eq i8 %247, 123
  br i1 %.not294, label %250, label %248

248:                                              ; preds = %245
  %249 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %250

250:                                              ; preds = %248, %245
  %251 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.220)
  %252 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %253 = getelementptr inbounds i8, ptr %252, i64 56
  %254 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %253)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %254, i8 noundef zeroext 0)
  br label %255

255:                                              ; preds = %250, %241
  %256 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  %257 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %258 = getelementptr inbounds i8, ptr %257, i64 88
  %259 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf17NormalTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %258) #5
  br i1 %259, label %260, label %270

260:                                              ; preds = %255
  %261 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %262 = load i8, ptr %261, align 1, !tbaa !5
  %.not295 = icmp eq i8 %262, 44
  br i1 %.not295, label %265, label %263

263:                                              ; preds = %260
  %264 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %265

265:                                              ; preds = %263, %260
  %266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.221)
  %267 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %268 = getelementptr inbounds i8, ptr %267, i64 88
  %269 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf17NormalTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %268)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %269, i8 noundef zeroext 1)
  br label %270

270:                                              ; preds = %265, %255
  %271 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %272 = getelementptr inbounds i8, ptr %271, i64 128
  %273 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf20OcclusionTextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %272) #5
  br i1 %273, label %274, label %284

274:                                              ; preds = %270
  %275 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %276 = load i8, ptr %275, align 1, !tbaa !5
  %.not296 = icmp eq i8 %276, 44
  br i1 %.not296, label %279, label %277

277:                                              ; preds = %274
  %278 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %279

279:                                              ; preds = %277, %274
  %280 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.222)
  %281 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %282 = getelementptr inbounds i8, ptr %281, i64 128
  %283 = call noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf20OcclusionTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %282)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %283, i8 noundef zeroext 2)
  br label %284

284:                                              ; preds = %279, %270
  %285 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %286 = getelementptr inbounds i8, ptr %285, i64 168
  %287 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %286) #5
  br i1 %287, label %288, label %298

288:                                              ; preds = %284
  %289 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %290 = load i8, ptr %289, align 1, !tbaa !5
  %.not297 = icmp eq i8 %290, 44
  br i1 %.not297, label %293, label %291

291:                                              ; preds = %288
  %292 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %293

293:                                              ; preds = %291, %288
  %294 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.223)
  %295 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %296 = getelementptr inbounds i8, ptr %295, i64 168
  %297 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %296)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %297, i8 noundef zeroext 0)
  br label %298

298:                                              ; preds = %293, %284
  %299 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %300 = getelementptr inbounds i8, ptr %299, i64 200
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %21) #5
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %21, float noundef 0.000000e+00) #5
  %301 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %300, ptr noundef nonnull align 4 dereferenceable(12) %21) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %21) #5
  br i1 %301, label %302, label %350

302:                                              ; preds = %298
  %303 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %304 = load i8, ptr %303, align 1, !tbaa !5
  %.not298 = icmp eq i8 %304, 44
  br i1 %.not298, label %307, label %305

305:                                              ; preds = %302
  %306 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %307

307:                                              ; preds = %305, %302
  %308 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.224)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  %309 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %310 = getelementptr inbounds i8, ptr %309, i64 200
  %311 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %310, i64 noundef 0) #5
  %312 = load float, ptr %311, align 4, !tbaa !8
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, float noundef %312)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, i8 noundef signext 44)
          to label %313 unwind label %330

313:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  %314 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %315 = getelementptr inbounds i8, ptr %314, i64 200
  %316 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %315, i64 noundef 1) #5
  %317 = load float, ptr %316, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, float noundef %317)
          to label %318 unwind label %332

318:                                              ; preds = %313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %319 unwind label %334

319:                                              ; preds = %318
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, i8 noundef signext 44)
          to label %320 unwind label %336

320:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #5
  %321 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %322 = getelementptr inbounds i8, ptr %321, i64 200
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %322, i64 noundef 2) #5
  %324 = load float, ptr %323, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, float noundef %324)
          to label %325 unwind label %338

325:                                              ; preds = %320
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %326 unwind label %340

326:                                              ; preds = %325
  %327 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %328 unwind label %342

328:                                              ; preds = %326
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  %329 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.176)
  br label %350

330:                                              ; preds = %307
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %349

332:                                              ; preds = %313
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %348

334:                                              ; preds = %318
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %347

336:                                              ; preds = %319
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %346

338:                                              ; preds = %320
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %345

340:                                              ; preds = %325
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %344

342:                                              ; preds = %326
  %343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br label %344

344:                                              ; preds = %342, %340
  %.pn299 = phi { ptr, i32 } [ %343, %342 ], [ %341, %340 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #5
  br label %345

345:                                              ; preds = %344, %338
  %.pn299.pn = phi { ptr, i32 } [ %.pn299, %344 ], [ %339, %338 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br label %346

346:                                              ; preds = %345, %336
  %.pn299.pn.pn = phi { ptr, i32 } [ %.pn299.pn, %345 ], [ %337, %336 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %347

347:                                              ; preds = %346, %334
  %.pn299.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn, %346 ], [ %335, %334 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %348

348:                                              ; preds = %347, %332
  %.pn299.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn, %347 ], [ %333, %332 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  br label %349

349:                                              ; preds = %348, %330
  %.pn299.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn299.pn.pn.pn.pn, %348 ], [ %331, %330 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  br label %1436

350:                                              ; preds = %328, %298
  %351 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %352 = getelementptr inbounds i8, ptr %351, i64 212
  %353 = load i8, ptr %352, align 4, !tbaa !88
  %.not306 = icmp eq i8 %353, 0
  br i1 %.not306, label %371, label %354

354:                                              ; preds = %350
  %355 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %356 = load i8, ptr %355, align 1, !tbaa !5
  %.not307 = icmp eq i8 %356, 44
  br i1 %.not307, label %359, label %357

357:                                              ; preds = %354
  %358 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %359

359:                                              ; preds = %357, %354
  %360 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.225)
  %361 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %362 = getelementptr inbounds i8, ptr %361, i64 212
  %363 = load i8, ptr %362, align 4, !tbaa !88
  %364 = icmp eq i8 %363, 2
  br i1 %364, label %.sink.split, label %365

365:                                              ; preds = %359
  %366 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %367 = getelementptr inbounds i8, ptr %366, i64 212
  %368 = load i8, ptr %367, align 4, !tbaa !88
  %369 = icmp eq i8 %368, 1
  br i1 %369, label %.sink.split, label %371

.sink.split:                                      ; preds = %365, %359
  %.str.226.sink = phi ptr [ @.str.226, %359 ], [ @.str.227, %365 ]
  %370 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %.str.226.sink)
  br label %371

371:                                              ; preds = %.sink.split, %365, %350
  %372 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %373 = getelementptr inbounds i8, ptr %372, i64 212
  %374 = load i8, ptr %373, align 4, !tbaa !88
  %375 = icmp eq i8 %374, 1
  br i1 %375, label %376, label %398

376:                                              ; preds = %371
  %377 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %378 = getelementptr inbounds i8, ptr %377, i64 216
  %379 = load float, ptr %378, align 8, !tbaa !89
  %380 = fcmp une float %379, 5.000000e-01
  br i1 %380, label %381, label %398

381:                                              ; preds = %376
  %382 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %383 = load i8, ptr %382, align 1, !tbaa !5
  %.not308 = icmp eq i8 %383, 44
  br i1 %.not308, label %386, label %384

384:                                              ; preds = %381
  %385 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %386

386:                                              ; preds = %384, %381
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #5
  %387 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %388 = getelementptr inbounds i8, ptr %387, i64 216
  %389 = load float, ptr %388, align 8, !tbaa !89
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, float noundef %389)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull @.str.228, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %390 unwind label %393

390:                                              ; preds = %386
  %391 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %392 unwind label %395

392:                                              ; preds = %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  br label %398

393:                                              ; preds = %386
  %394 = landingpad { ptr, i32 }
          cleanup
  br label %397

395:                                              ; preds = %390
  %396 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #5
  br label %397

397:                                              ; preds = %395, %393
  %.pn309 = phi { ptr, i32 } [ %396, %395 ], [ %394, %393 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #5
  br label %1436

398:                                              ; preds = %392, %376, %371
  %399 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %400 = getelementptr inbounds i8, ptr %399, i64 213
  %401 = load i8, ptr %400, align 1, !tbaa !90, !range !91, !noundef !92
  %402 = trunc nuw i8 %401 to i1
  br i1 %402, label %403, label %410

403:                                              ; preds = %398
  %404 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %405 = load i8, ptr %404, align 1, !tbaa !5
  %.not311 = icmp eq i8 %405, 44
  br i1 %.not311, label %408, label %406

406:                                              ; preds = %403
  %407 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %408

408:                                              ; preds = %406, %403
  %409 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.229)
  br label %410

410:                                              ; preds = %408, %398
  %411 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %412 = load i8, ptr %411, align 1, !tbaa !5
  %.not312 = icmp eq i8 %412, 44
  br i1 %.not312, label %415, label %413

413:                                              ; preds = %410
  %414 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %415

415:                                              ; preds = %413, %410
  %416 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.230)
  %417 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %418 = getelementptr inbounds i8, ptr %417, i64 232
  %419 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %418) #5
  br i1 %419, label %420, label %486

420:                                              ; preds = %415
  %421 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.231)
  %422 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %423 = getelementptr inbounds i8, ptr %422, i64 232
  %424 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %423) #5
  %425 = load float, ptr %424, align 8, !tbaa !93
  %426 = fcmp une float %425, 0.000000e+00
  br i1 %426, label %427, label %440

427:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #5
  %428 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %429 = getelementptr inbounds i8, ptr %428, i64 232
  %430 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %429) #5
  %431 = load float, ptr %430, align 8, !tbaa !93
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, float noundef %431)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull @.str.232, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %432 unwind label %435

432:                                              ; preds = %427
  %433 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %434 unwind label %437

434:                                              ; preds = %432
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #5
  br label %440

435:                                              ; preds = %427
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %439

437:                                              ; preds = %432
  %438 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #5
  br label %439

439:                                              ; preds = %437, %435
  %.pn313 = phi { ptr, i32 } [ %438, %437 ], [ %436, %435 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #5
  br label %1436

440:                                              ; preds = %434, %420
  %441 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %442 = getelementptr inbounds i8, ptr %441, i64 232
  %443 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %442) #5
  %444 = getelementptr inbounds i8, ptr %443, i64 4
  %445 = load float, ptr %444, align 4, !tbaa !95
  %446 = fcmp une float %445, 0.000000e+00
  br i1 %446, label %447, label %466

447:                                              ; preds = %440
  %448 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %449 = load i8, ptr %448, align 1, !tbaa !5
  %.not315 = icmp eq i8 %449, 123
  br i1 %.not315, label %452, label %450

450:                                              ; preds = %447
  %451 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %452

452:                                              ; preds = %450, %447
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #5
  %453 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %454 = getelementptr inbounds i8, ptr %453, i64 232
  %455 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %454) #5
  %456 = getelementptr inbounds i8, ptr %455, i64 4
  %457 = load float, ptr %456, align 4, !tbaa !95
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, float noundef %457)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull @.str.233, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %458 unwind label %461

458:                                              ; preds = %452
  %459 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %460 unwind label %463

460:                                              ; preds = %458
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #5
  br label %466

461:                                              ; preds = %452
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %465

463:                                              ; preds = %458
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %465

465:                                              ; preds = %463, %461
  %.pn316 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #5
  br label %1436

466:                                              ; preds = %460, %440
  %467 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %468 = getelementptr inbounds i8, ptr %467, i64 232
  %469 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %468) #5
  %470 = getelementptr inbounds i8, ptr %469, i64 8
  %471 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %470) #5
  br i1 %471, label %472, label %484

472:                                              ; preds = %466
  %473 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %474 = load i8, ptr %473, align 1, !tbaa !5
  %.not318 = icmp eq i8 %474, 123
  br i1 %.not318, label %477, label %475

475:                                              ; preds = %472
  %476 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %477

477:                                              ; preds = %475, %472
  %478 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.234)
  %479 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %480 = getelementptr inbounds i8, ptr %479, i64 232
  %481 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %480) #5
  %482 = getelementptr inbounds i8, ptr %481, i64 8
  %483 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %482)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %483, i8 noundef zeroext 0)
  br label %484

484:                                              ; preds = %477, %466
  %485 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %486

486:                                              ; preds = %484, %415
  %487 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %488 = getelementptr inbounds i8, ptr %487, i64 240
  %489 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %488) #5
  br i1 %489, label %490, label %598

490:                                              ; preds = %486
  %491 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %492 = load i8, ptr %491, align 1, !tbaa !5
  %493 = icmp eq i8 %492, 125
  br i1 %493, label %494, label %496

494:                                              ; preds = %490
  %495 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %496

496:                                              ; preds = %494, %490
  %497 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.235)
  %498 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %499 = getelementptr inbounds i8, ptr %498, i64 240
  %500 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %499) #5
  %501 = load float, ptr %500, align 8, !tbaa !96
  %502 = fcmp une float %501, 0.000000e+00
  br i1 %502, label %503, label %516

503:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #5
  %504 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %505 = getelementptr inbounds i8, ptr %504, i64 240
  %506 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %505) #5
  %507 = load float, ptr %506, align 8, !tbaa !96
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, float noundef %507)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull @.str.236, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %508 unwind label %511

508:                                              ; preds = %503
  %509 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %510 unwind label %513

510:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #5
  br label %516

511:                                              ; preds = %503
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %515

513:                                              ; preds = %508
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  br label %515

515:                                              ; preds = %513, %511
  %.pn319 = phi { ptr, i32 } [ %514, %513 ], [ %512, %511 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #5
  br label %1436

516:                                              ; preds = %510, %496
  %517 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %518 = getelementptr inbounds i8, ptr %517, i64 240
  %519 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %518) #5
  %520 = getelementptr inbounds i8, ptr %519, i64 8
  %521 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %520) #5
  br i1 %521, label %522, label %534

522:                                              ; preds = %516
  %523 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %524 = load i8, ptr %523, align 1, !tbaa !5
  %.not321 = icmp eq i8 %524, 123
  br i1 %.not321, label %527, label %525

525:                                              ; preds = %522
  %526 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %527

527:                                              ; preds = %525, %522
  %528 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.237)
  %529 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %530 = getelementptr inbounds i8, ptr %529, i64 240
  %531 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %530) #5
  %532 = getelementptr inbounds i8, ptr %531, i64 8
  %533 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %532)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %533, i8 noundef zeroext 0)
  br label %534

534:                                              ; preds = %527, %516
  %535 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %536 = getelementptr inbounds i8, ptr %535, i64 240
  %537 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %536) #5
  %538 = getelementptr inbounds i8, ptr %537, i64 40
  %539 = load float, ptr %538, align 8, !tbaa !98
  %540 = fcmp une float %539, 0.000000e+00
  br i1 %540, label %541, label %560

541:                                              ; preds = %534
  %542 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %543 = load i8, ptr %542, align 1, !tbaa !5
  %.not322 = icmp eq i8 %543, 123
  br i1 %.not322, label %546, label %544

544:                                              ; preds = %541
  %545 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %546

546:                                              ; preds = %544, %541
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #5
  %547 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %548 = getelementptr inbounds i8, ptr %547, i64 240
  %549 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %548) #5
  %550 = getelementptr inbounds i8, ptr %549, i64 40
  %551 = load float, ptr %550, align 8, !tbaa !98
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, float noundef %551)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull @.str.238, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %552 unwind label %555

552:                                              ; preds = %546
  %553 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %554 unwind label %557

554:                                              ; preds = %552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  br label %560

555:                                              ; preds = %546
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %559

557:                                              ; preds = %552
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #5
  br label %559

559:                                              ; preds = %557, %555
  %.pn323 = phi { ptr, i32 } [ %558, %557 ], [ %556, %555 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #5
  br label %1436

560:                                              ; preds = %554, %534
  %561 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %562 = getelementptr inbounds i8, ptr %561, i64 240
  %563 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %562) #5
  %564 = getelementptr inbounds i8, ptr %563, i64 48
  %565 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %564) #5
  br i1 %565, label %566, label %578

566:                                              ; preds = %560
  %567 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %568 = load i8, ptr %567, align 1, !tbaa !5
  %.not325 = icmp eq i8 %568, 123
  br i1 %.not325, label %571, label %569

569:                                              ; preds = %566
  %570 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %571

571:                                              ; preds = %569, %566
  %572 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.239)
  %573 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %574 = getelementptr inbounds i8, ptr %573, i64 240
  %575 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %574) #5
  %576 = getelementptr inbounds i8, ptr %575, i64 48
  %577 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %576)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %577, i8 noundef zeroext 0)
  br label %578

578:                                              ; preds = %571, %560
  %579 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %580 = getelementptr inbounds i8, ptr %579, i64 240
  %581 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %580) #5
  %582 = getelementptr inbounds i8, ptr %581, i64 80
  %583 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %582) #5
  br i1 %583, label %584, label %596

584:                                              ; preds = %578
  %585 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %586 = load i8, ptr %585, align 1, !tbaa !5
  %.not326 = icmp eq i8 %586, 123
  br i1 %.not326, label %589, label %587

587:                                              ; preds = %584
  %588 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %589

589:                                              ; preds = %587, %584
  %590 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.240)
  %591 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %592 = getelementptr inbounds i8, ptr %591, i64 240
  %593 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %592) #5
  %594 = getelementptr inbounds i8, ptr %593, i64 80
  %595 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %594)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %595, i8 noundef zeroext 0)
  br label %596

596:                                              ; preds = %589, %578
  %597 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %598

598:                                              ; preds = %596, %486
  %599 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %600 = getelementptr inbounds i8, ptr %599, i64 228
  %601 = load float, ptr %600, align 4, !tbaa !99
  %602 = fcmp une float %601, 0.000000e+00
  br i1 %602, label %603, label %625

603:                                              ; preds = %598
  %604 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %605 = load i8, ptr %604, align 1, !tbaa !5
  %606 = icmp eq i8 %605, 125
  br i1 %606, label %607, label %609

607:                                              ; preds = %603
  %608 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %609

609:                                              ; preds = %607, %603
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #5
  %610 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %611 = getelementptr inbounds i8, ptr %610, i64 228
  %612 = load float, ptr %611, align 4, !tbaa !99
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, float noundef %612)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull @.str.241, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %613 unwind label %617

613:                                              ; preds = %609
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, i8 noundef signext 125)
          to label %614 unwind label %619

614:                                              ; preds = %613
  %615 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %616 unwind label %621

616:                                              ; preds = %614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  br label %625

617:                                              ; preds = %609
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %624

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

621:                                              ; preds = %614
  %622 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %623

623:                                              ; preds = %621, %619
  %.pn327 = phi { ptr, i32 } [ %622, %621 ], [ %620, %619 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #5
  br label %624

624:                                              ; preds = %623, %617
  %.pn327.pn = phi { ptr, i32 } [ %.pn327, %623 ], [ %618, %617 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #5
  br label %1436

625:                                              ; preds = %616, %598
  %626 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %627 = getelementptr inbounds i8, ptr %626, i64 220
  %628 = load float, ptr %627, align 4, !tbaa !100
  %629 = fcmp une float %628, 1.000000e+00
  br i1 %629, label %630, label %652

630:                                              ; preds = %625
  %631 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %632 = load i8, ptr %631, align 1, !tbaa !5
  %633 = icmp eq i8 %632, 125
  br i1 %633, label %634, label %636

634:                                              ; preds = %630
  %635 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %636

636:                                              ; preds = %634, %630
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #5
  %637 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %638 = getelementptr inbounds i8, ptr %637, i64 220
  %639 = load float, ptr %638, align 4, !tbaa !100
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, float noundef %639)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull @.str.242, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %640 unwind label %644

640:                                              ; preds = %636
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, i8 noundef signext 125)
          to label %641 unwind label %646

641:                                              ; preds = %640
  %642 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %643 unwind label %648

643:                                              ; preds = %641
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #5
  br label %652

644:                                              ; preds = %636
  %645 = landingpad { ptr, i32 }
          cleanup
  br label %651

646:                                              ; preds = %640
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %650

648:                                              ; preds = %641
  %649 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #5
  br label %650

650:                                              ; preds = %648, %646
  %.pn330 = phi { ptr, i32 } [ %649, %648 ], [ %647, %646 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #5
  br label %651

651:                                              ; preds = %650, %644
  %.pn330.pn = phi { ptr, i32 } [ %.pn330, %650 ], [ %645, %644 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #5
  br label %1436

652:                                              ; preds = %643, %625
  %653 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %654 = getelementptr inbounds i8, ptr %653, i64 224
  %655 = load float, ptr %654, align 8, !tbaa !101
  %656 = fcmp une float %655, 1.500000e+00
  br i1 %656, label %657, label %679

657:                                              ; preds = %652
  %658 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %659 = load i8, ptr %658, align 1, !tbaa !5
  %660 = icmp eq i8 %659, 125
  br i1 %660, label %661, label %663

661:                                              ; preds = %657
  %662 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %663

663:                                              ; preds = %661, %657
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #5
  %664 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %665 = getelementptr inbounds i8, ptr %664, i64 224
  %666 = load float, ptr %665, align 8, !tbaa !101
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, float noundef %666)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull @.str.243, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %667 unwind label %671

667:                                              ; preds = %663
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, i8 noundef signext 125)
          to label %668 unwind label %673

668:                                              ; preds = %667
  %669 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %670 unwind label %675

670:                                              ; preds = %668
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #5
  br label %679

671:                                              ; preds = %663
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %678

673:                                              ; preds = %667
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %677

675:                                              ; preds = %668
  %676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #5
  br label %677

677:                                              ; preds = %675, %673
  %.pn333 = phi { ptr, i32 } [ %676, %675 ], [ %674, %673 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #5
  br label %678

678:                                              ; preds = %677, %671
  %.pn333.pn = phi { ptr, i32 } [ %.pn333, %677 ], [ %672, %671 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #5
  br label %1436

679:                                              ; preds = %670, %652
  %680 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %681 = getelementptr inbounds i8, ptr %680, i64 248
  %682 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %681) #5
  br i1 %682, label %683, label %825

683:                                              ; preds = %679
  %684 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %685 = load i8, ptr %684, align 1, !tbaa !5
  %686 = icmp eq i8 %685, 125
  br i1 %686, label %687, label %689

687:                                              ; preds = %683
  %688 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %689

689:                                              ; preds = %687, %683
  %690 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.244)
  %691 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %692 = getelementptr inbounds i8, ptr %691, i64 248
  %693 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %692) #5
  %694 = load float, ptr %693, align 8, !tbaa !102
  %695 = fcmp une float %694, 0.000000e+00
  br i1 %695, label %696, label %709

696:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #5
  %697 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %698 = getelementptr inbounds i8, ptr %697, i64 248
  %699 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %698) #5
  %700 = load float, ptr %699, align 8, !tbaa !102
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, float noundef %700)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull @.str.245, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %701 unwind label %704

701:                                              ; preds = %696
  %702 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %703 unwind label %706

703:                                              ; preds = %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #5
  br label %709

704:                                              ; preds = %696
  %705 = landingpad { ptr, i32 }
          cleanup
  br label %708

706:                                              ; preds = %701
  %707 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #5
  br label %708

708:                                              ; preds = %706, %704
  %.pn336 = phi { ptr, i32 } [ %707, %706 ], [ %705, %704 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #5
  br label %1436

709:                                              ; preds = %703, %689
  %710 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %711 = getelementptr inbounds i8, ptr %710, i64 248
  %712 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %711) #5
  %713 = getelementptr inbounds i8, ptr %712, i64 8
  %714 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %713) #5
  br i1 %714, label %715, label %727

715:                                              ; preds = %709
  %716 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %717 = load i8, ptr %716, align 1, !tbaa !5
  %.not338 = icmp eq i8 %717, 123
  br i1 %.not338, label %720, label %718

718:                                              ; preds = %715
  %719 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %720

720:                                              ; preds = %718, %715
  %721 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.246)
  %722 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %723 = getelementptr inbounds i8, ptr %722, i64 248
  %724 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %723) #5
  %725 = getelementptr inbounds i8, ptr %724, i64 8
  %726 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %725)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %726, i8 noundef zeroext 0)
  br label %727

727:                                              ; preds = %720, %709
  %728 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %729 = getelementptr inbounds i8, ptr %728, i64 248
  %730 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %729) #5
  %731 = getelementptr inbounds i8, ptr %730, i64 40
  %732 = load float, ptr %731, align 8, !tbaa !104
  %733 = fcmp une float %732, 0x3FF4CCCCC0000000
  br i1 %733, label %734, label %753

734:                                              ; preds = %727
  %735 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %736 = load i8, ptr %735, align 1, !tbaa !5
  %.not339 = icmp eq i8 %736, 123
  br i1 %.not339, label %739, label %737

737:                                              ; preds = %734
  %738 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %739

739:                                              ; preds = %737, %734
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #5
  %740 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %741 = getelementptr inbounds i8, ptr %740, i64 248
  %742 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %741) #5
  %743 = getelementptr inbounds i8, ptr %742, i64 40
  %744 = load float, ptr %743, align 8, !tbaa !104
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, float noundef %744)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull @.str.247, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %745 unwind label %748

745:                                              ; preds = %739
  %746 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %747 unwind label %750

747:                                              ; preds = %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #5
  br label %753

748:                                              ; preds = %739
  %749 = landingpad { ptr, i32 }
          cleanup
  br label %752

750:                                              ; preds = %745
  %751 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #5
  br label %752

752:                                              ; preds = %750, %748
  %.pn340 = phi { ptr, i32 } [ %751, %750 ], [ %749, %748 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #5
  br label %1436

753:                                              ; preds = %747, %727
  %754 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %755 = getelementptr inbounds i8, ptr %754, i64 248
  %756 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %755) #5
  %757 = getelementptr inbounds i8, ptr %756, i64 44
  %758 = load float, ptr %757, align 4, !tbaa !105
  %759 = fcmp une float %758, 1.000000e+02
  br i1 %759, label %760, label %779

760:                                              ; preds = %753
  %761 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %762 = load i8, ptr %761, align 1, !tbaa !5
  %.not342 = icmp eq i8 %762, 123
  br i1 %.not342, label %765, label %763

763:                                              ; preds = %760
  %764 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %765

765:                                              ; preds = %763, %760
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #5
  %766 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %767 = getelementptr inbounds i8, ptr %766, i64 248
  %768 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %767) #5
  %769 = getelementptr inbounds i8, ptr %768, i64 44
  %770 = load float, ptr %769, align 4, !tbaa !105
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, float noundef %770)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull @.str.248, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %771 unwind label %774

771:                                              ; preds = %765
  %772 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %773 unwind label %776

773:                                              ; preds = %771
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #5
  br label %779

774:                                              ; preds = %765
  %775 = landingpad { ptr, i32 }
          cleanup
  br label %778

776:                                              ; preds = %771
  %777 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #5
  br label %778

778:                                              ; preds = %776, %774
  %.pn343 = phi { ptr, i32 } [ %777, %776 ], [ %775, %774 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #5
  br label %1436

779:                                              ; preds = %773, %753
  %780 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %781 = getelementptr inbounds i8, ptr %780, i64 248
  %782 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %781) #5
  %783 = getelementptr inbounds i8, ptr %782, i64 48
  %784 = load float, ptr %783, align 8, !tbaa !106
  %785 = fcmp une float %784, 4.000000e+02
  br i1 %785, label %786, label %805

786:                                              ; preds = %779
  %787 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %788 = load i8, ptr %787, align 1, !tbaa !5
  %.not345 = icmp eq i8 %788, 123
  br i1 %.not345, label %791, label %789

789:                                              ; preds = %786
  %790 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %791

791:                                              ; preds = %789, %786
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #5
  %792 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %793 = getelementptr inbounds i8, ptr %792, i64 248
  %794 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %793) #5
  %795 = getelementptr inbounds i8, ptr %794, i64 48
  %796 = load float, ptr %795, align 8, !tbaa !106
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, float noundef %796)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull @.str.249, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %797 unwind label %800

797:                                              ; preds = %791
  %798 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %799 unwind label %802

799:                                              ; preds = %797
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #5
  br label %805

800:                                              ; preds = %791
  %801 = landingpad { ptr, i32 }
          cleanup
  br label %804

802:                                              ; preds = %797
  %803 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #5
  br label %804

804:                                              ; preds = %802, %800
  %.pn346 = phi { ptr, i32 } [ %803, %802 ], [ %801, %800 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #5
  br label %1436

805:                                              ; preds = %799, %779
  %806 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %807 = getelementptr inbounds i8, ptr %806, i64 248
  %808 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %807) #5
  %809 = getelementptr inbounds i8, ptr %808, i64 56
  %810 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %809) #5
  br i1 %810, label %811, label %823

811:                                              ; preds = %805
  %812 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %813 = load i8, ptr %812, align 1, !tbaa !5
  %.not348 = icmp eq i8 %813, 123
  br i1 %.not348, label %816, label %814

814:                                              ; preds = %811
  %815 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %816

816:                                              ; preds = %814, %811
  %817 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.250)
  %818 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %819 = getelementptr inbounds i8, ptr %818, i64 248
  %820 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %819) #5
  %821 = getelementptr inbounds i8, ptr %820, i64 56
  %822 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %821)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %822, i8 noundef zeroext 0)
  br label %823

823:                                              ; preds = %816, %805
  %824 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %825

825:                                              ; preds = %823, %679
  %826 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %827 = getelementptr inbounds i8, ptr %826, i64 256
  %828 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %827) #5
  br i1 %828, label %829, label %957

829:                                              ; preds = %825
  %830 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %831 = load i8, ptr %830, align 1, !tbaa !5
  %832 = icmp eq i8 %831, 125
  br i1 %832, label %833, label %835

833:                                              ; preds = %829
  %834 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %835

835:                                              ; preds = %833, %829
  %836 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.251)
  %837 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %838 = getelementptr inbounds i8, ptr %837, i64 256
  %839 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %838) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %56) #5
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %56, float noundef 0.000000e+00) #5
  %840 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %839, ptr noundef nonnull align 4 dereferenceable(12) %56) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %56) #5
  br i1 %840, label %841, label %893

841:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #5
  %842 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %843 = getelementptr inbounds i8, ptr %842, i64 256
  %844 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %843) #5
  %845 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %844, i64 noundef 0) #5
  %846 = load float, ptr %845, align 4, !tbaa !8
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, float noundef %846)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull @.str.252, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %847 unwind label %867

847:                                              ; preds = %841
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, i8 noundef signext 44)
          to label %848 unwind label %869

848:                                              ; preds = %847
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #5
  %849 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %850 = getelementptr inbounds i8, ptr %849, i64 256
  %851 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %850) #5
  %852 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %851, i64 noundef 1) #5
  %853 = load float, ptr %852, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, float noundef %853)
          to label %854 unwind label %871

854:                                              ; preds = %848
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %855 unwind label %873

855:                                              ; preds = %854
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, i8 noundef signext 44)
          to label %856 unwind label %875

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #5
  %857 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %858 = getelementptr inbounds i8, ptr %857, i64 256
  %859 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %858) #5
  %860 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %859, i64 noundef 2) #5
  %861 = load float, ptr %860, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, float noundef %861)
          to label %862 unwind label %877

862:                                              ; preds = %856
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %863 unwind label %879

863:                                              ; preds = %862
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, i8 noundef signext 93)
          to label %864 unwind label %881

864:                                              ; preds = %863
  %865 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %866 unwind label %883

866:                                              ; preds = %864
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #5
  br label %893

867:                                              ; preds = %841
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %892

869:                                              ; preds = %847
  %870 = landingpad { ptr, i32 }
          cleanup
  br label %891

871:                                              ; preds = %848
  %872 = landingpad { ptr, i32 }
          cleanup
  br label %890

873:                                              ; preds = %854
  %874 = landingpad { ptr, i32 }
          cleanup
  br label %889

875:                                              ; preds = %855
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %888

877:                                              ; preds = %856
  %878 = landingpad { ptr, i32 }
          cleanup
  br label %887

879:                                              ; preds = %862
  %880 = landingpad { ptr, i32 }
          cleanup
  br label %886

881:                                              ; preds = %863
  %882 = landingpad { ptr, i32 }
          cleanup
  br label %885

883:                                              ; preds = %864
  %884 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #5
  br label %885

885:                                              ; preds = %883, %881
  %.pn349 = phi { ptr, i32 } [ %884, %883 ], [ %882, %881 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #5
  br label %886

886:                                              ; preds = %885, %879
  %.pn349.pn = phi { ptr, i32 } [ %.pn349, %885 ], [ %880, %879 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #5
  br label %887

887:                                              ; preds = %886, %877
  %.pn349.pn.pn = phi { ptr, i32 } [ %.pn349.pn, %886 ], [ %878, %877 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #5
  br label %888

888:                                              ; preds = %887, %875
  %.pn349.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn, %887 ], [ %876, %875 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #5
  br label %889

889:                                              ; preds = %888, %873
  %.pn349.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn.pn, %888 ], [ %874, %873 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #5
  br label %890

890:                                              ; preds = %889, %871
  %.pn349.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn.pn.pn, %889 ], [ %872, %871 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #5
  br label %891

891:                                              ; preds = %890, %869
  %.pn349.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn.pn.pn.pn, %890 ], [ %870, %869 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #5
  br label %892

892:                                              ; preds = %891, %867
  %.pn349.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn349.pn.pn.pn.pn.pn.pn, %891 ], [ %868, %867 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #5
  br label %1436

893:                                              ; preds = %866, %835
  %894 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %895 = getelementptr inbounds i8, ptr %894, i64 256
  %896 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %895) #5
  %897 = getelementptr inbounds i8, ptr %896, i64 16
  %898 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %897) #5
  br i1 %898, label %899, label %911

899:                                              ; preds = %893
  %900 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %901 = load i8, ptr %900, align 1, !tbaa !5
  %.not358 = icmp eq i8 %901, 123
  br i1 %.not358, label %904, label %902

902:                                              ; preds = %899
  %903 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %904

904:                                              ; preds = %902, %899
  %905 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.253)
  %906 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %907 = getelementptr inbounds i8, ptr %906, i64 256
  %908 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %907) #5
  %909 = getelementptr inbounds i8, ptr %908, i64 16
  %910 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %909)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %910, i8 noundef zeroext 0)
  br label %911

911:                                              ; preds = %904, %893
  %912 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %913 = getelementptr inbounds i8, ptr %912, i64 256
  %914 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %913) #5
  %915 = getelementptr inbounds i8, ptr %914, i64 48
  %916 = load float, ptr %915, align 8, !tbaa !107
  %917 = fcmp une float %916, 0.000000e+00
  br i1 %917, label %918, label %937

918:                                              ; preds = %911
  %919 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %920 = load i8, ptr %919, align 1, !tbaa !5
  %.not359 = icmp eq i8 %920, 123
  br i1 %.not359, label %923, label %921

921:                                              ; preds = %918
  %922 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %923

923:                                              ; preds = %921, %918
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #5
  %924 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %925 = getelementptr inbounds i8, ptr %924, i64 256
  %926 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %925) #5
  %927 = getelementptr inbounds i8, ptr %926, i64 48
  %928 = load float, ptr %927, align 8, !tbaa !107
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, float noundef %928)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull @.str.254, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %929 unwind label %932

929:                                              ; preds = %923
  %930 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %931 unwind label %934

931:                                              ; preds = %929
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #5
  br label %937

932:                                              ; preds = %923
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %936

934:                                              ; preds = %929
  %935 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #5
  br label %936

936:                                              ; preds = %934, %932
  %.pn360 = phi { ptr, i32 } [ %935, %934 ], [ %933, %932 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #5
  br label %1436

937:                                              ; preds = %931, %911
  %938 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %939 = getelementptr inbounds i8, ptr %938, i64 256
  %940 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %939) #5
  %941 = getelementptr inbounds i8, ptr %940, i64 56
  %942 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %941) #5
  br i1 %942, label %943, label %955

943:                                              ; preds = %937
  %944 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %945 = load i8, ptr %944, align 1, !tbaa !5
  %.not362 = icmp eq i8 %945, 123
  br i1 %.not362, label %948, label %946

946:                                              ; preds = %943
  %947 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %948

948:                                              ; preds = %946, %943
  %949 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.255)
  %950 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %951 = getelementptr inbounds i8, ptr %950, i64 256
  %952 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %951) #5
  %953 = getelementptr inbounds i8, ptr %952, i64 56
  %954 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %953)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %954, i8 noundef zeroext 0)
  br label %955

955:                                              ; preds = %948, %937
  %956 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %957

957:                                              ; preds = %955, %825
  %958 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %959 = getelementptr inbounds i8, ptr %958, i64 264
  %960 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %959) #5
  br i1 %960, label %961, label %1091

961:                                              ; preds = %957
  %962 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %963 = load i8, ptr %962, align 1, !tbaa !5
  %964 = icmp eq i8 %963, 125
  br i1 %964, label %965, label %967

965:                                              ; preds = %961
  %966 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %967

967:                                              ; preds = %965, %961
  %968 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.256)
  %969 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %970 = getelementptr inbounds i8, ptr %969, i64 264
  %971 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %970) #5
  %972 = load float, ptr %971, align 8, !tbaa !109
  %973 = fcmp une float %972, 1.000000e+00
  br i1 %973, label %974, label %987

974:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #5
  %975 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %976 = getelementptr inbounds i8, ptr %975, i64 264
  %977 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %976) #5
  %978 = load float, ptr %977, align 8, !tbaa !109
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, float noundef %978)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull @.str.257, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %979 unwind label %982

979:                                              ; preds = %974
  %980 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %981 unwind label %984

981:                                              ; preds = %979
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #5
  br label %987

982:                                              ; preds = %974
  %983 = landingpad { ptr, i32 }
          cleanup
  br label %986

984:                                              ; preds = %979
  %985 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #5
  br label %986

986:                                              ; preds = %984, %982
  %.pn363 = phi { ptr, i32 } [ %985, %984 ], [ %983, %982 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #5
  br label %1436

987:                                              ; preds = %981, %967
  %988 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %989 = getelementptr inbounds i8, ptr %988, i64 264
  %990 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %989) #5
  %991 = getelementptr inbounds i8, ptr %990, i64 8
  %992 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %991) #5
  br i1 %992, label %993, label %1005

993:                                              ; preds = %987
  %994 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %995 = load i8, ptr %994, align 1, !tbaa !5
  %.not365 = icmp eq i8 %995, 123
  br i1 %.not365, label %998, label %996

996:                                              ; preds = %993
  %997 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %998

998:                                              ; preds = %996, %993
  %999 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.258)
  %1000 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1001 = getelementptr inbounds i8, ptr %1000, i64 264
  %1002 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1001) #5
  %1003 = getelementptr inbounds i8, ptr %1002, i64 8
  %1004 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1003)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1004, i8 noundef zeroext 0)
  br label %1005

1005:                                             ; preds = %998, %987
  %1006 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1007 = getelementptr inbounds i8, ptr %1006, i64 264
  %1008 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1007) #5
  %1009 = getelementptr inbounds i8, ptr %1008, i64 40
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %70) #5
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %70, float noundef 1.000000e+00) #5
  %1010 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %1009, ptr noundef nonnull align 4 dereferenceable(12) %70) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %70) #5
  br i1 %1010, label %1011, label %1071

1011:                                             ; preds = %1005
  %1012 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1013 = load i8, ptr %1012, align 1, !tbaa !5
  %.not366 = icmp eq i8 %1013, 123
  br i1 %.not366, label %1016, label %1014

1014:                                             ; preds = %1011
  %1015 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1016

1016:                                             ; preds = %1014, %1011
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #5
  %1017 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1018 = getelementptr inbounds i8, ptr %1017, i64 264
  %1019 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1018) #5
  %1020 = getelementptr inbounds i8, ptr %1019, i64 40
  %1021 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1020, i64 noundef 0) #5
  %1022 = load float, ptr %1021, align 4, !tbaa !8
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, float noundef %1022)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull @.str.259, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %1023 unwind label %1045

1023:                                             ; preds = %1016
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, i8 noundef signext 44)
          to label %1024 unwind label %1047

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #5
  %1025 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1026 = getelementptr inbounds i8, ptr %1025, i64 264
  %1027 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1026) #5
  %1028 = getelementptr inbounds i8, ptr %1027, i64 40
  %1029 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1028, i64 noundef 1) #5
  %1030 = load float, ptr %1029, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, float noundef %1030)
          to label %1031 unwind label %1049

1031:                                             ; preds = %1024
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1032 unwind label %1051

1032:                                             ; preds = %1031
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, i8 noundef signext 44)
          to label %1033 unwind label %1053

1033:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #5
  %1034 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1035 = getelementptr inbounds i8, ptr %1034, i64 264
  %1036 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1035) #5
  %1037 = getelementptr inbounds i8, ptr %1036, i64 40
  %1038 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1037, i64 noundef 2) #5
  %1039 = load float, ptr %1038, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, float noundef %1039)
          to label %1040 unwind label %1055

1040:                                             ; preds = %1033
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %1041 unwind label %1057

1041:                                             ; preds = %1040
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, i8 noundef signext 93)
          to label %1042 unwind label %1059

1042:                                             ; preds = %1041
  %1043 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %1044 unwind label %1061

1044:                                             ; preds = %1042
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #5
  br label %1071

1045:                                             ; preds = %1016
  %1046 = landingpad { ptr, i32 }
          cleanup
  br label %1070

1047:                                             ; preds = %1023
  %1048 = landingpad { ptr, i32 }
          cleanup
  br label %1069

1049:                                             ; preds = %1024
  %1050 = landingpad { ptr, i32 }
          cleanup
  br label %1068

1051:                                             ; preds = %1031
  %1052 = landingpad { ptr, i32 }
          cleanup
  br label %1067

1053:                                             ; preds = %1032
  %1054 = landingpad { ptr, i32 }
          cleanup
  br label %1066

1055:                                             ; preds = %1033
  %1056 = landingpad { ptr, i32 }
          cleanup
  br label %1065

1057:                                             ; preds = %1040
  %1058 = landingpad { ptr, i32 }
          cleanup
  br label %1064

1059:                                             ; preds = %1041
  %1060 = landingpad { ptr, i32 }
          cleanup
  br label %1063

1061:                                             ; preds = %1042
  %1062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #5
  br label %1063

1063:                                             ; preds = %1061, %1059
  %.pn367 = phi { ptr, i32 } [ %1062, %1061 ], [ %1060, %1059 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #5
  br label %1064

1064:                                             ; preds = %1063, %1057
  %.pn367.pn = phi { ptr, i32 } [ %.pn367, %1063 ], [ %1058, %1057 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #5
  br label %1065

1065:                                             ; preds = %1064, %1055
  %.pn367.pn.pn = phi { ptr, i32 } [ %.pn367.pn, %1064 ], [ %1056, %1055 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #5
  br label %1066

1066:                                             ; preds = %1065, %1053
  %.pn367.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn, %1065 ], [ %1054, %1053 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #5
  br label %1067

1067:                                             ; preds = %1066, %1051
  %.pn367.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn.pn, %1066 ], [ %1052, %1051 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #5
  br label %1068

1068:                                             ; preds = %1067, %1049
  %.pn367.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn.pn.pn, %1067 ], [ %1050, %1049 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #5
  br label %1069

1069:                                             ; preds = %1068, %1047
  %.pn367.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn.pn.pn.pn, %1068 ], [ %1048, %1047 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #5
  br label %1070

1070:                                             ; preds = %1069, %1045
  %.pn367.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn367.pn.pn.pn.pn.pn.pn, %1069 ], [ %1046, %1045 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #5
  br label %1436

1071:                                             ; preds = %1044, %1005
  %1072 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1073 = getelementptr inbounds i8, ptr %1072, i64 264
  %1074 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1073) #5
  %1075 = getelementptr inbounds i8, ptr %1074, i64 56
  %1076 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1075) #5
  br i1 %1076, label %1077, label %1089

1077:                                             ; preds = %1071
  %1078 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1079 = load i8, ptr %1078, align 1, !tbaa !5
  %.not376 = icmp eq i8 %1079, 123
  br i1 %.not376, label %1082, label %1080

1080:                                             ; preds = %1077
  %1081 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1082

1082:                                             ; preds = %1080, %1077
  %1083 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.260)
  %1084 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1085 = getelementptr inbounds i8, ptr %1084, i64 264
  %1086 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1085) #5
  %1087 = getelementptr inbounds i8, ptr %1086, i64 56
  %1088 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1087)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1088, i8 noundef zeroext 0)
  br label %1089

1089:                                             ; preds = %1082, %1071
  %1090 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %1091

1091:                                             ; preds = %1089, %957
  %1092 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1093 = getelementptr inbounds i8, ptr %1092, i64 272
  %1094 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1093) #5
  br i1 %1094, label %1095, label %1141

1095:                                             ; preds = %1091
  %1096 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1097 = load i8, ptr %1096, align 1, !tbaa !5
  %1098 = icmp eq i8 %1097, 125
  br i1 %1098, label %1099, label %1101

1099:                                             ; preds = %1095
  %1100 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1101

1101:                                             ; preds = %1099, %1095
  %1102 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.261)
  %1103 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1104 = getelementptr inbounds i8, ptr %1103, i64 272
  %1105 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1104) #5
  %1106 = load float, ptr %1105, align 8, !tbaa !111
  %1107 = fcmp une float %1106, 0.000000e+00
  br i1 %1107, label %1108, label %1121

1108:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #5
  %1109 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1110 = getelementptr inbounds i8, ptr %1109, i64 272
  %1111 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1110) #5
  %1112 = load float, ptr %1111, align 8, !tbaa !111
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, float noundef %1112)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull @.str.262, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %1113 unwind label %1116

1113:                                             ; preds = %1108
  %1114 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1115 unwind label %1118

1115:                                             ; preds = %1113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #5
  br label %1121

1116:                                             ; preds = %1108
  %1117 = landingpad { ptr, i32 }
          cleanup
  br label %1120

1118:                                             ; preds = %1113
  %1119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #5
  br label %1120

1120:                                             ; preds = %1118, %1116
  %.pn377 = phi { ptr, i32 } [ %1119, %1118 ], [ %1117, %1116 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #5
  br label %1436

1121:                                             ; preds = %1115, %1101
  %1122 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1123 = getelementptr inbounds i8, ptr %1122, i64 272
  %1124 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1123) #5
  %1125 = getelementptr inbounds i8, ptr %1124, i64 8
  %1126 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1125) #5
  br i1 %1126, label %1127, label %1139

1127:                                             ; preds = %1121
  %1128 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1129 = load i8, ptr %1128, align 1, !tbaa !5
  %.not379 = icmp eq i8 %1129, 123
  br i1 %.not379, label %1132, label %1130

1130:                                             ; preds = %1127
  %1131 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1132

1132:                                             ; preds = %1130, %1127
  %1133 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.263)
  %1134 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1135 = getelementptr inbounds i8, ptr %1134, i64 272
  %1136 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1135) #5
  %1137 = getelementptr inbounds i8, ptr %1136, i64 8
  %1138 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1137)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1138, i8 noundef zeroext 0)
  br label %1139

1139:                                             ; preds = %1132, %1121
  %1140 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %1141

1141:                                             ; preds = %1139, %1091
  %1142 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1143 = getelementptr inbounds i8, ptr %1142, i64 214
  %1144 = load i8, ptr %1143, align 2, !tbaa !113, !range !91, !noundef !92
  %1145 = trunc nuw i8 %1144 to i1
  br i1 %1145, label %1146, label %1154

1146:                                             ; preds = %1141
  %1147 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1148 = load i8, ptr %1147, align 1, !tbaa !5
  %1149 = icmp eq i8 %1148, 125
  br i1 %1149, label %1150, label %1152

1150:                                             ; preds = %1146
  %1151 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1152

1152:                                             ; preds = %1150, %1146
  %1153 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.264)
  br label %1154

1154:                                             ; preds = %1152, %1141
  %1155 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1156 = getelementptr inbounds i8, ptr %1155, i64 280
  %1157 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1156) #5
  br i1 %1157, label %1158, label %1297

1158:                                             ; preds = %1154
  %1159 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1160 = load i8, ptr %1159, align 1, !tbaa !5
  %1161 = icmp eq i8 %1160, 125
  br i1 %1161, label %1162, label %1164

1162:                                             ; preds = %1158
  %1163 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1164

1164:                                             ; preds = %1162, %1158
  %1165 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.265)
  %1166 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1167 = getelementptr inbounds i8, ptr %1166, i64 280
  %1168 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1167) #5
  %1169 = load float, ptr %1168, align 8, !tbaa !114
  %1170 = fcmp une float %1169, 0.000000e+00
  br i1 %1170, label %1171, label %1184

1171:                                             ; preds = %1164
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #5
  %1172 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1173 = getelementptr inbounds i8, ptr %1172, i64 280
  %1174 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1173) #5
  %1175 = load float, ptr %1174, align 8, !tbaa !114
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, float noundef %1175)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull @.str.266, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %1176 unwind label %1179

1176:                                             ; preds = %1171
  %1177 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %1178 unwind label %1181

1178:                                             ; preds = %1176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #5
  br label %1184

1179:                                             ; preds = %1171
  %1180 = landingpad { ptr, i32 }
          cleanup
  br label %1183

1181:                                             ; preds = %1176
  %1182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #5
  br label %1183

1183:                                             ; preds = %1181, %1179
  %.pn380 = phi { ptr, i32 } [ %1182, %1181 ], [ %1180, %1179 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #5
  br label %1436

1184:                                             ; preds = %1178, %1164
  %1185 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1186 = getelementptr inbounds i8, ptr %1185, i64 280
  %1187 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1186) #5
  %1188 = getelementptr inbounds i8, ptr %1187, i64 8
  %1189 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1188) #5
  br i1 %1189, label %1190, label %1202

1190:                                             ; preds = %1184
  %1191 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1192 = load i8, ptr %1191, align 1, !tbaa !5
  %.not382 = icmp eq i8 %1192, 123
  br i1 %.not382, label %1195, label %1193

1193:                                             ; preds = %1190
  %1194 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1195

1195:                                             ; preds = %1193, %1190
  %1196 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.267)
  %1197 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1198 = getelementptr inbounds i8, ptr %1197, i64 280
  %1199 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1198) #5
  %1200 = getelementptr inbounds i8, ptr %1199, i64 8
  %1201 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1200)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1201, i8 noundef zeroext 0)
  br label %1202

1202:                                             ; preds = %1195, %1184
  %1203 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1204 = getelementptr inbounds i8, ptr %1203, i64 280
  %1205 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1204) #5
  %1206 = getelementptr inbounds i8, ptr %1205, i64 40
  %1207 = load float, ptr %1206, align 8, !tbaa !116
  %1208 = call noundef float @_ZNSt14numeric_limitsIfE8infinityEv() #5
  %1209 = fcmp une float %1207, %1208
  br i1 %1209, label %1210, label %1229

1210:                                             ; preds = %1202
  %1211 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1212 = load i8, ptr %1211, align 1, !tbaa !5
  %.not383 = icmp eq i8 %1212, 123
  br i1 %.not383, label %1215, label %1213

1213:                                             ; preds = %1210
  %1214 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1215

1215:                                             ; preds = %1213, %1210
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #5
  %1216 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1217 = getelementptr inbounds i8, ptr %1216, i64 280
  %1218 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1217) #5
  %1219 = getelementptr inbounds i8, ptr %1218, i64 40
  %1220 = load float, ptr %1219, align 8, !tbaa !116
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, float noundef %1220)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull @.str.268, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %1221 unwind label %1224

1221:                                             ; preds = %1215
  %1222 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %1223 unwind label %1226

1223:                                             ; preds = %1221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #5
  br label %1229

1224:                                             ; preds = %1215
  %1225 = landingpad { ptr, i32 }
          cleanup
  br label %1228

1226:                                             ; preds = %1221
  %1227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #5
  br label %1228

1228:                                             ; preds = %1226, %1224
  %.pn384 = phi { ptr, i32 } [ %1227, %1226 ], [ %1225, %1224 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #5
  br label %1436

1229:                                             ; preds = %1223, %1202
  %1230 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1231 = getelementptr inbounds i8, ptr %1230, i64 280
  %1232 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1231) #5
  %1233 = getelementptr inbounds i8, ptr %1232, i64 44
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %86) #5
  call void @_ZN8fastgltf4math3vecIfLm3EEC2Ef(ptr noundef nonnull align 4 dereferenceable(12) %86, float noundef 1.000000e+00) #5
  %1234 = call noundef zeroext i1 @_ZNK8fastgltf4math3vecIfLm3EEneERKS2_(ptr noundef nonnull align 4 dereferenceable(12) %1233, ptr noundef nonnull align 4 dereferenceable(12) %86) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %86) #5
  br i1 %1234, label %1235, label %1295

1235:                                             ; preds = %1229
  %1236 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1237 = load i8, ptr %1236, align 1, !tbaa !5
  %.not386 = icmp eq i8 %1237, 123
  br i1 %.not386, label %1240, label %1238

1238:                                             ; preds = %1235
  %1239 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1240

1240:                                             ; preds = %1238, %1235
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #5
  %1241 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1242 = getelementptr inbounds i8, ptr %1241, i64 280
  %1243 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1242) #5
  %1244 = getelementptr inbounds i8, ptr %1243, i64 44
  %1245 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1244, i64 noundef 0) #5
  %1246 = load float, ptr %1245, align 4, !tbaa !8
  call void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, float noundef %1246)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull @.str.269, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %1247 unwind label %1269

1247:                                             ; preds = %1240
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, i8 noundef signext 44)
          to label %1248 unwind label %1271

1248:                                             ; preds = %1247
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #5
  %1249 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1250 = getelementptr inbounds i8, ptr %1249, i64 280
  %1251 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1250) #5
  %1252 = getelementptr inbounds i8, ptr %1251, i64 44
  %1253 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1252, i64 noundef 1) #5
  %1254 = load float, ptr %1253, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, float noundef %1254)
          to label %1255 unwind label %1273

1255:                                             ; preds = %1248
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %1256 unwind label %1275

1256:                                             ; preds = %1255
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, i8 noundef signext 44)
          to label %1257 unwind label %1277

1257:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #5
  %1258 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1259 = getelementptr inbounds i8, ptr %1258, i64 280
  %1260 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1259) #5
  %1261 = getelementptr inbounds i8, ptr %1260, i64 44
  %1262 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8fastgltf4math3vecIfLm3EEixEm(ptr noundef nonnull align 4 dereferenceable(12) %1261, i64 noundef 2) #5
  %1263 = load float, ptr %1262, align 4, !tbaa !8
  invoke void @_ZNSt7__cxx119to_stringEf(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, float noundef %1263)
          to label %1264 unwind label %1279

1264:                                             ; preds = %1257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1265 unwind label %1281

1265:                                             ; preds = %1264
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, i8 noundef signext 93)
          to label %1266 unwind label %1283

1266:                                             ; preds = %1265
  %1267 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %1268 unwind label %1285

1268:                                             ; preds = %1266
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #5
  br label %1295

1269:                                             ; preds = %1240
  %1270 = landingpad { ptr, i32 }
          cleanup
  br label %1294

1271:                                             ; preds = %1247
  %1272 = landingpad { ptr, i32 }
          cleanup
  br label %1293

1273:                                             ; preds = %1248
  %1274 = landingpad { ptr, i32 }
          cleanup
  br label %1292

1275:                                             ; preds = %1255
  %1276 = landingpad { ptr, i32 }
          cleanup
  br label %1291

1277:                                             ; preds = %1256
  %1278 = landingpad { ptr, i32 }
          cleanup
  br label %1290

1279:                                             ; preds = %1257
  %1280 = landingpad { ptr, i32 }
          cleanup
  br label %1289

1281:                                             ; preds = %1264
  %1282 = landingpad { ptr, i32 }
          cleanup
  br label %1288

1283:                                             ; preds = %1265
  %1284 = landingpad { ptr, i32 }
          cleanup
  br label %1287

1285:                                             ; preds = %1266
  %1286 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #5
  br label %1287

1287:                                             ; preds = %1285, %1283
  %.pn387 = phi { ptr, i32 } [ %1286, %1285 ], [ %1284, %1283 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #5
  br label %1288

1288:                                             ; preds = %1287, %1281
  %.pn387.pn = phi { ptr, i32 } [ %.pn387, %1287 ], [ %1282, %1281 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #5
  br label %1289

1289:                                             ; preds = %1288, %1279
  %.pn387.pn.pn = phi { ptr, i32 } [ %.pn387.pn, %1288 ], [ %1280, %1279 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #5
  br label %1290

1290:                                             ; preds = %1289, %1277
  %.pn387.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn, %1289 ], [ %1278, %1277 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #5
  br label %1291

1291:                                             ; preds = %1290, %1275
  %.pn387.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn.pn, %1290 ], [ %1276, %1275 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #5
  br label %1292

1292:                                             ; preds = %1291, %1273
  %.pn387.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn.pn.pn, %1291 ], [ %1274, %1273 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #5
  br label %1293

1293:                                             ; preds = %1292, %1271
  %.pn387.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn.pn.pn.pn, %1292 ], [ %1272, %1271 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #5
  br label %1294

1294:                                             ; preds = %1293, %1269
  %.pn387.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn387.pn.pn.pn.pn.pn.pn, %1293 ], [ %1270, %1269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #5
  br label %1436

1295:                                             ; preds = %1268, %1229
  %1296 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %1297

1297:                                             ; preds = %1295, %1154
  %1298 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1299 = getelementptr inbounds i8, ptr %1298, i64 288
  %1300 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1299) #5
  br i1 %1300, label %1301, label %1313

1301:                                             ; preds = %1297
  %1302 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1303 = load i8, ptr %1302, align 1, !tbaa !5
  %1304 = icmp eq i8 %1303, 125
  br i1 %1304, label %1305, label %1307

1305:                                             ; preds = %1301
  %1306 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1307

1307:                                             ; preds = %1305, %1301
  %1308 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.270)
  %1309 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1310 = getelementptr inbounds i8, ptr %1309, i64 288
  %1311 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1310)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1311, i8 noundef zeroext 0)
  %1312 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %1313

1313:                                             ; preds = %1307, %1297
  %1314 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1315 = getelementptr inbounds i8, ptr %1314, i64 320
  %1316 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %1315) #5
  br i1 %1316, label %1317, label %1363

1317:                                             ; preds = %1313
  %1318 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1319 = load i8, ptr %1318, align 1, !tbaa !5
  %1320 = icmp eq i8 %1319, 125
  br i1 %1320, label %1321, label %1323

1321:                                             ; preds = %1317
  %1322 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1323

1323:                                             ; preds = %1321, %1317
  %1324 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.271)
  %1325 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1326 = getelementptr inbounds i8, ptr %1325, i64 320
  %1327 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1326) #5
  %1328 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1327) #5
  br i1 %1328, label %1329, label %1335

1329:                                             ; preds = %1323
  %1330 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.272)
  %1331 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1332 = getelementptr inbounds i8, ptr %1331, i64 320
  %1333 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1332) #5
  %1334 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1333)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1334, i8 noundef zeroext 0)
  br label %1335

1335:                                             ; preds = %1329, %1323
  %1336 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1337 = getelementptr inbounds i8, ptr %1336, i64 320
  %1338 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1337) #5
  %1339 = getelementptr inbounds i8, ptr %1338, i64 32
  %1340 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1339) #5
  br i1 %1340, label %1341, label %1348

1341:                                             ; preds = %1335
  %1342 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.273)
  %1343 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1344 = getelementptr inbounds i8, ptr %1343, i64 320
  %1345 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1344) #5
  %1346 = getelementptr inbounds i8, ptr %1345, i64 32
  %1347 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1346)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1347, i8 noundef zeroext 0)
  br label %1348

1348:                                             ; preds = %1341, %1335
  %1349 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1350 = getelementptr inbounds i8, ptr %1349, i64 320
  %1351 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1350) #5
  %1352 = getelementptr inbounds i8, ptr %1351, i64 64
  %1353 = call noundef zeroext i1 @_ZNKSt8optionalIN8fastgltf11TextureInfoEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1352) #5
  br i1 %1353, label %1354, label %1361

1354:                                             ; preds = %1348
  %1355 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.221)
  %1356 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1357 = getelementptr inbounds i8, ptr %1356, i64 320
  %1358 = call noundef ptr @_ZNKSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %1357) #5
  %1359 = getelementptr inbounds i8, ptr %1358, i64 64
  %1360 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNRSt8optionalIN8fastgltf11TextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(32) %1359)
  call void @_ZN8fastgltf16writeTextureInfoERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_11TextureInfoENS_15TextureInfoTypeE(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %1360, i8 noundef zeroext 0)
  br label %1361

1361:                                             ; preds = %1354, %1348
  %1362 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  br label %1363

1363:                                             ; preds = %1361, %1313
  %1364 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  %1365 = load ptr, ptr %120, align 8, !tbaa !117
  %.not396 = icmp eq ptr %1365, null
  br i1 %.not396, label %1395, label %1366

1366:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %96) #5
  %1367 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  %.sroa.03.0.copyload = load ptr, ptr %4, align 8, !tbaa !135
  %1368 = call noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS3_SaIS3_EEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(ptr %1367, ptr %.sroa.03.0.copyload)
  %1369 = call noundef i64 @_ZN8fastgltf4uabsIlEENSt13make_unsignedIT_E4typeES2_(i64 noundef %1368)
  %1370 = load ptr, ptr %121, align 8, !tbaa !136
  call void %1365(ptr dead_on_unwind nonnull writable sret(%"class.std::optional.467") align 8 %96, i64 noundef %1369, i32 noundef 256, ptr noundef %1370)
  %1371 = call noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(40) %96) #5
  br i1 %1371, label %1372, label %1393

1372:                                             ; preds = %1366
  %1373 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1374 = load i8, ptr %1373, align 1, !tbaa !5
  %.not397 = icmp eq i8 %1374, 123
  br i1 %.not397, label %1379, label %1375

1375:                                             ; preds = %1372
  %1376 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
          to label %1379 unwind label %1377

1377:                                             ; preds = %1375
  %1378 = landingpad { ptr, i32 }
          cleanup
  br label %1394

1379:                                             ; preds = %1375, %1372
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %99) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.274, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %1380 unwind label %1385

1380:                                             ; preds = %1379
  %1381 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNRSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(40) %96) #5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %1381)
          to label %1382 unwind label %1387

1382:                                             ; preds = %1380
  %1383 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %1384 unwind label %1389

1384:                                             ; preds = %1382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #5
  br label %1393

1385:                                             ; preds = %1379
  %1386 = landingpad { ptr, i32 }
          cleanup
  br label %1392

1387:                                             ; preds = %1380
  %1388 = landingpad { ptr, i32 }
          cleanup
  br label %1391

1389:                                             ; preds = %1382
  %1390 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #5
  br label %1391

1391:                                             ; preds = %1389, %1387
  %.pn398 = phi { ptr, i32 } [ %1390, %1389 ], [ %1388, %1387 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #5
  br label %1392

1392:                                             ; preds = %1391, %1385
  %.pn398.pn = phi { ptr, i32 } [ %.pn398, %1391 ], [ %1386, %1385 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %99) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #5
  br label %1394

1393:                                             ; preds = %1384, %1366
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %96) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %96) #5
  br label %1395

1394:                                             ; preds = %1392, %1377
  %.pn398.pn.pn = phi { ptr, i32 } [ %.pn398.pn, %1392 ], [ %1378, %1377 ]
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %96) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %96) #5
  br label %1436

1395:                                             ; preds = %1393, %1363
  %1396 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1397 = getelementptr inbounds i8, ptr %1396, i64 328
  %1398 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(40) %1397) #5
  br i1 %1398, label %1422, label %1399

1399:                                             ; preds = %1395
  %1400 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %1401 = load i8, ptr %1400, align 1, !tbaa !5
  %.not402 = icmp eq i8 %1401, 44
  br i1 %.not402, label %1404, label %1402

1402:                                             ; preds = %1399
  %1403 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1404

1404:                                             ; preds = %1402, %1399
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #5
  %1405 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  %1406 = getelementptr inbounds i8, ptr %1405, i64 328
  %1407 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(40) %1406) #5
  %1408 = extractvalue { i64, ptr } %1407, 0
  %1409 = extractvalue { i64, ptr } %1407, 1
  call void @_ZN8fastgltf12escapeStringB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, i64 %1408, ptr %1409)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull @.str.275, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1410 unwind label %1414

1410:                                             ; preds = %1404
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %101, i8 noundef signext 34)
          to label %1411 unwind label %1416

1411:                                             ; preds = %1410
  %1412 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %1413 unwind label %1418

1413:                                             ; preds = %1411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #5
  br label %1422

1414:                                             ; preds = %1404
  %1415 = landingpad { ptr, i32 }
          cleanup
  br label %1421

1416:                                             ; preds = %1410
  %1417 = landingpad { ptr, i32 }
          cleanup
  br label %1420

1418:                                             ; preds = %1411
  %1419 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #5
  br label %1420

1420:                                             ; preds = %1418, %1416
  %.pn403 = phi { ptr, i32 } [ %1419, %1418 ], [ %1417, %1416 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #5
  br label %1421

1421:                                             ; preds = %1420, %1414
  %.pn403.pn = phi { ptr, i32 } [ %.pn403, %1420 ], [ %1415, %1414 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #5
  br label %1436

1422:                                             ; preds = %1413, %1395
  %1423 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 125)
  %1424 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  %.sroa.0.0.copyload = load ptr, ptr %4, align 8, !tbaa !135
  %1425 = call noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS3_SaIS3_EEEEENSt15iterator_traitsIT_E15difference_typeESB_SB_(ptr %1424, ptr %.sroa.0.0.copyload)
  %1426 = call noundef i64 @_ZN8fastgltf4uabsIlEENSt13make_unsignedIT_E4typeES2_(i64 noundef %1425)
  %1427 = add i64 %1426, 1
  %1428 = call noundef i64 @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  %1429 = icmp ult i64 %1427, %1428
  br i1 %1429, label %1430, label %1432

1430:                                             ; preds = %1422
  %1431 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 44)
  br label %1432

1432:                                             ; preds = %1422, %1430
  %1433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %4) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %1434 = call ptr @_ZNKSt6vectorIN8fastgltf8MaterialESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #5
  store ptr %1434, ptr %5, align 8
  %1435 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN8fastgltf8MaterialESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  br i1 %1435, label %123, label %._crit_edge, !llvm.loop !137

1436:                                             ; preds = %1421, %1394, %1294, %1228, %1183, %1120, %1070, %986, %936, %892, %804, %778, %752, %708, %678, %651, %624, %559, %515, %465, %439, %397, %349, %240, %218, %182
  %.pn403.pn.pn = phi { ptr, i32 } [ %.pn403.pn, %1421 ], [ %.pn398.pn.pn, %1394 ], [ %.pn387.pn.pn.pn.pn.pn.pn.pn, %1294 ], [ %.pn384, %1228 ], [ %.pn380, %1183 ], [ %.pn377, %1120 ], [ %.pn367.pn.pn.pn.pn.pn.pn.pn, %1070 ], [ %.pn363, %986 ], [ %.pn360, %936 ], [ %.pn349.pn.pn.pn.pn.pn.pn.pn, %892 ], [ %.pn346, %804 ], [ %.pn343, %778 ], [ %.pn340, %752 ], [ %.pn336, %708 ], [ %.pn333.pn, %678 ], [ %.pn330.pn, %651 ], [ %.pn327.pn, %624 ], [ %.pn323, %559 ], [ %.pn319, %515 ], [ %.pn316, %465 ], [ %.pn313, %439 ], [ %.pn309, %397 ], [ %.pn299.pn.pn.pn.pn.pn, %349 ], [ %.pn292, %240 ], [ %.pn289, %218 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %182 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #5
  resume { ptr, i32 } %.pn403.pn.pn

1437:                                             ; preds = %3, %._crit_edge
  ret void
}

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK8fastgltf4math3vecIfLm4EEixEm(ptr noundef nonnull align 4 dereferenceable(16), i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf17NormalTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(28) ptr @_ZNKRSt8optionalIN8fastgltf20OcclusionTextureInfoEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef float @_ZNSt14numeric_limitsIfE8infinityEv() local_unnamed_addr #3 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress 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 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"float", !6, i64 0}
!10 = !{!11, !9, i64 16}
!11 = !{!"_ZTSN8fastgltf8MaterialE", !12, i64 0, !21, i64 88, !26, i64 128, !15, i64 168, !31, i64 200, !33, i64 212, !20, i64 213, !20, i64 214, !9, i64 216, !9, i64 220, !9, i64 224, !9, i64 228, !34, i64 232, !41, i64 240, !47, i64 248, !53, i64 256, !59, i64 264, !65, i64 272, !71, i64 280, !15, i64 288, !77, i64 320, !83, i64 328}
!12 = !{!"_ZTSN8fastgltf7PBRDataE", !13, i64 0, !9, i64 16, !9, i64 20, !15, i64 24, !15, i64 56}
!13 = !{!"_ZTSN8fastgltf4math3vecIfLm4EEE", !14, i64 0}
!14 = !{!"_ZTSSt5arrayIfLm4EE", !6, i64 0}
!15 = !{!"_ZTSSt8optionalIN8fastgltf11TextureInfoEE", !16, i64 0}
!16 = !{!"_ZTSSt14_Optional_baseIN8fastgltf11TextureInfoELb0ELb0EE", !17, i64 0}
!17 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb0ELb0ELb0EE", !18, i64 0}
!18 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf11TextureInfoELb1ELb0ELb0EE", !19, i64 0}
!19 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf11TextureInfoEE", !6, i64 0, !20, i64 24}
!20 = !{!"bool", !6, i64 0}
!21 = !{!"_ZTSSt8optionalIN8fastgltf17NormalTextureInfoEE", !22, i64 0}
!22 = !{!"_ZTSSt14_Optional_baseIN8fastgltf17NormalTextureInfoELb0ELb0EE", !23, i64 0}
!23 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb0ELb0ELb0EE", !24, i64 0}
!24 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf17NormalTextureInfoELb1ELb0ELb0EE", !25, i64 0}
!25 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf17NormalTextureInfoEE", !6, i64 0, !20, i64 32}
!26 = !{!"_ZTSSt8optionalIN8fastgltf20OcclusionTextureInfoEE", !27, i64 0}
!27 = !{!"_ZTSSt14_Optional_baseIN8fastgltf20OcclusionTextureInfoELb0ELb0EE", !28, i64 0}
!28 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb0ELb0ELb0EE", !29, i64 0}
!29 = !{!"_ZTSSt17_Optional_payloadIN8fastgltf20OcclusionTextureInfoELb1ELb0ELb0EE", !30, i64 0}
!30 = !{!"_ZTSSt22_Optional_payload_baseIN8fastgltf20OcclusionTextureInfoEE", !6, i64 0, !20, i64 32}
!31 = !{!"_ZTSN8fastgltf4math3vecIfLm3EEE", !32, i64 0}
!32 = !{!"_ZTSSt5arrayIfLm3EE", !6, i64 0}
!33 = !{!"_ZTSN8fastgltf9AlphaModeE", !6, i64 0}
!34 = !{!"_ZTSSt10unique_ptrIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_ELb1ELb1EE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt5tupleIJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !38, i64 0}
!38 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf18MaterialAnisotropyESt14default_deleteIS1_EEE", !39, i64 0}
!39 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf18MaterialAnisotropyELb0EE", !40, i64 0}
!40 = !{!"any pointer", !6, i64 0}
!41 = !{!"_ZTSSt10unique_ptrIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !42, i64 0}
!42 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_ELb1ELb1EE", !43, i64 0}
!43 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt5tupleIJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !45, i64 0}
!45 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf17MaterialClearcoatESt14default_deleteIS1_EEE", !46, i64 0}
!46 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf17MaterialClearcoatELb0EE", !40, i64 0}
!47 = !{!"_ZTSSt10unique_ptrIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !48, i64 0}
!48 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_ELb1ELb1EE", !49, i64 0}
!49 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt5tupleIJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !51, i64 0}
!51 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf19MaterialIridescenceESt14default_deleteIS1_EEE", !52, i64 0}
!52 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf19MaterialIridescenceELb0EE", !40, i64 0}
!53 = !{!"_ZTSSt10unique_ptrIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf13MaterialSheenESt14default_deleteIS1_ELb1ELb1EE", !55, i64 0}
!55 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf13MaterialSheenESt14default_deleteIS1_EE", !56, i64 0}
!56 = !{!"_ZTSSt5tupleIJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !57, i64 0}
!57 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf13MaterialSheenESt14default_deleteIS1_EEE", !58, i64 0}
!58 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf13MaterialSheenELb0EE", !40, i64 0}
!59 = !{!"_ZTSSt10unique_ptrIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !60, i64 0}
!60 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf16MaterialSpecularESt14default_deleteIS1_ELb1ELb1EE", !61, i64 0}
!61 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf16MaterialSpecularESt14default_deleteIS1_EE", !62, i64 0}
!62 = !{!"_ZTSSt5tupleIJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !63, i64 0}
!63 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf16MaterialSpecularESt14default_deleteIS1_EEE", !64, i64 0}
!64 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf16MaterialSpecularELb0EE", !40, i64 0}
!65 = !{!"_ZTSSt10unique_ptrIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !66, i64 0}
!66 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_ELb1ELb1EE", !67, i64 0}
!67 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EE", !68, i64 0}
!68 = !{!"_ZTSSt5tupleIJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !69, i64 0}
!69 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf20MaterialTransmissionESt14default_deleteIS1_EEE", !70, i64 0}
!70 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf20MaterialTransmissionELb0EE", !40, i64 0}
!71 = !{!"_ZTSSt10unique_ptrIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !72, i64 0}
!72 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf14MaterialVolumeESt14default_deleteIS1_ELb1ELb1EE", !73, i64 0}
!73 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf14MaterialVolumeESt14default_deleteIS1_EE", !74, i64 0}
!74 = !{!"_ZTSSt5tupleIJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !75, i64 0}
!75 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf14MaterialVolumeESt14default_deleteIS1_EEE", !76, i64 0}
!76 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf14MaterialVolumeELb0EE", !40, i64 0}
!77 = !{!"_ZTSSt10unique_ptrIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !78, i64 0}
!78 = !{!"_ZTSSt15__uniq_ptr_dataIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_ELb1ELb1EE", !79, i64 0}
!79 = !{!"_ZTSSt15__uniq_ptr_implIN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EE", !80, i64 0}
!80 = !{!"_ZTSSt5tupleIJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !81, i64 0}
!81 = !{!"_ZTSSt11_Tuple_implILm0EJPN8fastgltf22MaterialPackedTexturesESt14default_deleteIS1_EEE", !82, i64 0}
!82 = !{!"_ZTSSt10_Head_baseILm0EPN8fastgltf22MaterialPackedTexturesELb0EE", !40, i64 0}
!83 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEEE", !84, i64 0, !86, i64 16, !6, i64 24}
!84 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcENSt3pmr21polymorphic_allocatorIcEEE12_Alloc_hiderE", !85, i64 0, !40, i64 8}
!85 = !{!"_ZTSNSt3pmr21polymorphic_allocatorIcEE", !40, i64 0}
!86 = !{!"long", !6, i64 0}
!87 = !{!11, !9, i64 20}
!88 = !{!11, !33, i64 212}
!89 = !{!11, !9, i64 216}
!90 = !{!11, !20, i64 213}
!91 = !{i8 0, i8 2}
!92 = !{}
!93 = !{!94, !9, i64 0}
!94 = !{!"_ZTSN8fastgltf18MaterialAnisotropyE", !9, i64 0, !9, i64 4, !15, i64 8}
!95 = !{!94, !9, i64 4}
!96 = !{!97, !9, i64 0}
!97 = !{!"_ZTSN8fastgltf17MaterialClearcoatE", !9, i64 0, !15, i64 8, !9, i64 40, !15, i64 48, !15, i64 80}
!98 = !{!97, !9, i64 40}
!99 = !{!11, !9, i64 228}
!100 = !{!11, !9, i64 220}
!101 = !{!11, !9, i64 224}
!102 = !{!103, !9, i64 0}
!103 = !{!"_ZTSN8fastgltf19MaterialIridescenceE", !9, i64 0, !15, i64 8, !9, i64 40, !9, i64 44, !9, i64 48, !15, i64 56}
!104 = !{!103, !9, i64 40}
!105 = !{!103, !9, i64 44}
!106 = !{!103, !9, i64 48}
!107 = !{!108, !9, i64 48}
!108 = !{!"_ZTSN8fastgltf13MaterialSheenE", !31, i64 0, !15, i64 16, !9, i64 48, !15, i64 56}
!109 = !{!110, !9, i64 0}
!110 = !{!"_ZTSN8fastgltf16MaterialSpecularE", !9, i64 0, !15, i64 8, !31, i64 40, !15, i64 56}
!111 = !{!112, !9, i64 0}
!112 = !{!"_ZTSN8fastgltf20MaterialTransmissionE", !9, i64 0, !15, i64 8}
!113 = !{!11, !20, i64 214}
!114 = !{!115, !9, i64 0}
!115 = !{!"_ZTSN8fastgltf14MaterialVolumeE", !9, i64 0, !15, i64 8, !9, i64 40, !31, i64 44}
!116 = !{!115, !9, i64 40}
!117 = !{!118, !40, i64 112}
!118 = !{!"_ZTSN8fastgltf8ExporterE", !119, i64 0, !120, i64 8, !20, i64 16, !121, i64 24, !121, i64 64, !40, i64 104, !40, i64 112, !131, i64 120, !131, i64 144}
!119 = !{!"_ZTSN8fastgltf5ErrorE", !6, i64 0}
!120 = !{!"_ZTSN8fastgltf13ExportOptionsE", !6, i64 0}
!121 = !{!"_ZTSNSt10filesystem7__cxx114pathE", !122, i64 0, !124, i64 32}
!122 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !123, i64 0, !86, i64 8, !6, i64 16}
!123 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !40, i64 0}
!124 = !{!"_ZTSNSt10filesystem7__cxx114path5_ListE", !125, i64 0}
!125 = !{!"_ZTSSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !126, i64 0}
!126 = !{!"_ZTSSt15__uniq_ptr_dataINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterELb1ELb1EE", !127, i64 0}
!127 = !{!"_ZTSSt15__uniq_ptr_implINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !128, i64 0}
!128 = !{!"_ZTSSt5tupleIJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !129, i64 0}
!129 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !130, i64 0}
!130 = !{!"_ZTSSt10_Head_baseILm0EPNSt10filesystem7__cxx114path5_List5_ImplELb0EE", !40, i64 0}
!131 = !{!"_ZTSSt6vectorISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE", !132, i64 0}
!132 = !{!"_ZTSSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE", !133, i64 0}
!133 = !{!"_ZTSNSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE12_Vector_implE", !134, i64 0}
!134 = !{!"_ZTSNSt12_Vector_baseISt8optionalINSt10filesystem7__cxx114pathEESaIS4_EE17_Vector_impl_dataE", !40, i64 0, !40, i64 8, !40, i64 16}
!135 = !{!40, !40, i64 0}
!136 = !{!118, !40, i64 104}
!137 = distinct !{!137, !138}
!138 = !{!"llvm.loop.mustprogress"}


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