; LLVM IR from ThePhysicsGuys/Physics3D :: application (builtinWorlds)

; 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"

%"struct.P3D::PartProperties" = type { double, double, double, %"struct.P3D::Vector" }
%"struct.P3D::Vector" = type { %union.anon }
%union.anon = type { [3 x double] }
%"class.P3D::MatrixRotationTemplate" = type { %"class.P3D::Matrix" }
%"class.P3D::Matrix" = type { [9 x double] }
%"class.P3D::Shape" = type { %"class.P3D::intrusive_ptr", %"class.P3D::DiagonalMatrix" }
%"class.P3D::intrusive_ptr" = type { ptr }
%"class.P3D::DiagonalMatrix" = type { [3 x double] }
%"struct.P3D::Vector.97" = type { %union.anon.98 }
%union.anon.98 = type { [2 x float] }
%"struct.P3D::Application::WorldBuilder::SpiderFactory" = type <{ %"class.P3D::Shape", double, i32, [4 x i8] }>
%"class.P3D::GlobalCFrame" = type { %"struct.P3D::PositionTemplate", %"class.P3D::MatrixRotationTemplate" }
%"struct.P3D::PositionTemplate" = type { %"struct.P3D::Fix", %"struct.P3D::Fix", %"struct.P3D::Fix" }
%"struct.P3D::Fix" = type { i64 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.33 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.33 = type { i64, [8 x i8] }
%"class.std::allocator.30" = type { i8 }
%"class.P3D::Application::EntityBuilder" = type <{ ptr, i32, [4 x i8] }>
%"struct.P3D::Graphics::ColorTemplate" = type { %union.anon.64 }
%union.anon.64 = type { %struct.anon.65 }
%struct.anon.65 = type { float, float, float, float }
%"struct.P3D::Application::Comp::Light::Attenuation" = type { float, float, float }
%"class.P3D::Part" = type { %"class.P3D::GlobalCFrame", ptr, ptr, %"class.P3D::Shape", double, %"struct.P3D::PartProperties" }
%"struct.P3D::CFrameTemplate" = type { %"struct.P3D::Vector", %"class.P3D::MatrixRotationTemplate" }
%"struct.P3D::Application::WorldBuilder::HollowBoxParts" = type { ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.P3D::BoundsTemplate" = type { %"struct.P3D::PositionTemplate", %"struct.P3D::PositionTemplate" }
%"struct.P3D::Graphics::Comp::Material" = type <{ %"struct.P3D::RC", [8 x %"class.std::shared_ptr.77"], %"struct.P3D::Graphics::ColorTemplate", float, float, float, [4 x i8] }>
%"struct.P3D::RC" = type { ptr, i64 }
%"class.std::shared_ptr.77" = type { %"class.std::__shared_ptr.78" }
%"class.std::__shared_ptr.78" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.P3D::Vector.80" = type { %union.anon.81 }
%union.anon.81 = type { [4 x float] }
%"class.P3D::ConstraintGroup" = type { %"class.std::vector.83" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.P3D::AttachedPart" = type { %"struct.P3D::CFrameTemplate", ptr }
%"class.P3D::intrusive_ptr.88" = type { ptr }
%"class.P3D::Polyhedron" = type { %"class.P3D::TriangleMesh" }
%"class.P3D::TriangleMesh" = type { %"class.P3D::MeshPrototype" }
%"class.P3D::MeshPrototype" = type { %"class.P3D::UniqueAlignedPointer", %"class.P3D::UniqueAlignedPointer.90", i32, i32 }
%"class.P3D::UniqueAlignedPointer" = type { ptr }
%"class.P3D::UniqueAlignedPointer.90" = type { ptr }
%"struct.P3D::Graphics::Comp::Mesh" = type <{ %"struct.P3D::RC", i64, i32, i8, [3 x i8] }>
%"struct.P3D::Graphics::ExtendedTriangleMesh" = type { %"class.P3D::TriangleMesh", %"class.std::shared_ptr.91", %"class.std::shared_ptr.94", %"class.std::shared_ptr.91", %"class.std::shared_ptr.91" }
%"class.std::shared_ptr.94" = type { %"class.std::__shared_ptr.95" }
%"class.std::__shared_ptr.95" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.91" = type { %"class.std::__shared_ptr.92" }
%"class.std::__shared_ptr.92" = type { ptr, %"class.std::__shared_count" }
%"class.P3D::Application::Screen" = type { %"class.P3D::Engine::Registry", ptr, ptr, %"struct.P3D::Vector.50", %"struct.P3D::Application::Camera", %"class.P3D::Engine::LayerStack", %"class.P3D::Application::EventHandler", %"class.Util::Properties", %"class.std::shared_ptr", ptr, ptr }
%"class.P3D::Engine::Registry" = type <{ %"class.std::set", %"class.std::vector.37", %"class.std::unordered_map", %"class.std::queue", i32, [4 x i8] }>
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, P3D::Engine::Registry<unsigned long>::entity_compare>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, P3D::Engine::Registry<unsigned long>::entity_compare>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.37" = type { %"struct.std::_Vector_base.38" }
%"struct.std::_Vector_base.38" = type { %"struct.std::_Vector_base<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *, std::allocator<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *, std::allocator<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *, std::allocator<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *, std::allocator<std::unordered_multimap<unsigned int, P3D::intrusive_ptr<P3D::RC>> *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::queue" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int>>::_Deque_impl" }
%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int>>::_Deque_impl" = type { %"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int>>::_Deque_impl_data" }
%"struct.std::_Deque_base<unsigned int, std::allocator<unsigned int>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"struct.P3D::Vector.50" = type { %union.anon.51 }
%union.anon.51 = type { [2 x i32] }
%"struct.P3D::Application::Camera" = type { i8, double, double, %"struct.P3D::Vector", i8, double, double, %"struct.P3D::Vector", i8, i8, %"class.P3D::GlobalCFrame", double, double, i8, double, float, float, float, float, %"class.P3D::Matrix.53", %"class.P3D::Matrix.53", %"class.P3D::Matrix.53", %"class.P3D::Matrix.53", %"class.P3D::Matrix.53", ptr }
%"class.P3D::Matrix.53" = type { [16 x float] }
%"class.P3D::Engine::LayerStack" = type <{ %"class.std::vector.54", i32, [4 x i8] }>
%"class.std::vector.54" = type { %"struct.std::_Vector_base.55" }
%"struct.std::_Vector_base.55" = type { %"struct.std::_Vector_base<P3D::Engine::Layer *, std::allocator<P3D::Engine::Layer *>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::Engine::Layer *, std::allocator<P3D::Engine::Layer *>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::Engine::Layer *, std::allocator<P3D::Engine::Layer *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::Engine::Layer *, std::allocator<P3D::Engine::Layer *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.P3D::Application::EventHandler" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.Util::Properties" = type { %"class.std::__cxx11::basic_string", %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree.59" }
%"class.std::_Rb_tree.59" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"struct.P3D::Application::ExtendedPart" = type <{ %"class.P3D::Part", i32, [4 x i8] }>
%"class.P3D::MotorizedPhysical" = type { %"class.P3D::Physical", %"struct.P3D::Vector", %"struct.P3D::Vector", double, %"struct.P3D::Vector", %"class.P3D::SymmetricMatrix", %"class.P3D::SymmetricMatrix", %"struct.P3D::Motion" }
%"class.P3D::Physical" = type { %"class.P3D::RigidBody", ptr, %"class.P3D::UnorderedVector.71" }
%"class.P3D::RigidBody" = type { ptr, %"class.P3D::UnorderedVector", double, %"struct.P3D::Vector", %"class.P3D::SymmetricMatrix" }
%"class.P3D::UnorderedVector" = type { %"class.std::vector.66" }
%"class.std::vector.66" = type { %"struct.std::_Vector_base.67" }
%"struct.std::_Vector_base.67" = type { %"struct.std::_Vector_base<P3D::AttachedPart, std::allocator<P3D::AttachedPart>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::AttachedPart, std::allocator<P3D::AttachedPart>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::AttachedPart, std::allocator<P3D::AttachedPart>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::AttachedPart, std::allocator<P3D::AttachedPart>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.P3D::UnorderedVector.71" = type { %"class.std::vector.72" }
%"class.std::vector.72" = type { %"struct.std::_Vector_base.73" }
%"struct.std::_Vector_base.73" = type { %"struct.std::_Vector_base<P3D::ConnectedPhysical, std::allocator<P3D::ConnectedPhysical>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::ConnectedPhysical, std::allocator<P3D::ConnectedPhysical>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::ConnectedPhysical, std::allocator<P3D::ConnectedPhysical>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::ConnectedPhysical, std::allocator<P3D::ConnectedPhysical>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.P3D::SymmetricMatrix" = type { [6 x double] }
%"struct.P3D::Motion" = type { %"struct.P3D::TranslationalMotion", %"struct.P3D::RotationalMotion" }
%"struct.P3D::TranslationalMotion" = type { %"struct.P3D::TaylorExpansion" }
%"struct.P3D::TaylorExpansion" = type { %"struct.P3D::Derivatives" }
%"struct.P3D::Derivatives" = type { [2 x %"struct.P3D::Vector"] }
%"struct.P3D::RotationalMotion" = type { %"struct.P3D::TaylorExpansion" }
%"class.P3D::WorldPrototype" = type { ptr, %"class.std::vector", %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.15", %"class.std::vector.20", %"struct.P3D::ColissionBuffer", i64, i64, double }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<P3D::ColissionLayer, std::allocator<P3D::ColissionLayer>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::ColissionLayer, std::allocator<P3D::ColissionLayer>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::ColissionLayer, std::allocator<P3D::ColissionLayer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::ColissionLayer, std::allocator<P3D::ColissionLayer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<P3D::MotorizedPhysical *, std::allocator<P3D::MotorizedPhysical *>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::MotorizedPhysical *, std::allocator<P3D::MotorizedPhysical *>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::MotorizedPhysical *, std::allocator<P3D::MotorizedPhysical *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::MotorizedPhysical *, std::allocator<P3D::MotorizedPhysical *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<P3D::ExternalForce *, std::allocator<P3D::ExternalForce *>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::ExternalForce *, std::allocator<P3D::ExternalForce *>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::ExternalForce *, std::allocator<P3D::ExternalForce *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::ExternalForce *, std::allocator<P3D::ExternalForce *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<P3D::ConstraintGroup, std::allocator<P3D::ConstraintGroup>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::ConstraintGroup, std::allocator<P3D::ConstraintGroup>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::ConstraintGroup, std::allocator<P3D::ConstraintGroup>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::ConstraintGroup, std::allocator<P3D::ConstraintGroup>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<P3D::SoftLink *, std::allocator<P3D::SoftLink *>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::SoftLink *, std::allocator<P3D::SoftLink *>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::SoftLink *, std::allocator<P3D::SoftLink *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::SoftLink *, std::allocator<P3D::SoftLink *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.P3D::ColissionBuffer" = type { %"class.std::vector.25", %"class.std::vector.25" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = type { %"struct.std::_Vector_base<P3D::Colission, std::allocator<P3D::Colission>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::Colission, std::allocator<P3D::Colission>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::Colission, std::allocator<P3D::Colission>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::Colission, std::allocator<P3D::Colission>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN3P3D11Application12WorldBuilder15basicPropertiesE = external global %"struct.P3D::PartProperties", align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined8IDENTITYE = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_180E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN3P3D11Application12WorldBuilder8triangleE = external global %"class.P3D::Shape", align 8
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN3P3D6Engine8RegistryImE11null_entityE = external dso_local global i32, align 4
@.str.41 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.47 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [6 x i8], align 1
@constinit = external hidden constant [9 x %"struct.P3D::Vector.97"], align 4
@.str.56 = external hidden unnamed_addr constant [10 x i8], align 1
@constinit.57 = external hidden constant [3 x %"struct.P3D::Vector.97"], align 4
@.str.58 = external hidden unnamed_addr constant [12 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind noalias writable sret(%"class.P3D::MatrixRotationTemplate") align 8, double noundef, double noundef, double noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), double noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

declare void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef, double noundef, double noundef) #4

declare i32 @__gxx_personality_v0(...)

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

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

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

declare void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

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

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

718:                                              ; preds = %2
  %719 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %5, i64 1
  store ptr %719, ptr %6, align 8
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %719, double noundef 5.000000e-01, i32 noundef 6)
          to label %720 unwind label %995

720:                                              ; preds = %718
  %721 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %5, i64 2
  store ptr %721, ptr %6, align 8
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %721, double noundef 5.000000e-01, i32 noundef 8)
          to label %722 unwind label %995

722:                                              ; preds = %720
  %723 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %5, i64 3
  store ptr %723, ptr %6, align 8
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %723, double noundef 5.000000e-01, i32 noundef 10)
          to label %724 unwind label %995

724:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #14
  %725 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %726 unwind label %1006

726:                                              ; preds = %724
  store i1 true, ptr %16, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %10, double noundef 1.000000e+00, double noundef 4.900000e-01, double noundef 3.000000e+00)
          to label %727 unwind label %1010

727:                                              ; preds = %726
  call void @llvm.lifetime.start.p0(i64 96, ptr %11) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %11, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %728 unwind label %1014

728:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 48, ptr %12) #14
  %729 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %12, i32 0, i32 0
  store double 1.000000e+00, ptr %729, align 8, !tbaa !9
  %730 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %12, i32 0, i32 1
  store double 1.000000e+00, ptr %730, align 8, !tbaa !13
  %731 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %12, i32 0, i32 2
  store double 1.000000e+00, ptr %731, align 8, !tbaa !14
  %732 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %12, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %732, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %733 unwind label %1018

733:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #14
  store i32 0, ptr %15, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %725, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(96) %11, ptr noundef nonnull align 8 dereferenceable(48) %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %734 unwind label %1022

734:                                              ; preds = %733
  store i1 false, ptr %16, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %11) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #14
  store ptr %725, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #14
  %735 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %736 unwind label %1032

736:                                              ; preds = %734
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %18, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 3.000000e+00)
          to label %737 unwind label %1036

737:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 96, ptr %19) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %19, double noundef 2.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %738 unwind label %1040

738:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 48, ptr %20) #14
  %739 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %20, i32 0, i32 0
  store double 1.000000e+00, ptr %739, align 8, !tbaa !9
  %740 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %20, i32 0, i32 1
  store double 1.000000e+00, ptr %740, align 8, !tbaa !13
  %741 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %20, i32 0, i32 2
  store double 1.000000e+00, ptr %741, align 8, !tbaa !14
  %742 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %20, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %742, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %743 unwind label %1044

743:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #14
  store i32 0, ptr %23, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %735, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(96) %19, ptr noundef nonnull align 8 dereferenceable(48) %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %744 unwind label %1048

744:                                              ; preds = %743
  store i1 false, ptr %24, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %19) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #14
  store ptr %735, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #14
  %745 = load ptr, ptr %3, align 8, !tbaa !5
  %746 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %745, i32 0, i32 0
  %747 = load ptr, ptr %9, align 8, !tbaa !5
  %748 = getelementptr inbounds %"struct.P3D::Application::ExtendedPart", ptr %747, i32 0, i32 1
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEERKj(ptr noundef nonnull align 8 dereferenceable(12) %25, ptr noundef nonnull align 8 dereferenceable(212) %746, ptr noundef nonnull align 4 dereferenceable(4) %748)
          to label %749 unwind label %1058

749:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #14
  invoke void @_ZN3P3D8Graphics13ColorTemplateIfEC2Efff(ptr noundef nonnull align 4 dereferenceable(16) %26, float noundef 0x3FB99999A0000000, float noundef 0x3FEE147AE0000000, float noundef 0x3FDF5C2900000000)
          to label %750 unwind label %1062

750:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #14
  store i32 500, ptr %27, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 12, ptr %28) #14
  %751 = getelementptr inbounds %"struct.P3D::Application::Comp::Light::Attenuation", ptr %28, i32 0, i32 0
  store float 0x3FE99999A0000000, ptr %751, align 4, !tbaa !17
  %752 = getelementptr inbounds %"struct.P3D::Application::Comp::Light::Attenuation", ptr %28, i32 0, i32 1
  store float 5.000000e-01, ptr %752, align 4, !tbaa !20
  %753 = getelementptr inbounds %"struct.P3D::Application::Comp::Light::Attenuation", ptr %28, i32 0, i32 2
  store float 0x3FC99999A0000000, ptr %753, align 4, !tbaa !21
  %754 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder5lightIJNS_8Graphics13ColorTemplateIfEEiNS0_4Comp5Light11AttenuationEEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %25, ptr noundef nonnull align 4 dereferenceable(16) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(12) %28)
          to label %755 unwind label %1066

755:                                              ; preds = %750
  call void @llvm.lifetime.end.p0(i64 12, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #14
  %756 = load ptr, ptr %4, align 8, !tbaa !5
  %757 = load ptr, ptr %9, align 8, !tbaa !5
  %758 = load ptr, ptr %756, align 8, !tbaa !22
  %759 = getelementptr inbounds ptr, ptr %758, i64 4
  %760 = load ptr, ptr %759, align 8
  invoke void %760(ptr noundef nonnull align 8 dereferenceable(224) %756, ptr noundef %757, i32 noundef 0)
          to label %761 unwind label %1032

761:                                              ; preds = %755
  %762 = load ptr, ptr %4, align 8, !tbaa !5
  %763 = load ptr, ptr %17, align 8, !tbaa !5
  %764 = load ptr, ptr %762, align 8, !tbaa !22
  %765 = getelementptr inbounds ptr, ptr %764, i64 4
  %766 = load ptr, ptr %765, align 8
  invoke void %766(ptr noundef nonnull align 8 dereferenceable(224) %762, ptr noundef %763, i32 noundef 0)
          to label %767 unwind label %1032

767:                                              ; preds = %761
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #14
  %768 = load ptr, ptr %3, align 8, !tbaa !5
  %769 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %768, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %30, ptr noundef nonnull align 8 dereferenceable(212) %769)
          to label %770 unwind label %1074

770:                                              ; preds = %767
  %771 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA11_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %30, ptr noundef nonnull align 1 dereferenceable(11) @.str.2)
          to label %772 unwind label %1074

772:                                              ; preds = %770
  %773 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %771)
          to label %774 unwind label %1074

774:                                              ; preds = %772
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #14
  store i32 %773, ptr %29, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #14
  %775 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %776 unwind label %1078

776:                                              ; preds = %774
  store i1 true, ptr %36, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %32, double noundef 1.000000e+00)
          to label %777 unwind label %1082

777:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 96, ptr %33) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %33, double noundef -1.500000e+01, double noundef 4.000000e+00, double noundef 1.300000e+01)
          to label %778 unwind label %1086

778:                                              ; preds = %777
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %779 unwind label %1090

779:                                              ; preds = %778
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %775, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(96) %33, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %780 unwind label %1094

780:                                              ; preds = %779
  store i1 false, ptr %36, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %33) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #14
  store ptr %775, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %37, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %781 unwind label %1104

781:                                              ; preds = %780
  %782 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %783 unwind label %1108

783:                                              ; preds = %781
  store i1 true, ptr %49, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %38) #14
  %784 = load ptr, ptr %31, align 8, !tbaa !5
  %785 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %786 unwind label %1112

786:                                              ; preds = %783
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %785, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %787 unwind label %1116

787:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 96, ptr %39) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #14
  store double 0.000000e+00, ptr %40, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #14
  store double 0.000000e+00, ptr %41, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #14
  store double 0.000000e+00, ptr %42, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %39, ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined8IDENTITYE)
          to label %788 unwind label %1120

788:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 96, ptr %43) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #14
  store double 0.000000e+00, ptr %44, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #14
  store double 0.000000e+00, ptr %45, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #14
  store double 0.000000e+00, ptr %46, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %43, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %789 unwind label %1124

789:                                              ; preds = %788
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %38, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %784, ptr noundef %785, ptr noundef nonnull align 8 dereferenceable(96) %39, ptr noundef nonnull align 8 dereferenceable(96) %43, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %790 unwind label %1124

790:                                              ; preds = %789
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %791 unwind label %1128

791:                                              ; preds = %790
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %782, ptr noundef nonnull align 8 dereferenceable(200) %38, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %792 unwind label %1132

792:                                              ; preds = %791
  store i1 false, ptr %49, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %39) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %38) #14
  %793 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %794 unwind label %1108

794:                                              ; preds = %792
  store i1 true, ptr %61, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %50) #14
  %795 = load ptr, ptr %31, align 8, !tbaa !5
  %796 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %797 unwind label %1143

797:                                              ; preds = %794
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %796, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %798 unwind label %1147

798:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 96, ptr %51) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #14
  store double 0.000000e+00, ptr %52, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #14
  store double 0.000000e+00, ptr %53, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #14
  store double 0.000000e+00, ptr %54, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %51, ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E)
          to label %799 unwind label %1151

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 96, ptr %55) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #14
  store double 0.000000e+00, ptr %56, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #14
  store double 0.000000e+00, ptr %57, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #14
  store double 0.000000e+00, ptr %58, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %55, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %800 unwind label %1155

800:                                              ; preds = %799
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %50, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %795, ptr noundef %796, ptr noundef nonnull align 8 dereferenceable(96) %51, ptr noundef nonnull align 8 dereferenceable(96) %55, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %801 unwind label %1155

801:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %802 unwind label %1159

802:                                              ; preds = %801
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %793, ptr noundef nonnull align 8 dereferenceable(200) %50, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %803 unwind label %1163

803:                                              ; preds = %802
  store i1 false, ptr %61, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %50) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %55) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %51) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %50) #14
  %804 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %805 unwind label %1108

805:                                              ; preds = %803
  store i1 true, ptr %73, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %62) #14
  %806 = load ptr, ptr %31, align 8, !tbaa !5
  %807 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %808 unwind label %1174

808:                                              ; preds = %805
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %807, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %809 unwind label %1178

809:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 96, ptr %63) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #14
  store double 0.000000e+00, ptr %64, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #14
  store double 0.000000e+00, ptr %65, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #14
  store double 0.000000e+00, ptr %66, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %63, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %810 unwind label %1182

810:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 96, ptr %67) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #14
  store double 0.000000e+00, ptr %68, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #14
  store double 0.000000e+00, ptr %69, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #14
  store double 0.000000e+00, ptr %70, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %67, ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %811 unwind label %1186

811:                                              ; preds = %810
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %62, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %806, ptr noundef %807, ptr noundef nonnull align 8 dereferenceable(96) %63, ptr noundef nonnull align 8 dereferenceable(96) %67, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %812 unwind label %1186

812:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %813 unwind label %1190

813:                                              ; preds = %812
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %804, ptr noundef nonnull align 8 dereferenceable(200) %62, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %814 unwind label %1194

814:                                              ; preds = %813
  store i1 false, ptr %73, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %62) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %67) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %63) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %62) #14
  %815 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %816 unwind label %1108

816:                                              ; preds = %814
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %74) #14
  %817 = load ptr, ptr %31, align 8, !tbaa !5
  %818 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %819 unwind label %1205

819:                                              ; preds = %816
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %818, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %820 unwind label %1209

820:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 96, ptr %75) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #14
  store double 0.000000e+00, ptr %76, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #14
  store double 0.000000e+00, ptr %77, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #14
  store double 0.000000e+00, ptr %78, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %75, ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_180E)
          to label %821 unwind label %1213

821:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 96, ptr %79) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #14
  store double 0.000000e+00, ptr %80, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #14
  store double 0.000000e+00, ptr %81, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #14
  store double 0.000000e+00, ptr %82, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %79, ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %822 unwind label %1217

822:                                              ; preds = %821
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %74, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %817, ptr noundef %818, ptr noundef nonnull align 8 dereferenceable(96) %75, ptr noundef nonnull align 8 dereferenceable(96) %79, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %823 unwind label %1217

823:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %824 unwind label %1221

824:                                              ; preds = %823
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %815, ptr noundef nonnull align 8 dereferenceable(200) %74, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %825 unwind label %1225

825:                                              ; preds = %824
  store i1 false, ptr %85, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %74) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %79) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %75) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %74) #14
  %826 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %827 unwind label %1108

827:                                              ; preds = %825
  store i1 true, ptr %97, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %86) #14
  %828 = load ptr, ptr %31, align 8, !tbaa !5
  %829 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %830 unwind label %1236

830:                                              ; preds = %827
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %829, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %831 unwind label %1240

831:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 96, ptr %87) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #14
  store double 0.000000e+00, ptr %88, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #14
  store double 0.000000e+00, ptr %89, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #14
  store double 0.000000e+00, ptr %90, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %87, ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
          to label %832 unwind label %1244

832:                                              ; preds = %831
  call void @llvm.lifetime.start.p0(i64 96, ptr %91) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #14
  store double 0.000000e+00, ptr %92, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #14
  store double 0.000000e+00, ptr %93, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #14
  store double 0.000000e+00, ptr %94, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %91, ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %833 unwind label %1248

833:                                              ; preds = %832
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %86, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %828, ptr noundef %829, ptr noundef nonnull align 8 dereferenceable(96) %87, ptr noundef nonnull align 8 dereferenceable(96) %91, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %834 unwind label %1248

834:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %96) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %835 unwind label %1252

835:                                              ; preds = %834
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %826, ptr noundef nonnull align 8 dereferenceable(200) %86, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %836 unwind label %1256

836:                                              ; preds = %835
  store i1 false, ptr %97, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %86) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %91) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %87) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %86) #14
  %837 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %838 unwind label %1108

838:                                              ; preds = %836
  store i1 true, ptr %109, align 1
  call void @llvm.lifetime.start.p0(i64 200, ptr %98) #14
  %839 = load ptr, ptr %31, align 8, !tbaa !5
  %840 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %841 unwind label %1267

841:                                              ; preds = %838
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %840, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %842 unwind label %1271

842:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 96, ptr %99) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #14
  store double 0.000000e+00, ptr %100, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #14
  store double 0.000000e+00, ptr %101, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #14
  store double 0.000000e+00, ptr %102, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %99, ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
          to label %843 unwind label %1275

843:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 96, ptr %103) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #14
  store double 0.000000e+00, ptr %104, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #14
  store double 0.000000e+00, ptr %105, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #14
  store double 0.000000e+00, ptr %106, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %103, ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %844 unwind label %1279

844:                                              ; preds = %843
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %98, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(200) %839, ptr noundef %840, ptr noundef nonnull align 8 dereferenceable(96) %99, ptr noundef nonnull align 8 dereferenceable(96) %103, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %845 unwind label %1279

845:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %846 unwind label %1283

846:                                              ; preds = %845
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %837, ptr noundef nonnull align 8 dereferenceable(200) %98, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %847 unwind label %1287

847:                                              ; preds = %846
  store i1 false, ptr %109, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %98) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %99) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr %98) #14
  %848 = load ptr, ptr %4, align 8, !tbaa !5
  %849 = load ptr, ptr %31, align 8, !tbaa !5
  %850 = load ptr, ptr %848, align 8, !tbaa !22
  %851 = getelementptr inbounds ptr, ptr %850, i64 4
  %852 = load ptr, ptr %851, align 8
  invoke void %852(ptr noundef nonnull align 8 dereferenceable(224) %848, ptr noundef %849, i32 noundef 0)
          to label %853 unwind label %1108

853:                                              ; preds = %847
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #14
  %854 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %855 unwind label %1302

855:                                              ; preds = %853
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %111, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %856 unwind label %1306

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 96, ptr %112) #14
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %112, double noundef 0.000000e+00, double noundef 7.000000e+00, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E)
          to label %857 unwind label %1310

857:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %858 unwind label %1314

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #14
  store i32 0, ptr %115, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %854, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(96) %112, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 4 dereferenceable(4) %115)
          to label %859 unwind label %1318

859:                                              ; preds = %858
  store i1 false, ptr %116, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %112) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #14
  store ptr %854, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #14
  %860 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %861 unwind label %1328

861:                                              ; preds = %859
  store i1 true, ptr %123, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %118, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %862 unwind label %1332

862:                                              ; preds = %861
  call void @llvm.lifetime.start.p0(i64 96, ptr %119) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %119)
          to label %863 unwind label %1336

863:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %864 unwind label %1340

864:                                              ; preds = %863
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #14
  store i32 0, ptr %122, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %860, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(96) %119, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 4 dereferenceable(4) %122)
          to label %865 unwind label %1344

865:                                              ; preds = %864
  store i1 false, ptr %123, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %119) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #14
  store ptr %860, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #14
  %866 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %867 unwind label %1354

867:                                              ; preds = %865
  store i1 true, ptr %130, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %125, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %868 unwind label %1358

868:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 96, ptr %126) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %126)
          to label %869 unwind label %1362

869:                                              ; preds = %868
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %128) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %870 unwind label %1366

870:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #14
  store i32 0, ptr %129, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %866, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(96) %126, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 4 dereferenceable(4) %129)
          to label %871 unwind label %1370

871:                                              ; preds = %870
  store i1 false, ptr %130, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %126) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #14
  store ptr %866, ptr %124, align 8, !tbaa !5
  %872 = load ptr, ptr %110, align 8, !tbaa !5
  %873 = load ptr, ptr %117, align 8, !tbaa !5
  %874 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %875 unwind label %1354

875:                                              ; preds = %871
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %874, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+00)
          to label %876 unwind label %1380

876:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 96, ptr %131) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #14
  store double 5.000000e-01, ptr %132, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #14
  store double 0.000000e+00, ptr %133, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #14
  store double 0.000000e+00, ptr %134, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %131, ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %877 unwind label %1384

877:                                              ; preds = %876
  call void @llvm.lifetime.start.p0(i64 96, ptr %135) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #14
  store double -5.000000e-01, ptr %136, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #14
  store double 0.000000e+00, ptr %137, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #14
  store double 0.000000e+00, ptr %138, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %135, ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %878 unwind label %1388

878:                                              ; preds = %877
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %872, ptr noundef %873, ptr noundef %874, ptr noundef nonnull align 8 dereferenceable(96) %131, ptr noundef nonnull align 8 dereferenceable(96) %135)
          to label %879 unwind label %1388

879:                                              ; preds = %878
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %135) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %131) #14
  %880 = load ptr, ptr %110, align 8, !tbaa !5
  %881 = load ptr, ptr %124, align 8, !tbaa !5
  %882 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %883 unwind label %1354

883:                                              ; preds = %879
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %882, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+00)
          to label %884 unwind label %1393

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 96, ptr %139) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #14
  store double -5.000000e-01, ptr %140, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #14
  store double 0.000000e+00, ptr %141, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #14
  store double 0.000000e+00, ptr %142, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %139, ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(8) %141, ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
          to label %885 unwind label %1397

885:                                              ; preds = %884
  call void @llvm.lifetime.start.p0(i64 96, ptr %143) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #14
  store double -5.000000e-01, ptr %144, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #14
  store double 0.000000e+00, ptr %145, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #14
  store double 0.000000e+00, ptr %146, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %143, ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %886 unwind label %1401

886:                                              ; preds = %885
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %880, ptr noundef %881, ptr noundef %882, ptr noundef nonnull align 8 dereferenceable(96) %139, ptr noundef nonnull align 8 dereferenceable(96) %143)
          to label %887 unwind label %1401

887:                                              ; preds = %886
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %143) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %139) #14
  %888 = load ptr, ptr %4, align 8, !tbaa !5
  %889 = load ptr, ptr %110, align 8, !tbaa !5
  %890 = load ptr, ptr %888, align 8, !tbaa !22
  %891 = getelementptr inbounds ptr, ptr %890, i64 4
  %892 = load ptr, ptr %891, align 8
  invoke void %892(ptr noundef nonnull align 8 dereferenceable(224) %888, ptr noundef %889, i32 noundef 0)
          to label %893 unwind label %1354

893:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 24, ptr %147) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %147, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0.000000e+00) #14
  %894 = load ptr, ptr %110, align 8, !tbaa !5
  %895 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %894)
          to label %896 unwind label %1406

896:                                              ; preds = %893
  %897 = getelementptr inbounds %"class.P3D::MotorizedPhysical", ptr %895, i32 0, i32 7
  %898 = getelementptr inbounds %"struct.P3D::Motion", ptr %897, i32 0, i32 1
  %899 = getelementptr inbounds %"struct.P3D::RotationalMotion", ptr %898, i32 0, i32 0
  %900 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3P3D15TaylorExpansionINS_6VectorIdLm3EEELm2EEixEm(ptr noundef nonnull align 8 dereferenceable(48) %899, i64 noundef 0)
          to label %901 unwind label %1406

901:                                              ; preds = %896
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %900, ptr align 8 %147, i64 24, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 24, ptr %147) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  %902 = load ptr, ptr %4, align 8, !tbaa !5
  %903 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %904 unwind label %1413

904:                                              ; preds = %901
  store i1 true, ptr %154, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %148) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %148, double noundef 2.000000e+00)
          to label %905 unwind label %1417

905:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 96, ptr %149) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %149, double noundef 1.000000e+01, double noundef 3.000000e+00, double noundef 1.000000e+01)
          to label %906 unwind label %1421

906:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 48, ptr %150) #14
  %907 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %150, i32 0, i32 0
  store double 1.000000e+00, ptr %907, align 8, !tbaa !9
  %908 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %150, i32 0, i32 1
  store double 3.000000e-01, ptr %908, align 8, !tbaa !13
  %909 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %150, i32 0, i32 2
  store double 0x3FE6666666666666, ptr %909, align 8, !tbaa !14
  %910 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %150, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %910, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %911 unwind label %1425

911:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #14
  store i32 0, ptr %153, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %903, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(96) %149, ptr noundef nonnull align 8 dereferenceable(48) %150, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull align 4 dereferenceable(4) %153)
          to label %912 unwind label %1429

912:                                              ; preds = %911
  store i1 false, ptr %154, align 1
  %913 = load ptr, ptr %902, align 8, !tbaa !22
  %914 = getelementptr inbounds ptr, ptr %913, i64 4
  %915 = load ptr, ptr %914, align 8
  invoke void %915(ptr noundef nonnull align 8 dereferenceable(224) %902, ptr noundef %903, i32 noundef 0)
          to label %916 unwind label %1429

916:                                              ; preds = %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %150) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %149) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #14
  call void @llvm.lifetime.start.p0(i64 48, ptr %155) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %157) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %157, double noundef 1.200000e+01, double noundef 3.000000e+00, double noundef 1.400000e+01) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %158) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %158, double noundef 2.000000e+01, double noundef 8.000000e+00, double noundef 2.000000e+01) #14
  call void @_ZN3P3D14BoundsTemplateINS_3FixILl32EEEEC2ERKNS_16PositionTemplateIS2_EES7_(ptr noundef nonnull align 8 dereferenceable(48) %156, ptr noundef nonnull align 8 dereferenceable(24) %157, ptr noundef nonnull align 8 dereferenceable(24) %158) #14
  invoke void @_ZN3P3D11Application12WorldBuilder14buildHollowBoxENS_14BoundsTemplateINS_3FixILl32EEEEEd(ptr dead_on_unwind writable sret(%"struct.P3D::Application::WorldBuilder::HollowBoxParts") align 8 %155, ptr noundef byval(%"struct.P3D::BoundsTemplate") align 8 %156, double noundef 3.000000e-01)
          to label %917 unwind label %1439

917:                                              ; preds = %916
  call void @llvm.lifetime.end.p0(i64 24, ptr %158) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %157) #14
  %918 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::HollowBoxParts", ptr %155, i32 0, i32 4
  %919 = load ptr, ptr %918, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 176, ptr %159) #14
  invoke void @_ZN3P3D8Graphics13ColorTemplateIfEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %160, float noundef 0x3FD99999A0000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00, float noundef 0x3FD3333340000000)
          to label %920 unwind label %1443

920:                                              ; preds = %917
  %921 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %160, i32 0, i32 0
  %922 = load <2 x float>, ptr %921, align 4
  %923 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %160, i32 0, i32 1
  %924 = load <2 x float>, ptr %923, align 4
  invoke void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %159, <2 x float> %922, <2 x float> %924, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
          to label %925 unwind label %1443

925:                                              ; preds = %920
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %919, ptr noundef nonnull align 8 dereferenceable(172) %159)
          to label %926 unwind label %1447

926:                                              ; preds = %925
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %159) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr %159) #14
  %927 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::HollowBoxParts", ptr %155, i32 0, i32 5
  %928 = load ptr, ptr %927, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 176, ptr %161) #14
  invoke void @_ZN3P3D8Graphics13ColorTemplateIfEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %162, float noundef 0x3FD99999A0000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00, float noundef 0x3FD3333340000000)
          to label %929 unwind label %1452

929:                                              ; preds = %926
  %930 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %162, i32 0, i32 0
  %931 = load <2 x float>, ptr %930, align 4
  %932 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %162, i32 0, i32 1
  %933 = load <2 x float>, ptr %932, align 4
  invoke void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %161, <2 x float> %931, <2 x float> %933, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
          to label %934 unwind label %1452

934:                                              ; preds = %929
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %928, ptr noundef nonnull align 8 dereferenceable(172) %161)
          to label %935 unwind label %1456

935:                                              ; preds = %934
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %161) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr %161) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %163) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %163, double noundef 5.000000e+00, double noundef 1.000000e+00, double noundef 5.000000e+00)
          to label %936 unwind label %1461

936:                                              ; preds = %935
  invoke void @_ZN3P3D11Application12WorldBuilder8buildCarERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(96) %163, i32 noundef 0)
          to label %937 unwind label %1461

937:                                              ; preds = %936
  call void @llvm.lifetime.end.p0(i64 96, ptr %163) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %164) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %165) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %165, double noundef 1.500000e-01, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %938 unwind label %1465

938:                                              ; preds = %937
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %164, double noundef -1.000000e+01, double noundef 1.000000e+00, double noundef -1.000000e+01, ptr noundef nonnull align 8 dereferenceable(72) %165)
          to label %939 unwind label %1465

939:                                              ; preds = %938
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %164, double noundef 1.500000e+00, i32 noundef 0)
          to label %940 unwind label %1465

940:                                              ; preds = %939
  call void @llvm.lifetime.end.p0(i64 72, ptr %165) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %164) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %166) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %167) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %167, double noundef 0.000000e+00, double noundef 1.570750e+00, double noundef -1.500000e-01)
          to label %941 unwind label %1469

941:                                              ; preds = %940
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %166, double noundef -1.250000e+01, double noundef 1.000000e+00, double noundef -1.400000e+01, ptr noundef nonnull align 8 dereferenceable(72) %167)
          to label %942 unwind label %1469

942:                                              ; preds = %941
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %166, double noundef 1.500000e+00, i32 noundef 0)
          to label %943 unwind label %1469

943:                                              ; preds = %942
  call void @llvm.lifetime.end.p0(i64 72, ptr %167) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %166) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %168) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %169) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %169, double noundef -1.500000e-01, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %944 unwind label %1473

944:                                              ; preds = %943
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %168, double noundef -1.650000e+01, double noundef 1.000000e+00, double noundef -1.150000e+01, ptr noundef nonnull align 8 dereferenceable(72) %169)
          to label %945 unwind label %1473

945:                                              ; preds = %944
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %168, double noundef -1.500000e+00, i32 noundef 0)
          to label %946 unwind label %1473

946:                                              ; preds = %945
  call void @llvm.lifetime.end.p0(i64 72, ptr %169) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %168) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %171) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %171, double noundef 0.000000e+00, double noundef 1.570750e+00, double noundef 1.500000e-01)
          to label %947 unwind label %1477

947:                                              ; preds = %946
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %170, double noundef -1.400000e+01, double noundef 1.000000e+00, double noundef -7.500000e+00, ptr noundef nonnull align 8 dereferenceable(72) %171)
          to label %948 unwind label %1477

948:                                              ; preds = %947
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %170, double noundef -1.500000e+00, i32 noundef 0)
          to label %949 unwind label %1477

949:                                              ; preds = %948
  call void @llvm.lifetime.end.p0(i64 72, ptr %171) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %170) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #14
  store i32 0, ptr %172, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #14
  store i32 3, ptr %173, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #14
  store i32 0, ptr %174, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #14
  store i32 3, ptr %175, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #14
  store i32 0, ptr %176, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #14
  store i32 3, ptr %177, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #14
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %950, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %179, ptr noundef nonnull align 8 dereferenceable(212) %951)
          to label %952 unwind label %1481

952:                                              ; preds = %949
  %953 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %179, ptr noundef nonnull align 1 dereferenceable(6) @.str.14)
          to label %954 unwind label %1481

954:                                              ; preds = %952
  %955 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %953)
          to label %956 unwind label %1481

956:                                              ; preds = %954
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #14
  store i32 %955, ptr %178, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %181) #14
  %957 = load ptr, ptr %3, align 8, !tbaa !5
  %958 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %957, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %181, ptr noundef nonnull align 8 dereferenceable(212) %958)
          to label %959 unwind label %1485

959:                                              ; preds = %956
  %960 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %181, ptr noundef nonnull align 1 dereferenceable(10) @.str.15)
          to label %961 unwind label %1485

961:                                              ; preds = %959
  %962 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %960)
          to label %963 unwind label %1485

963:                                              ; preds = %961
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #14
  store i32 %962, ptr %180, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %183) #14
  %964 = load ptr, ptr %3, align 8, !tbaa !5
  %965 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %964, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %183, ptr noundef nonnull align 8 dereferenceable(212) %965)
          to label %966 unwind label %1489

966:                                              ; preds = %963
  %967 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %183, ptr noundef nonnull align 1 dereferenceable(10) @.str.16)
          to label %968 unwind label %1489

968:                                              ; preds = %966
  %969 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %967)
          to label %970 unwind label %1489

970:                                              ; preds = %968
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #14
  store i32 %969, ptr %182, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %185) #14
  %971 = load ptr, ptr %3, align 8, !tbaa !5
  %972 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %971, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %185, ptr noundef nonnull align 8 dereferenceable(212) %972)
          to label %973 unwind label %1493

973:                                              ; preds = %970
  %974 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA8_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %185, ptr noundef nonnull align 1 dereferenceable(8) @.str.17)
          to label %975 unwind label %1493

975:                                              ; preds = %973
  %976 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %974)
          to label %977 unwind label %1493

977:                                              ; preds = %975
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #14
  store i32 %976, ptr %184, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %187) #14
  %978 = load ptr, ptr %3, align 8, !tbaa !5
  %979 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %978, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %187, ptr noundef nonnull align 8 dereferenceable(212) %979)
          to label %980 unwind label %1497

980:                                              ; preds = %977
  %981 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA8_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %187, ptr noundef nonnull align 1 dereferenceable(8) @.str.18)
          to label %982 unwind label %1497

982:                                              ; preds = %980
  %983 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %981)
          to label %984 unwind label %1497

984:                                              ; preds = %982
  call void @llvm.lifetime.end.p0(i64 16, ptr %187) #14
  store i32 %983, ptr %186, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 96, ptr %188) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %189) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %189, double noundef 0.000000e+00, double noundef 1.500000e+01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %190) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %190, double noundef 7.853750e-01, double noundef 7.853750e-01, double noundef 0.000000e+00)
          to label %985 unwind label %1501

985:                                              ; preds = %984
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %188, ptr noundef nonnull align 8 dereferenceable(24) %189, ptr noundef nonnull align 8 dereferenceable(72) %190)
          to label %986 unwind label %1501

986:                                              ; preds = %985
  call void @llvm.lifetime.end.p0(i64 72, ptr %190) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %189) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #14
  %987 = load i32, ptr %172, align 4, !tbaa !15
  %988 = sitofp i32 %987 to double
  store double %988, ptr %191, align 8, !tbaa !24
  br label %989

989:                                              ; preds = %1773, %986
  %990 = load double, ptr %191, align 8, !tbaa !24
  %991 = load i32, ptr %173, align 4, !tbaa !15
  %992 = sitofp i32 %991 to double
  %993 = fcmp olt double %990, %992
  br i1 %993, label %1505, label %994

994:                                              ; preds = %989
  store i32 2, ptr %192, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #14
  br label %1776

995:                                              ; preds = %722, %720, %718, %2
  %996 = landingpad { ptr, i32 }
          cleanup
  %997 = extractvalue { ptr, i32 } %996, 0
  store ptr %997, ptr %7, align 8
  %998 = extractvalue { ptr, i32 } %996, 1
  store i32 %998, ptr %8, align 4
  %999 = load ptr, ptr %6, align 8
  %1000 = icmp eq ptr %5, %999
  br i1 %1000, label %1005, label %1001

1001:                                             ; preds = %1001, %995
  %1002 = phi ptr [ %999, %995 ], [ %1003, %1001 ]
  %1003 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %1002, i64 -1
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %1003) #14
  %1004 = icmp eq ptr %1003, %5
  br i1 %1004, label %1005, label %1001

1005:                                             ; preds = %1001, %995
  br label %4030

1006:                                             ; preds = %724
  %1007 = landingpad { ptr, i32 }
          cleanup
  %1008 = extractvalue { ptr, i32 } %1007, 0
  store ptr %1008, ptr %7, align 8
  %1009 = extractvalue { ptr, i32 } %1007, 1
  store i32 %1009, ptr %8, align 4
  br label %1073

1010:                                             ; preds = %726
  %1011 = landingpad { ptr, i32 }
          cleanup
  %1012 = extractvalue { ptr, i32 } %1011, 0
  store ptr %1012, ptr %7, align 8
  %1013 = extractvalue { ptr, i32 } %1011, 1
  store i32 %1013, ptr %8, align 4
  br label %1028

1014:                                             ; preds = %727
  %1015 = landingpad { ptr, i32 }
          cleanup
  %1016 = extractvalue { ptr, i32 } %1015, 0
  store ptr %1016, ptr %7, align 8
  %1017 = extractvalue { ptr, i32 } %1015, 1
  store i32 %1017, ptr %8, align 4
  br label %1027

1018:                                             ; preds = %728
  %1019 = landingpad { ptr, i32 }
          cleanup
  %1020 = extractvalue { ptr, i32 } %1019, 0
  store ptr %1020, ptr %7, align 8
  %1021 = extractvalue { ptr, i32 } %1019, 1
  store i32 %1021, ptr %8, align 4
  br label %1026

1022:                                             ; preds = %733
  %1023 = landingpad { ptr, i32 }
          cleanup
  %1024 = extractvalue { ptr, i32 } %1023, 0
  store ptr %1024, ptr %7, align 8
  %1025 = extractvalue { ptr, i32 } %1023, 1
  store i32 %1025, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #14
  br label %1026

1026:                                             ; preds = %1022, %1018
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #14
  br label %1027

1027:                                             ; preds = %1026, %1014
  call void @llvm.lifetime.end.p0(i64 96, ptr %11) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #14
  br label %1028

1028:                                             ; preds = %1027, %1010
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #14
  %1029 = load i1, ptr %16, align 1
  br i1 %1029, label %1030, label %1031

1030:                                             ; preds = %1028
  call void @_ZdlPvm(ptr noundef %725, i64 noundef 208) #16
  br label %1031

1031:                                             ; preds = %1030, %1028
  br label %1073

1032:                                             ; preds = %761, %755, %734
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %7, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %8, align 4
  br label %1072

1036:                                             ; preds = %736
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %7, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %8, align 4
  br label %1054

1040:                                             ; preds = %737
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %7, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %8, align 4
  br label %1053

1044:                                             ; preds = %738
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %7, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %8, align 4
  br label %1052

1048:                                             ; preds = %743
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %7, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #14
  br label %1052

1052:                                             ; preds = %1048, %1044
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #14
  br label %1053

1053:                                             ; preds = %1052, %1040
  call void @llvm.lifetime.end.p0(i64 96, ptr %19) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #14
  br label %1054

1054:                                             ; preds = %1053, %1036
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #14
  %1055 = load i1, ptr %24, align 1
  br i1 %1055, label %1056, label %1057

1056:                                             ; preds = %1054
  call void @_ZdlPvm(ptr noundef %735, i64 noundef 208) #16
  br label %1057

1057:                                             ; preds = %1056, %1054
  br label %1072

1058:                                             ; preds = %744
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %7, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %8, align 4
  br label %1071

1062:                                             ; preds = %749
  %1063 = landingpad { ptr, i32 }
          cleanup
  %1064 = extractvalue { ptr, i32 } %1063, 0
  store ptr %1064, ptr %7, align 8
  %1065 = extractvalue { ptr, i32 } %1063, 1
  store i32 %1065, ptr %8, align 4
  br label %1070

1066:                                             ; preds = %750
  %1067 = landingpad { ptr, i32 }
          cleanup
  %1068 = extractvalue { ptr, i32 } %1067, 0
  store ptr %1068, ptr %7, align 8
  %1069 = extractvalue { ptr, i32 } %1067, 1
  store i32 %1069, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %28) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #14
  br label %1070

1070:                                             ; preds = %1066, %1062
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #14
  br label %1071

1071:                                             ; preds = %1070, %1058
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #14
  br label %1072

1072:                                             ; preds = %1071, %1057, %1032
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #14
  br label %1073

1073:                                             ; preds = %1072, %1031, %1006
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #14
  br label %4022

1074:                                             ; preds = %772, %770, %767
  %1075 = landingpad { ptr, i32 }
          cleanup
  %1076 = extractvalue { ptr, i32 } %1075, 0
  store ptr %1076, ptr %7, align 8
  %1077 = extractvalue { ptr, i32 } %1075, 1
  store i32 %1077, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #14
  br label %1301

1078:                                             ; preds = %774
  %1079 = landingpad { ptr, i32 }
          cleanup
  %1080 = extractvalue { ptr, i32 } %1079, 0
  store ptr %1080, ptr %7, align 8
  %1081 = extractvalue { ptr, i32 } %1079, 1
  store i32 %1081, ptr %8, align 4
  br label %1300

1082:                                             ; preds = %776
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %7, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %8, align 4
  br label %1100

1086:                                             ; preds = %777
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %7, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %8, align 4
  br label %1099

1090:                                             ; preds = %778
  %1091 = landingpad { ptr, i32 }
          cleanup
  %1092 = extractvalue { ptr, i32 } %1091, 0
  store ptr %1092, ptr %7, align 8
  %1093 = extractvalue { ptr, i32 } %1091, 1
  store i32 %1093, ptr %8, align 4
  br label %1098

1094:                                             ; preds = %779
  %1095 = landingpad { ptr, i32 }
          cleanup
  %1096 = extractvalue { ptr, i32 } %1095, 0
  store ptr %1096, ptr %7, align 8
  %1097 = extractvalue { ptr, i32 } %1095, 1
  store i32 %1097, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #14
  br label %1098

1098:                                             ; preds = %1094, %1090
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #14
  br label %1099

1099:                                             ; preds = %1098, %1086
  call void @llvm.lifetime.end.p0(i64 96, ptr %33) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #14
  br label %1100

1100:                                             ; preds = %1099, %1082
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #14
  %1101 = load i1, ptr %36, align 1
  br i1 %1101, label %1102, label %1103

1102:                                             ; preds = %1100
  call void @_ZdlPvm(ptr noundef %775, i64 noundef 208) #16
  br label %1103

1103:                                             ; preds = %1102, %1100
  br label %1300

1104:                                             ; preds = %780
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %7, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %8, align 4
  br label %1299

1108:                                             ; preds = %847, %836, %825, %814, %803, %792, %781
  %1109 = landingpad { ptr, i32 }
          cleanup
  %1110 = extractvalue { ptr, i32 } %1109, 0
  store ptr %1110, ptr %7, align 8
  %1111 = extractvalue { ptr, i32 } %1109, 1
  store i32 %1111, ptr %8, align 4
  br label %1298

1112:                                             ; preds = %783
  %1113 = landingpad { ptr, i32 }
          cleanup
  %1114 = extractvalue { ptr, i32 } %1113, 0
  store ptr %1114, ptr %7, align 8
  %1115 = extractvalue { ptr, i32 } %1113, 1
  store i32 %1115, ptr %8, align 4
  br label %1139

1116:                                             ; preds = %786
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %7, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %785, i64 noundef 48) #16
  br label %1139

1120:                                             ; preds = %787
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %7, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %8, align 4
  br label %1138

1124:                                             ; preds = %789, %788
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %7, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %8, align 4
  br label %1137

1128:                                             ; preds = %790
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %7, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %8, align 4
  br label %1136

1132:                                             ; preds = %791
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %7, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  br label %1136

1136:                                             ; preds = %1132, %1128
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %38) #14
  br label %1137

1137:                                             ; preds = %1136, %1124
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #14
  br label %1138

1138:                                             ; preds = %1137, %1120
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %39) #14
  br label %1139

1139:                                             ; preds = %1138, %1116, %1112
  call void @llvm.lifetime.end.p0(i64 200, ptr %38) #14
  %1140 = load i1, ptr %49, align 1
  br i1 %1140, label %1141, label %1142

1141:                                             ; preds = %1139
  call void @_ZdlPvm(ptr noundef %782, i64 noundef 208) #16
  br label %1142

1142:                                             ; preds = %1141, %1139
  br label %1298

1143:                                             ; preds = %794
  %1144 = landingpad { ptr, i32 }
          cleanup
  %1145 = extractvalue { ptr, i32 } %1144, 0
  store ptr %1145, ptr %7, align 8
  %1146 = extractvalue { ptr, i32 } %1144, 1
  store i32 %1146, ptr %8, align 4
  br label %1170

1147:                                             ; preds = %797
  %1148 = landingpad { ptr, i32 }
          cleanup
  %1149 = extractvalue { ptr, i32 } %1148, 0
  store ptr %1149, ptr %7, align 8
  %1150 = extractvalue { ptr, i32 } %1148, 1
  store i32 %1150, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %796, i64 noundef 48) #16
  br label %1170

1151:                                             ; preds = %798
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %7, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %8, align 4
  br label %1169

1155:                                             ; preds = %800, %799
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %7, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %8, align 4
  br label %1168

1159:                                             ; preds = %801
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %7, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %8, align 4
  br label %1167

1163:                                             ; preds = %802
  %1164 = landingpad { ptr, i32 }
          cleanup
  %1165 = extractvalue { ptr, i32 } %1164, 0
  store ptr %1165, ptr %7, align 8
  %1166 = extractvalue { ptr, i32 } %1164, 1
  store i32 %1166, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  br label %1167

1167:                                             ; preds = %1163, %1159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %50) #14
  br label %1168

1168:                                             ; preds = %1167, %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %55) #14
  br label %1169

1169:                                             ; preds = %1168, %1151
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %51) #14
  br label %1170

1170:                                             ; preds = %1169, %1147, %1143
  call void @llvm.lifetime.end.p0(i64 200, ptr %50) #14
  %1171 = load i1, ptr %61, align 1
  br i1 %1171, label %1172, label %1173

1172:                                             ; preds = %1170
  call void @_ZdlPvm(ptr noundef %793, i64 noundef 208) #16
  br label %1173

1173:                                             ; preds = %1172, %1170
  br label %1298

1174:                                             ; preds = %805
  %1175 = landingpad { ptr, i32 }
          cleanup
  %1176 = extractvalue { ptr, i32 } %1175, 0
  store ptr %1176, ptr %7, align 8
  %1177 = extractvalue { ptr, i32 } %1175, 1
  store i32 %1177, ptr %8, align 4
  br label %1201

1178:                                             ; preds = %808
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %7, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %807, i64 noundef 48) #16
  br label %1201

1182:                                             ; preds = %809
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %7, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %8, align 4
  br label %1200

1186:                                             ; preds = %811, %810
  %1187 = landingpad { ptr, i32 }
          cleanup
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %7, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %8, align 4
  br label %1199

1190:                                             ; preds = %812
  %1191 = landingpad { ptr, i32 }
          cleanup
  %1192 = extractvalue { ptr, i32 } %1191, 0
  store ptr %1192, ptr %7, align 8
  %1193 = extractvalue { ptr, i32 } %1191, 1
  store i32 %1193, ptr %8, align 4
  br label %1198

1194:                                             ; preds = %813
  %1195 = landingpad { ptr, i32 }
          cleanup
  %1196 = extractvalue { ptr, i32 } %1195, 0
  store ptr %1196, ptr %7, align 8
  %1197 = extractvalue { ptr, i32 } %1195, 1
  store i32 %1197, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #14
  br label %1198

1198:                                             ; preds = %1194, %1190
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %62) #14
  br label %1199

1199:                                             ; preds = %1198, %1186
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %67) #14
  br label %1200

1200:                                             ; preds = %1199, %1182
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %63) #14
  br label %1201

1201:                                             ; preds = %1200, %1178, %1174
  call void @llvm.lifetime.end.p0(i64 200, ptr %62) #14
  %1202 = load i1, ptr %73, align 1
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1201
  call void @_ZdlPvm(ptr noundef %804, i64 noundef 208) #16
  br label %1204

1204:                                             ; preds = %1203, %1201
  br label %1298

1205:                                             ; preds = %816
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %7, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %8, align 4
  br label %1232

1209:                                             ; preds = %819
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %7, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %818, i64 noundef 48) #16
  br label %1232

1213:                                             ; preds = %820
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %7, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %8, align 4
  br label %1231

1217:                                             ; preds = %822, %821
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %7, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %8, align 4
  br label %1230

1221:                                             ; preds = %823
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %7, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %8, align 4
  br label %1229

1225:                                             ; preds = %824
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %7, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #14
  br label %1229

1229:                                             ; preds = %1225, %1221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %74) #14
  br label %1230

1230:                                             ; preds = %1229, %1217
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %79) #14
  br label %1231

1231:                                             ; preds = %1230, %1213
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %75) #14
  br label %1232

1232:                                             ; preds = %1231, %1209, %1205
  call void @llvm.lifetime.end.p0(i64 200, ptr %74) #14
  %1233 = load i1, ptr %85, align 1
  br i1 %1233, label %1234, label %1235

1234:                                             ; preds = %1232
  call void @_ZdlPvm(ptr noundef %815, i64 noundef 208) #16
  br label %1235

1235:                                             ; preds = %1234, %1232
  br label %1298

1236:                                             ; preds = %827
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %7, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %8, align 4
  br label %1263

1240:                                             ; preds = %830
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %7, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %829, i64 noundef 48) #16
  br label %1263

1244:                                             ; preds = %831
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %7, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %8, align 4
  br label %1262

1248:                                             ; preds = %833, %832
  %1249 = landingpad { ptr, i32 }
          cleanup
  %1250 = extractvalue { ptr, i32 } %1249, 0
  store ptr %1250, ptr %7, align 8
  %1251 = extractvalue { ptr, i32 } %1249, 1
  store i32 %1251, ptr %8, align 4
  br label %1261

1252:                                             ; preds = %834
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %7, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %8, align 4
  br label %1260

1256:                                             ; preds = %835
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %7, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #14
  br label %1260

1260:                                             ; preds = %1256, %1252
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %96) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %86) #14
  br label %1261

1261:                                             ; preds = %1260, %1248
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %91) #14
  br label %1262

1262:                                             ; preds = %1261, %1244
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %87) #14
  br label %1263

1263:                                             ; preds = %1262, %1240, %1236
  call void @llvm.lifetime.end.p0(i64 200, ptr %86) #14
  %1264 = load i1, ptr %97, align 1
  br i1 %1264, label %1265, label %1266

1265:                                             ; preds = %1263
  call void @_ZdlPvm(ptr noundef %826, i64 noundef 208) #16
  br label %1266

1266:                                             ; preds = %1265, %1263
  br label %1298

1267:                                             ; preds = %838
  %1268 = landingpad { ptr, i32 }
          cleanup
  %1269 = extractvalue { ptr, i32 } %1268, 0
  store ptr %1269, ptr %7, align 8
  %1270 = extractvalue { ptr, i32 } %1268, 1
  store i32 %1270, ptr %8, align 4
  br label %1294

1271:                                             ; preds = %841
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %7, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %840, i64 noundef 48) #16
  br label %1294

1275:                                             ; preds = %842
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %7, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %8, align 4
  br label %1293

1279:                                             ; preds = %844, %843
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %7, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %8, align 4
  br label %1292

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

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

1291:                                             ; preds = %1287, %1283
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %98) #14
  br label %1292

1292:                                             ; preds = %1291, %1279
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %103) #14
  br label %1293

1293:                                             ; preds = %1292, %1275
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %99) #14
  br label %1294

1294:                                             ; preds = %1293, %1271, %1267
  call void @llvm.lifetime.end.p0(i64 200, ptr %98) #14
  %1295 = load i1, ptr %109, align 1
  br i1 %1295, label %1296, label %1297

1296:                                             ; preds = %1294
  call void @_ZdlPvm(ptr noundef %837, i64 noundef 208) #16
  br label %1297

1297:                                             ; preds = %1296, %1294
  br label %1298

1298:                                             ; preds = %1297, %1266, %1235, %1204, %1173, %1142, %1108
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #14
  br label %1299

1299:                                             ; preds = %1298, %1104
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #14
  br label %1300

1300:                                             ; preds = %1299, %1103, %1078
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #14
  br label %1301

1301:                                             ; preds = %1300, %1074
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #14
  br label %4022

1302:                                             ; preds = %853
  %1303 = landingpad { ptr, i32 }
          cleanup
  %1304 = extractvalue { ptr, i32 } %1303, 0
  store ptr %1304, ptr %7, align 8
  %1305 = extractvalue { ptr, i32 } %1303, 1
  store i32 %1305, ptr %8, align 4
  br label %1412

1306:                                             ; preds = %855
  %1307 = landingpad { ptr, i32 }
          cleanup
  %1308 = extractvalue { ptr, i32 } %1307, 0
  store ptr %1308, ptr %7, align 8
  %1309 = extractvalue { ptr, i32 } %1307, 1
  store i32 %1309, ptr %8, align 4
  br label %1324

1310:                                             ; preds = %856
  %1311 = landingpad { ptr, i32 }
          cleanup
  %1312 = extractvalue { ptr, i32 } %1311, 0
  store ptr %1312, ptr %7, align 8
  %1313 = extractvalue { ptr, i32 } %1311, 1
  store i32 %1313, ptr %8, align 4
  br label %1323

1314:                                             ; preds = %857
  %1315 = landingpad { ptr, i32 }
          cleanup
  %1316 = extractvalue { ptr, i32 } %1315, 0
  store ptr %1316, ptr %7, align 8
  %1317 = extractvalue { ptr, i32 } %1315, 1
  store i32 %1317, ptr %8, align 4
  br label %1322

1318:                                             ; preds = %858
  %1319 = landingpad { ptr, i32 }
          cleanup
  %1320 = extractvalue { ptr, i32 } %1319, 0
  store ptr %1320, ptr %7, align 8
  %1321 = extractvalue { ptr, i32 } %1319, 1
  store i32 %1321, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #14
  br label %1322

1322:                                             ; preds = %1318, %1314
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #14
  br label %1323

1323:                                             ; preds = %1322, %1310
  call void @llvm.lifetime.end.p0(i64 96, ptr %112) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #14
  br label %1324

1324:                                             ; preds = %1323, %1306
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #14
  %1325 = load i1, ptr %116, align 1
  br i1 %1325, label %1326, label %1327

1326:                                             ; preds = %1324
  call void @_ZdlPvm(ptr noundef %854, i64 noundef 208) #16
  br label %1327

1327:                                             ; preds = %1326, %1324
  br label %1412

1328:                                             ; preds = %859
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %7, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %8, align 4
  br label %1411

1332:                                             ; preds = %861
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %7, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %8, align 4
  br label %1350

1336:                                             ; preds = %862
  %1337 = landingpad { ptr, i32 }
          cleanup
  %1338 = extractvalue { ptr, i32 } %1337, 0
  store ptr %1338, ptr %7, align 8
  %1339 = extractvalue { ptr, i32 } %1337, 1
  store i32 %1339, ptr %8, align 4
  br label %1349

1340:                                             ; preds = %863
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %7, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %8, align 4
  br label %1348

1344:                                             ; preds = %864
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %7, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #14
  br label %1348

1348:                                             ; preds = %1344, %1340
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #14
  br label %1349

1349:                                             ; preds = %1348, %1336
  call void @llvm.lifetime.end.p0(i64 96, ptr %119) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #14
  br label %1350

1350:                                             ; preds = %1349, %1332
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #14
  %1351 = load i1, ptr %123, align 1
  br i1 %1351, label %1352, label %1353

1352:                                             ; preds = %1350
  call void @_ZdlPvm(ptr noundef %860, i64 noundef 208) #16
  br label %1353

1353:                                             ; preds = %1352, %1350
  br label %1411

1354:                                             ; preds = %887, %879, %871, %865
  %1355 = landingpad { ptr, i32 }
          cleanup
  %1356 = extractvalue { ptr, i32 } %1355, 0
  store ptr %1356, ptr %7, align 8
  %1357 = extractvalue { ptr, i32 } %1355, 1
  store i32 %1357, ptr %8, align 4
  br label %1410

1358:                                             ; preds = %867
  %1359 = landingpad { ptr, i32 }
          cleanup
  %1360 = extractvalue { ptr, i32 } %1359, 0
  store ptr %1360, ptr %7, align 8
  %1361 = extractvalue { ptr, i32 } %1359, 1
  store i32 %1361, ptr %8, align 4
  br label %1376

1362:                                             ; preds = %868
  %1363 = landingpad { ptr, i32 }
          cleanup
  %1364 = extractvalue { ptr, i32 } %1363, 0
  store ptr %1364, ptr %7, align 8
  %1365 = extractvalue { ptr, i32 } %1363, 1
  store i32 %1365, ptr %8, align 4
  br label %1375

1366:                                             ; preds = %869
  %1367 = landingpad { ptr, i32 }
          cleanup
  %1368 = extractvalue { ptr, i32 } %1367, 0
  store ptr %1368, ptr %7, align 8
  %1369 = extractvalue { ptr, i32 } %1367, 1
  store i32 %1369, ptr %8, align 4
  br label %1374

1370:                                             ; preds = %870
  %1371 = landingpad { ptr, i32 }
          cleanup
  %1372 = extractvalue { ptr, i32 } %1371, 0
  store ptr %1372, ptr %7, align 8
  %1373 = extractvalue { ptr, i32 } %1371, 1
  store i32 %1373, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #14
  br label %1374

1374:                                             ; preds = %1370, %1366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %128) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #14
  br label %1375

1375:                                             ; preds = %1374, %1362
  call void @llvm.lifetime.end.p0(i64 96, ptr %126) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #14
  br label %1376

1376:                                             ; preds = %1375, %1358
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #14
  %1377 = load i1, ptr %130, align 1
  br i1 %1377, label %1378, label %1379

1378:                                             ; preds = %1376
  call void @_ZdlPvm(ptr noundef %866, i64 noundef 208) #16
  br label %1379

1379:                                             ; preds = %1378, %1376
  br label %1410

1380:                                             ; preds = %875
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %7, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %874, i64 noundef 48) #16
  br label %1410

1384:                                             ; preds = %876
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %7, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %8, align 4
  br label %1392

1388:                                             ; preds = %878, %877
  %1389 = landingpad { ptr, i32 }
          cleanup
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %7, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %135) #14
  br label %1392

1392:                                             ; preds = %1388, %1384
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %131) #14
  br label %1410

1393:                                             ; preds = %883
  %1394 = landingpad { ptr, i32 }
          cleanup
  %1395 = extractvalue { ptr, i32 } %1394, 0
  store ptr %1395, ptr %7, align 8
  %1396 = extractvalue { ptr, i32 } %1394, 1
  store i32 %1396, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %882, i64 noundef 48) #16
  br label %1410

1397:                                             ; preds = %884
  %1398 = landingpad { ptr, i32 }
          cleanup
  %1399 = extractvalue { ptr, i32 } %1398, 0
  store ptr %1399, ptr %7, align 8
  %1400 = extractvalue { ptr, i32 } %1398, 1
  store i32 %1400, ptr %8, align 4
  br label %1405

1401:                                             ; preds = %886, %885
  %1402 = landingpad { ptr, i32 }
          cleanup
  %1403 = extractvalue { ptr, i32 } %1402, 0
  store ptr %1403, ptr %7, align 8
  %1404 = extractvalue { ptr, i32 } %1402, 1
  store i32 %1404, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %143) #14
  br label %1405

1405:                                             ; preds = %1401, %1397
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %139) #14
  br label %1410

1406:                                             ; preds = %896, %893
  %1407 = landingpad { ptr, i32 }
          cleanup
  %1408 = extractvalue { ptr, i32 } %1407, 0
  store ptr %1408, ptr %7, align 8
  %1409 = extractvalue { ptr, i32 } %1407, 1
  store i32 %1409, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %147) #14
  br label %1410

1410:                                             ; preds = %1406, %1405, %1393, %1392, %1380, %1379, %1354
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #14
  br label %1411

1411:                                             ; preds = %1410, %1353, %1328
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #14
  br label %1412

1412:                                             ; preds = %1411, %1327, %1302
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #14
  br label %4022

1413:                                             ; preds = %901
  %1414 = landingpad { ptr, i32 }
          cleanup
  %1415 = extractvalue { ptr, i32 } %1414, 0
  store ptr %1415, ptr %7, align 8
  %1416 = extractvalue { ptr, i32 } %1414, 1
  store i32 %1416, ptr %8, align 4
  br label %4022

1417:                                             ; preds = %904
  %1418 = landingpad { ptr, i32 }
          cleanup
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %7, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %8, align 4
  br label %1435

1421:                                             ; preds = %905
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %7, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %8, align 4
  br label %1434

1425:                                             ; preds = %906
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %7, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %8, align 4
  br label %1433

1429:                                             ; preds = %912, %911
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %7, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #14
  br label %1433

1433:                                             ; preds = %1429, %1425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %150) #14
  br label %1434

1434:                                             ; preds = %1433, %1421
  call void @llvm.lifetime.end.p0(i64 96, ptr %149) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #14
  br label %1435

1435:                                             ; preds = %1434, %1417
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #14
  %1436 = load i1, ptr %154, align 1
  br i1 %1436, label %1437, label %1438

1437:                                             ; preds = %1435
  call void @_ZdlPvm(ptr noundef %903, i64 noundef 208) #16
  br label %1438

1438:                                             ; preds = %1437, %1435
  br label %4022

1439:                                             ; preds = %916
  %1440 = landingpad { ptr, i32 }
          cleanup
  %1441 = extractvalue { ptr, i32 } %1440, 0
  store ptr %1441, ptr %7, align 8
  %1442 = extractvalue { ptr, i32 } %1440, 1
  store i32 %1442, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %158) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %157) #14
  br label %4021

1443:                                             ; preds = %920, %917
  %1444 = landingpad { ptr, i32 }
          cleanup
  %1445 = extractvalue { ptr, i32 } %1444, 0
  store ptr %1445, ptr %7, align 8
  %1446 = extractvalue { ptr, i32 } %1444, 1
  store i32 %1446, ptr %8, align 4
  br label %1451

1447:                                             ; preds = %925
  %1448 = landingpad { ptr, i32 }
          cleanup
  %1449 = extractvalue { ptr, i32 } %1448, 0
  store ptr %1449, ptr %7, align 8
  %1450 = extractvalue { ptr, i32 } %1448, 1
  store i32 %1450, ptr %8, align 4
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %159) #14
  br label %1451

1451:                                             ; preds = %1447, %1443
  call void @llvm.lifetime.end.p0(i64 176, ptr %159) #14
  br label %4021

1452:                                             ; preds = %929, %926
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %7, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %8, align 4
  br label %1460

1456:                                             ; preds = %934
  %1457 = landingpad { ptr, i32 }
          cleanup
  %1458 = extractvalue { ptr, i32 } %1457, 0
  store ptr %1458, ptr %7, align 8
  %1459 = extractvalue { ptr, i32 } %1457, 1
  store i32 %1459, ptr %8, align 4
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %161) #14
  br label %1460

1460:                                             ; preds = %1456, %1452
  call void @llvm.lifetime.end.p0(i64 176, ptr %161) #14
  br label %4021

1461:                                             ; preds = %936, %935
  %1462 = landingpad { ptr, i32 }
          cleanup
  %1463 = extractvalue { ptr, i32 } %1462, 0
  store ptr %1463, ptr %7, align 8
  %1464 = extractvalue { ptr, i32 } %1462, 1
  store i32 %1464, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 96, ptr %163) #14
  br label %4021

1465:                                             ; preds = %939, %938, %937
  %1466 = landingpad { ptr, i32 }
          cleanup
  %1467 = extractvalue { ptr, i32 } %1466, 0
  store ptr %1467, ptr %7, align 8
  %1468 = extractvalue { ptr, i32 } %1466, 1
  store i32 %1468, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %165) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %164) #14
  br label %4021

1469:                                             ; preds = %942, %941, %940
  %1470 = landingpad { ptr, i32 }
          cleanup
  %1471 = extractvalue { ptr, i32 } %1470, 0
  store ptr %1471, ptr %7, align 8
  %1472 = extractvalue { ptr, i32 } %1470, 1
  store i32 %1472, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %167) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %166) #14
  br label %4021

1473:                                             ; preds = %945, %944, %943
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %7, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %169) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %168) #14
  br label %4021

1477:                                             ; preds = %948, %947, %946
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %7, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %171) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %170) #14
  br label %4021

1481:                                             ; preds = %954, %952, %949
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %7, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #14
  br label %4020

1485:                                             ; preds = %961, %959, %956
  %1486 = landingpad { ptr, i32 }
          cleanup
  %1487 = extractvalue { ptr, i32 } %1486, 0
  store ptr %1487, ptr %7, align 8
  %1488 = extractvalue { ptr, i32 } %1486, 1
  store i32 %1488, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #14
  br label %4019

1489:                                             ; preds = %968, %966, %963
  %1490 = landingpad { ptr, i32 }
          cleanup
  %1491 = extractvalue { ptr, i32 } %1490, 0
  store ptr %1491, ptr %7, align 8
  %1492 = extractvalue { ptr, i32 } %1490, 1
  store i32 %1492, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #14
  br label %4018

1493:                                             ; preds = %975, %973, %970
  %1494 = landingpad { ptr, i32 }
          cleanup
  %1495 = extractvalue { ptr, i32 } %1494, 0
  store ptr %1495, ptr %7, align 8
  %1496 = extractvalue { ptr, i32 } %1494, 1
  store i32 %1496, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %185) #14
  br label %4017

1497:                                             ; preds = %982, %980, %977
  %1498 = landingpad { ptr, i32 }
          cleanup
  %1499 = extractvalue { ptr, i32 } %1498, 0
  store ptr %1499, ptr %7, align 8
  %1500 = extractvalue { ptr, i32 } %1498, 1
  store i32 %1500, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %187) #14
  br label %4016

1501:                                             ; preds = %985, %984
  %1502 = landingpad { ptr, i32 }
          cleanup
  %1503 = extractvalue { ptr, i32 } %1502, 0
  store ptr %1503, ptr %7, align 8
  %1504 = extractvalue { ptr, i32 } %1502, 1
  store i32 %1504, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 72, ptr %190) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %189) #14
  br label %4015

1505:                                             ; preds = %989
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #14
  %1506 = load i32, ptr %174, align 4, !tbaa !15
  %1507 = sitofp i32 %1506 to double
  store double %1507, ptr %193, align 8, !tbaa !24
  br label %1508

1508:                                             ; preds = %1769, %1505
  %1509 = load double, ptr %193, align 8, !tbaa !24
  %1510 = load i32, ptr %175, align 4, !tbaa !15
  %1511 = sitofp i32 %1510 to double
  %1512 = fcmp olt double %1509, %1511
  br i1 %1512, label %1514, label %1513

1513:                                             ; preds = %1508
  store i32 5, ptr %192, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #14
  br label %1772

1514:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #14
  %1515 = load i32, ptr %176, align 4, !tbaa !15
  %1516 = sitofp i32 %1515 to double
  store double %1516, ptr %194, align 8, !tbaa !24
  br label %1517

1517:                                             ; preds = %1664, %1514
  %1518 = load double, ptr %194, align 8, !tbaa !24
  %1519 = load i32, ptr %177, align 4, !tbaa !15
  %1520 = sitofp i32 %1519 to double
  %1521 = fcmp olt double %1518, %1520
  br i1 %1521, label %1523, label %1522

1522:                                             ; preds = %1517
  store i32 8, ptr %192, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #14
  br label %1768

1523:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 8, ptr %195) #14
  %1524 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1525 unwind label %1667

1525:                                             ; preds = %1523
  store i1 true, ptr %202, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %196) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %196, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1526 unwind label %1671

1526:                                             ; preds = %1525
  call void @llvm.lifetime.start.p0(i64 96, ptr %197) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %198) #14
  %1527 = load double, ptr %191, align 8, !tbaa !24
  %1528 = fsub double %1527, 5.000000e+00
  %1529 = load double, ptr %193, align 8, !tbaa !24
  %1530 = fadd double %1529, 1.000000e+01
  %1531 = load double, ptr %194, align 8, !tbaa !24
  %1532 = fsub double %1531, 5.000000e+00
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %198, double noundef %1528, double noundef %1530, double noundef %1532) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %197, ptr noundef nonnull align 8 dereferenceable(24) %198)
          to label %1533 unwind label %1675

1533:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 48, ptr %199) #14
  %1534 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %199, i32 0, i32 0
  store double 1.000000e+00, ptr %1534, align 8, !tbaa !9
  %1535 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %199, i32 0, i32 1
  store double 1.000000e+00, ptr %1535, align 8, !tbaa !13
  %1536 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %199, i32 0, i32 2
  store double 0.000000e+00, ptr %1536, align 8, !tbaa !14
  %1537 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %199, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1537, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %200) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %201) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1538 unwind label %1679

1538:                                             ; preds = %1533
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1524, ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef nonnull align 8 dereferenceable(96) %197, ptr noundef nonnull align 8 dereferenceable(48) %199, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull align 4 dereferenceable(4) %178)
          to label %1539 unwind label %1683

1539:                                             ; preds = %1538
  store i1 false, ptr %202, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %199) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %198) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %197) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #14
  store ptr %1524, ptr %195, align 8, !tbaa !5
  %1540 = load ptr, ptr %195, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 176, ptr %203) #14
  %1541 = load double, ptr %191, align 8, !tbaa !24
  %1542 = load i32, ptr %172, align 4, !tbaa !15
  %1543 = sitofp i32 %1542 to double
  %1544 = fsub double %1541, %1543
  %1545 = load i32, ptr %173, align 4, !tbaa !15
  %1546 = load i32, ptr %172, align 4, !tbaa !15
  %1547 = sub nsw i32 %1545, %1546
  %1548 = sitofp i32 %1547 to double
  %1549 = fdiv double %1544, %1548
  %1550 = fptrunc double %1549 to float
  %1551 = load double, ptr %193, align 8, !tbaa !24
  %1552 = load i32, ptr %174, align 4, !tbaa !15
  %1553 = sitofp i32 %1552 to double
  %1554 = fsub double %1551, %1553
  %1555 = load i32, ptr %175, align 4, !tbaa !15
  %1556 = load i32, ptr %174, align 4, !tbaa !15
  %1557 = sub nsw i32 %1555, %1556
  %1558 = sitofp i32 %1557 to double
  %1559 = fdiv double %1554, %1558
  %1560 = fptrunc double %1559 to float
  %1561 = load double, ptr %194, align 8, !tbaa !24
  %1562 = load i32, ptr %176, align 4, !tbaa !15
  %1563 = sitofp i32 %1562 to double
  %1564 = fsub double %1561, %1563
  %1565 = load i32, ptr %177, align 4, !tbaa !15
  %1566 = load i32, ptr %176, align 4, !tbaa !15
  %1567 = sub nsw i32 %1565, %1566
  %1568 = sitofp i32 %1567 to double
  %1569 = fdiv double %1564, %1568
  %1570 = fptrunc double %1569 to float
  call void @_ZN3P3D6VectorIfLm4EEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %205, float noundef %1550, float noundef %1560, float noundef %1570, float noundef 1.000000e+00) #14
  %1571 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %205, i32 0, i32 0
  %1572 = load <2 x float>, ptr %1571, align 4
  %1573 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %205, i32 0, i32 1
  %1574 = load <2 x float>, ptr %1573, align 4
  invoke void @_ZN3P3D8Graphics13ColorTemplateIfEC2ENS_6VectorIfLm4EEE(ptr noundef nonnull align 4 dereferenceable(16) %204, <2 x float> %1572, <2 x float> %1574)
          to label %1575 unwind label %1693

1575:                                             ; preds = %1539
  %1576 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %204, i32 0, i32 0
  %1577 = load <2 x float>, ptr %1576, align 4
  %1578 = getelementptr inbounds { <2 x float>, <2 x float> }, ptr %204, i32 0, i32 1
  %1579 = load <2 x float>, ptr %1578, align 4
  invoke void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %203, <2 x float> %1577, <2 x float> %1579, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
          to label %1580 unwind label %1693

1580:                                             ; preds = %1575
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %1540, ptr noundef nonnull align 8 dereferenceable(172) %203)
          to label %1581 unwind label %1697

1581:                                             ; preds = %1580
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %203) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr %203) #14
  %1582 = load ptr, ptr %4, align 8, !tbaa !5
  %1583 = load ptr, ptr %195, align 8, !tbaa !5
  %1584 = load ptr, ptr %1582, align 8, !tbaa !22
  %1585 = getelementptr inbounds ptr, ptr %1584, i64 4
  %1586 = load ptr, ptr %1585, align 8
  invoke void %1586(ptr noundef nonnull align 8 dereferenceable(224) %1582, ptr noundef %1583, i32 noundef 0)
          to label %1587 unwind label %1667

1587:                                             ; preds = %1581
  %1588 = load ptr, ptr %4, align 8, !tbaa !5
  %1589 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1590 unwind label %1667

1590:                                             ; preds = %1587
  store i1 true, ptr %212, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %206) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %206, double noundef 5.000000e-01)
          to label %1591 unwind label %1702

1591:                                             ; preds = %1590
  call void @llvm.lifetime.start.p0(i64 96, ptr %207) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %208) #14
  %1592 = load double, ptr %191, align 8, !tbaa !24
  %1593 = fadd double %1592, 5.000000e+00
  %1594 = load double, ptr %193, align 8, !tbaa !24
  %1595 = fadd double %1594, 1.000000e+00
  %1596 = load double, ptr %194, align 8, !tbaa !24
  %1597 = fsub double %1596, 5.000000e+00
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %208, double noundef %1593, double noundef %1595, double noundef %1597) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %207, ptr noundef nonnull align 8 dereferenceable(24) %208)
          to label %1598 unwind label %1706

1598:                                             ; preds = %1591
  call void @llvm.lifetime.start.p0(i64 48, ptr %209) #14
  %1599 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %209, i32 0, i32 0
  store double 1.000000e+00, ptr %1599, align 8, !tbaa !9
  %1600 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %209, i32 0, i32 1
  store double 2.000000e-01, ptr %1600, align 8, !tbaa !13
  %1601 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %209, i32 0, i32 2
  store double 5.000000e-01, ptr %1601, align 8, !tbaa !14
  %1602 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %209, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1602, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %1603 unwind label %1710

1603:                                             ; preds = %1598
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1589, ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(96) %207, ptr noundef nonnull align 8 dereferenceable(48) %209, ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 4 dereferenceable(4) %184)
          to label %1604 unwind label %1714

1604:                                             ; preds = %1603
  store i1 false, ptr %212, align 1
  %1605 = load ptr, ptr %1588, align 8, !tbaa !22
  %1606 = getelementptr inbounds ptr, ptr %1605, i64 4
  %1607 = load ptr, ptr %1606, align 8
  invoke void %1607(ptr noundef nonnull align 8 dereferenceable(224) %1588, ptr noundef %1589, i32 noundef 0)
          to label %1608 unwind label %1714

1608:                                             ; preds = %1604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %209) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %208) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %207) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #14
  %1609 = call i32 @rand() #14
  %1610 = and i32 %1609, 3
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds [4 x %"struct.P3D::Application::WorldBuilder::SpiderFactory"], ptr %5, i64 0, i64 %1611
  call void @llvm.lifetime.start.p0(i64 96, ptr %213) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %214) #14
  %1613 = load double, ptr %191, align 8, !tbaa !24
  %1614 = load double, ptr %193, align 8, !tbaa !24
  %1615 = call double @llvm.fmuladd.f64(double %1614, double 1.000000e-01, double %1613)
  %1616 = load double, ptr %193, align 8, !tbaa !24
  %1617 = fadd double %1616, 1.000000e+00
  %1618 = load double, ptr %194, align 8, !tbaa !24
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %214, double noundef %1615, double noundef %1617, double noundef %1618) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %213, ptr noundef nonnull align 8 dereferenceable(24) %214)
          to label %1619 unwind label %1724

1619:                                             ; preds = %1608
  %1620 = load i32, ptr %186, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactory11buildSpiderERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(44) %1612, ptr noundef nonnull align 8 dereferenceable(96) %213, i32 noundef %1620)
          to label %1621 unwind label %1724

1621:                                             ; preds = %1619
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %213) #14
  %1622 = load ptr, ptr %4, align 8, !tbaa !5
  %1623 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1624 unwind label %1667

1624:                                             ; preds = %1621
  store i1 true, ptr %220, align 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %215) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %216) #14
  %1625 = load double, ptr %191, align 8, !tbaa !24
  %1626 = fsub double %1625, 2.000000e+01
  %1627 = load double, ptr %193, align 8, !tbaa !24
  %1628 = fadd double %1627, 1.000000e+00
  %1629 = load double, ptr %194, align 8, !tbaa !24
  %1630 = fadd double %1629, 2.000000e+01
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %216, double noundef %1626, double noundef %1628, double noundef %1630) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %215, ptr noundef nonnull align 8 dereferenceable(24) %216)
          to label %1631 unwind label %1728

1631:                                             ; preds = %1624
  call void @llvm.lifetime.start.p0(i64 48, ptr %217) #14
  %1632 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %217, i32 0, i32 0
  store double 1.000000e+00, ptr %1632, align 8, !tbaa !9
  %1633 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %217, i32 0, i32 1
  store double 2.000000e-01, ptr %1633, align 8, !tbaa !13
  %1634 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %217, i32 0, i32 2
  store double 5.000000e-01, ptr %1634, align 8, !tbaa !14
  %1635 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %217, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1635, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %219) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %219)
          to label %1636 unwind label %1732

1636:                                             ; preds = %1631
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1623, ptr noundef nonnull align 8 dereferenceable(32) @_ZN3P3D11Application12WorldBuilder8triangleE, ptr noundef nonnull align 8 dereferenceable(96) %215, ptr noundef nonnull align 8 dereferenceable(48) %217, ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef nonnull align 4 dereferenceable(4) %182)
          to label %1637 unwind label %1736

1637:                                             ; preds = %1636
  store i1 false, ptr %220, align 1
  %1638 = load ptr, ptr %1622, align 8, !tbaa !22
  %1639 = getelementptr inbounds ptr, ptr %1638, i64 4
  %1640 = load ptr, ptr %1639, align 8
  invoke void %1640(ptr noundef nonnull align 8 dereferenceable(224) %1622, ptr noundef %1623, i32 noundef 0)
          to label %1641 unwind label %1736

1641:                                             ; preds = %1637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %217) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %215) #14
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1644 unwind label %1667

1644:                                             ; preds = %1641
  store i1 true, ptr %227, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %221, double noundef 3.000000e-01, double noundef 1.200000e+00)
          to label %1645 unwind label %1745

1645:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 96, ptr %222) #14
  %1646 = load double, ptr %191, align 8, !tbaa !24
  %1647 = fsub double %1646, 5.000000e+00
  %1648 = load double, ptr %193, align 8, !tbaa !24
  %1649 = fadd double %1648, 1.000000e+00
  %1650 = load double, ptr %194, align 8, !tbaa !24
  %1651 = fadd double %1650, 5.000000e+00
  call void @llvm.lifetime.start.p0(i64 72, ptr %223) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %223, double noundef 7.853750e-01, double noundef 7.853750e-01, double noundef 0.000000e+00)
          to label %1652 unwind label %1749

1652:                                             ; preds = %1645
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %222, double noundef %1647, double noundef %1649, double noundef %1651, ptr noundef nonnull align 8 dereferenceable(72) %223)
          to label %1653 unwind label %1749

1653:                                             ; preds = %1652
  call void @llvm.lifetime.start.p0(i64 48, ptr %224) #14
  %1654 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %224, i32 0, i32 0
  store double 1.000000e+00, ptr %1654, align 8, !tbaa !9
  %1655 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %224, i32 0, i32 1
  store double 2.000000e-01, ptr %1655, align 8, !tbaa !13
  %1656 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %224, i32 0, i32 2
  store double 5.000000e-01, ptr %1656, align 8, !tbaa !14
  %1657 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %224, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1657, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %225) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %226) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %226)
          to label %1658 unwind label %1753

1658:                                             ; preds = %1653
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1643, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(96) %222, ptr noundef nonnull align 8 dereferenceable(48) %224, ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull align 4 dereferenceable(4) %180)
          to label %1659 unwind label %1757

1659:                                             ; preds = %1658
  store i1 false, ptr %227, align 1
  %1660 = load ptr, ptr %1642, align 8, !tbaa !22
  %1661 = getelementptr inbounds ptr, ptr %1660, i64 4
  %1662 = load ptr, ptr %1661, align 8
  invoke void %1662(ptr noundef nonnull align 8 dereferenceable(224) %1642, ptr noundef %1643, i32 noundef 0)
          to label %1663 unwind label %1757

1663:                                             ; preds = %1659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %226) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %224) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %223) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %222) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #14
  br label %1664

1664:                                             ; preds = %1663
  %1665 = load double, ptr %194, align 8, !tbaa !24
  %1666 = fadd double %1665, 1.000010e+00
  store double %1666, ptr %194, align 8, !tbaa !24
  br label %1517, !llvm.loop !30

1667:                                             ; preds = %1641, %1621, %1587, %1581, %1523
  %1668 = landingpad { ptr, i32 }
          cleanup
  %1669 = extractvalue { ptr, i32 } %1668, 0
  store ptr %1669, ptr %7, align 8
  %1670 = extractvalue { ptr, i32 } %1668, 1
  store i32 %1670, ptr %8, align 4
  br label %1767

1671:                                             ; preds = %1525
  %1672 = landingpad { ptr, i32 }
          cleanup
  %1673 = extractvalue { ptr, i32 } %1672, 0
  store ptr %1673, ptr %7, align 8
  %1674 = extractvalue { ptr, i32 } %1672, 1
  store i32 %1674, ptr %8, align 4
  br label %1689

1675:                                             ; preds = %1526
  %1676 = landingpad { ptr, i32 }
          cleanup
  %1677 = extractvalue { ptr, i32 } %1676, 0
  store ptr %1677, ptr %7, align 8
  %1678 = extractvalue { ptr, i32 } %1676, 1
  store i32 %1678, ptr %8, align 4
  br label %1688

1679:                                             ; preds = %1533
  %1680 = landingpad { ptr, i32 }
          cleanup
  %1681 = extractvalue { ptr, i32 } %1680, 0
  store ptr %1681, ptr %7, align 8
  %1682 = extractvalue { ptr, i32 } %1680, 1
  store i32 %1682, ptr %8, align 4
  br label %1687

1683:                                             ; preds = %1538
  %1684 = landingpad { ptr, i32 }
          cleanup
  %1685 = extractvalue { ptr, i32 } %1684, 0
  store ptr %1685, ptr %7, align 8
  %1686 = extractvalue { ptr, i32 } %1684, 1
  store i32 %1686, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #14
  br label %1687

1687:                                             ; preds = %1683, %1679
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %200) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %199) #14
  br label %1688

1688:                                             ; preds = %1687, %1675
  call void @llvm.lifetime.end.p0(i64 24, ptr %198) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %197) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %196) #14
  br label %1689

1689:                                             ; preds = %1688, %1671
  call void @llvm.lifetime.end.p0(i64 32, ptr %196) #14
  %1690 = load i1, ptr %202, align 1
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1689
  call void @_ZdlPvm(ptr noundef %1524, i64 noundef 208) #16
  br label %1692

1692:                                             ; preds = %1691, %1689
  br label %1767

1693:                                             ; preds = %1575, %1539
  %1694 = landingpad { ptr, i32 }
          cleanup
  %1695 = extractvalue { ptr, i32 } %1694, 0
  store ptr %1695, ptr %7, align 8
  %1696 = extractvalue { ptr, i32 } %1694, 1
  store i32 %1696, ptr %8, align 4
  br label %1701

1697:                                             ; preds = %1580
  %1698 = landingpad { ptr, i32 }
          cleanup
  %1699 = extractvalue { ptr, i32 } %1698, 0
  store ptr %1699, ptr %7, align 8
  %1700 = extractvalue { ptr, i32 } %1698, 1
  store i32 %1700, ptr %8, align 4
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %203) #14
  br label %1701

1701:                                             ; preds = %1697, %1693
  call void @llvm.lifetime.end.p0(i64 176, ptr %203) #14
  br label %1767

1702:                                             ; preds = %1590
  %1703 = landingpad { ptr, i32 }
          cleanup
  %1704 = extractvalue { ptr, i32 } %1703, 0
  store ptr %1704, ptr %7, align 8
  %1705 = extractvalue { ptr, i32 } %1703, 1
  store i32 %1705, ptr %8, align 4
  br label %1720

1706:                                             ; preds = %1591
  %1707 = landingpad { ptr, i32 }
          cleanup
  %1708 = extractvalue { ptr, i32 } %1707, 0
  store ptr %1708, ptr %7, align 8
  %1709 = extractvalue { ptr, i32 } %1707, 1
  store i32 %1709, ptr %8, align 4
  br label %1719

1710:                                             ; preds = %1598
  %1711 = landingpad { ptr, i32 }
          cleanup
  %1712 = extractvalue { ptr, i32 } %1711, 0
  store ptr %1712, ptr %7, align 8
  %1713 = extractvalue { ptr, i32 } %1711, 1
  store i32 %1713, ptr %8, align 4
  br label %1718

1714:                                             ; preds = %1604, %1603
  %1715 = landingpad { ptr, i32 }
          cleanup
  %1716 = extractvalue { ptr, i32 } %1715, 0
  store ptr %1716, ptr %7, align 8
  %1717 = extractvalue { ptr, i32 } %1715, 1
  store i32 %1717, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #14
  br label %1718

1718:                                             ; preds = %1714, %1710
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %209) #14
  br label %1719

1719:                                             ; preds = %1718, %1706
  call void @llvm.lifetime.end.p0(i64 24, ptr %208) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %207) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %206) #14
  br label %1720

1720:                                             ; preds = %1719, %1702
  call void @llvm.lifetime.end.p0(i64 32, ptr %206) #14
  %1721 = load i1, ptr %212, align 1
  br i1 %1721, label %1722, label %1723

1722:                                             ; preds = %1720
  call void @_ZdlPvm(ptr noundef %1589, i64 noundef 208) #16
  br label %1723

1723:                                             ; preds = %1722, %1720
  br label %1767

1724:                                             ; preds = %1619, %1608
  %1725 = landingpad { ptr, i32 }
          cleanup
  %1726 = extractvalue { ptr, i32 } %1725, 0
  store ptr %1726, ptr %7, align 8
  %1727 = extractvalue { ptr, i32 } %1725, 1
  store i32 %1727, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %214) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %213) #14
  br label %1767

1728:                                             ; preds = %1624
  %1729 = landingpad { ptr, i32 }
          cleanup
  %1730 = extractvalue { ptr, i32 } %1729, 0
  store ptr %1730, ptr %7, align 8
  %1731 = extractvalue { ptr, i32 } %1729, 1
  store i32 %1731, ptr %8, align 4
  br label %1741

1732:                                             ; preds = %1631
  %1733 = landingpad { ptr, i32 }
          cleanup
  %1734 = extractvalue { ptr, i32 } %1733, 0
  store ptr %1734, ptr %7, align 8
  %1735 = extractvalue { ptr, i32 } %1733, 1
  store i32 %1735, ptr %8, align 4
  br label %1740

1736:                                             ; preds = %1637, %1636
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %7, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #14
  br label %1740

1740:                                             ; preds = %1736, %1732
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %219) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %219) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %217) #14
  br label %1741

1741:                                             ; preds = %1740, %1728
  call void @llvm.lifetime.end.p0(i64 24, ptr %216) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %215) #14
  %1742 = load i1, ptr %220, align 1
  br i1 %1742, label %1743, label %1744

1743:                                             ; preds = %1741
  call void @_ZdlPvm(ptr noundef %1623, i64 noundef 208) #16
  br label %1744

1744:                                             ; preds = %1743, %1741
  br label %1767

1745:                                             ; preds = %1644
  %1746 = landingpad { ptr, i32 }
          cleanup
  %1747 = extractvalue { ptr, i32 } %1746, 0
  store ptr %1747, ptr %7, align 8
  %1748 = extractvalue { ptr, i32 } %1746, 1
  store i32 %1748, ptr %8, align 4
  br label %1763

1749:                                             ; preds = %1652, %1645
  %1750 = landingpad { ptr, i32 }
          cleanup
  %1751 = extractvalue { ptr, i32 } %1750, 0
  store ptr %1751, ptr %7, align 8
  %1752 = extractvalue { ptr, i32 } %1750, 1
  store i32 %1752, ptr %8, align 4
  br label %1762

1753:                                             ; preds = %1653
  %1754 = landingpad { ptr, i32 }
          cleanup
  %1755 = extractvalue { ptr, i32 } %1754, 0
  store ptr %1755, ptr %7, align 8
  %1756 = extractvalue { ptr, i32 } %1754, 1
  store i32 %1756, ptr %8, align 4
  br label %1761

1757:                                             ; preds = %1659, %1658
  %1758 = landingpad { ptr, i32 }
          cleanup
  %1759 = extractvalue { ptr, i32 } %1758, 0
  store ptr %1759, ptr %7, align 8
  %1760 = extractvalue { ptr, i32 } %1758, 1
  store i32 %1760, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #14
  br label %1761

1761:                                             ; preds = %1757, %1753
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %226) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %225) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %224) #14
  br label %1762

1762:                                             ; preds = %1761, %1749
  call void @llvm.lifetime.end.p0(i64 72, ptr %223) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %222) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #14
  br label %1763

1763:                                             ; preds = %1762, %1745
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #14
  %1764 = load i1, ptr %227, align 1
  br i1 %1764, label %1765, label %1766

1765:                                             ; preds = %1763
  call void @_ZdlPvm(ptr noundef %1643, i64 noundef 208) #16
  br label %1766

1766:                                             ; preds = %1765, %1763
  br label %1767

1767:                                             ; preds = %1766, %1744, %1724, %1723, %1701, %1692, %1667
  call void @llvm.lifetime.end.p0(i64 8, ptr %195) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #14
  br label %4015

1768:                                             ; preds = %1522
  br label %1769

1769:                                             ; preds = %1768
  %1770 = load double, ptr %193, align 8, !tbaa !24
  %1771 = fadd double %1770, 1.000010e+00
  store double %1771, ptr %193, align 8, !tbaa !24
  br label %1508, !llvm.loop !32

1772:                                             ; preds = %1513
  br label %1773

1773:                                             ; preds = %1772
  %1774 = load double, ptr %191, align 8, !tbaa !24
  %1775 = fadd double %1774, 1.000010e+00
  store double %1775, ptr %191, align 8, !tbaa !24
  br label %989, !llvm.loop !33

1776:                                             ; preds = %994
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr %229) #14
  %1777 = load ptr, ptr %3, align 8, !tbaa !5
  %1778 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %1777, i32 0, i32 0
  invoke void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %229, ptr noundef nonnull align 8 dereferenceable(212) %1778)
          to label %1779 unwind label %2550

1779:                                             ; preds = %1776
  %1780 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %229, ptr noundef nonnull align 1 dereferenceable(6) @.str.23)
          to label %1781 unwind label %2550

1781:                                             ; preds = %1779
  %1782 = invoke noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %1780)
          to label %1783 unwind label %2550

1783:                                             ; preds = %1781
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #14
  store i32 %1782, ptr %228, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #14
  %1784 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1785 unwind label %2554

1785:                                             ; preds = %1783
  store i1 true, ptr %236, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %231, double noundef 2.000000e+00, double noundef 1.500000e+00, double noundef 0x3FE6666666666666)
          to label %1786 unwind label %2558

1786:                                             ; preds = %1785
  call void @llvm.lifetime.start.p0(i64 96, ptr %232) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %232, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.000000e+01)
          to label %1787 unwind label %2562

1787:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 48, ptr %233) #14
  %1788 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %233, i32 0, i32 0
  store double 1.000000e+00, ptr %1788, align 8, !tbaa !9
  %1789 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %233, i32 0, i32 1
  store double 0x3FE6666666666666, ptr %1789, align 8, !tbaa !13
  %1790 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %233, i32 0, i32 2
  store double 3.000000e-01, ptr %1790, align 8, !tbaa !14
  %1791 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %233, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1791, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %235) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %235)
          to label %1792 unwind label %2566

1792:                                             ; preds = %1787
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1784, ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef nonnull align 8 dereferenceable(96) %232, ptr noundef nonnull align 8 dereferenceable(48) %233, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %1793 unwind label %2570

1793:                                             ; preds = %1792
  store i1 false, ptr %236, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %233) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %232) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #14
  store ptr %1784, ptr %230, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #14
  %1794 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1795 unwind label %2580

1795:                                             ; preds = %1793
  store i1 true, ptr %243, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %238) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %238, double noundef 1.500000e+00, double noundef 1.200000e+00, double noundef 9.000000e-01)
          to label %1796 unwind label %2584

1796:                                             ; preds = %1795
  call void @llvm.lifetime.start.p0(i64 96, ptr %239) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %239, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.400000e+01)
          to label %1797 unwind label %2588

1797:                                             ; preds = %1796
  call void @llvm.lifetime.start.p0(i64 48, ptr %240) #14
  %1798 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %240, i32 0, i32 0
  store double 1.000000e+00, ptr %1798, align 8, !tbaa !9
  %1799 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %240, i32 0, i32 1
  store double 0x3FE6666666666666, ptr %1799, align 8, !tbaa !13
  %1800 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %240, i32 0, i32 2
  store double 3.000000e-01, ptr %1800, align 8, !tbaa !14
  %1801 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %240, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1801, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %241) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %242) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %242)
          to label %1802 unwind label %2592

1802:                                             ; preds = %1797
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1794, ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 8 dereferenceable(96) %239, ptr noundef nonnull align 8 dereferenceable(48) %240, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %1803 unwind label %2596

1803:                                             ; preds = %1802
  store i1 false, ptr %243, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %240) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %239) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #14
  store ptr %1794, ptr %237, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #14
  %1804 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1805 unwind label %2606

1805:                                             ; preds = %1803
  store i1 true, ptr %250, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %245, double noundef 2.000000e+00, double noundef 1.500000e+00, double noundef 0x3FE6666666666666)
          to label %1806 unwind label %2610

1806:                                             ; preds = %1805
  call void @llvm.lifetime.start.p0(i64 96, ptr %246) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %246, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.800000e+01)
          to label %1807 unwind label %2614

1807:                                             ; preds = %1806
  call void @llvm.lifetime.start.p0(i64 48, ptr %247) #14
  %1808 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %247, i32 0, i32 0
  store double 1.000000e+00, ptr %1808, align 8, !tbaa !9
  %1809 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %247, i32 0, i32 1
  store double 0x3FE6666666666666, ptr %1809, align 8, !tbaa !13
  %1810 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %247, i32 0, i32 2
  store double 3.000000e-01, ptr %1810, align 8, !tbaa !14
  %1811 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %247, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1811, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %249) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %249)
          to label %1812 unwind label %2618

1812:                                             ; preds = %1807
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1804, ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(96) %246, ptr noundef nonnull align 8 dereferenceable(48) %247, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %1813 unwind label %2622

1813:                                             ; preds = %1812
  store i1 false, ptr %250, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %249) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %249) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %247) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %246) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #14
  store ptr %1804, ptr %244, align 8, !tbaa !5
  %1814 = load ptr, ptr %4, align 8, !tbaa !5
  %1815 = load ptr, ptr %230, align 8, !tbaa !5
  %1816 = load ptr, ptr %1814, align 8, !tbaa !22
  %1817 = getelementptr inbounds ptr, ptr %1816, i64 4
  %1818 = load ptr, ptr %1817, align 8
  invoke void %1818(ptr noundef nonnull align 8 dereferenceable(224) %1814, ptr noundef %1815, i32 noundef 0)
          to label %1819 unwind label %2606

1819:                                             ; preds = %1813
  %1820 = load ptr, ptr %4, align 8, !tbaa !5
  %1821 = load ptr, ptr %237, align 8, !tbaa !5
  %1822 = load ptr, ptr %1820, align 8, !tbaa !22
  %1823 = getelementptr inbounds ptr, ptr %1822, i64 4
  %1824 = load ptr, ptr %1823, align 8
  invoke void %1824(ptr noundef nonnull align 8 dereferenceable(224) %1820, ptr noundef %1821, i32 noundef 0)
          to label %1825 unwind label %2606

1825:                                             ; preds = %1819
  %1826 = load ptr, ptr %4, align 8, !tbaa !5
  %1827 = load ptr, ptr %244, align 8, !tbaa !5
  %1828 = load ptr, ptr %1826, align 8, !tbaa !22
  %1829 = getelementptr inbounds ptr, ptr %1828, i64 4
  %1830 = load ptr, ptr %1829, align 8
  invoke void %1830(ptr noundef nonnull align 8 dereferenceable(224) %1826, ptr noundef %1827, i32 noundef 0)
          to label %1831 unwind label %2606

1831:                                             ; preds = %1825
  call void @llvm.lifetime.start.p0(i64 24, ptr %251) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #14
  %1832 = load ptr, ptr %230, align 8, !tbaa !5
  %1833 = load ptr, ptr %237, align 8, !tbaa !5
  %1834 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #15
          to label %1835 unwind label %2632

1835:                                             ; preds = %1831
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %252, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -2.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %253, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 2.000000e+00) #14
  invoke void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1834, ptr noundef byval(%"struct.P3D::Vector") align 8 %252, ptr noundef byval(%"struct.P3D::Vector") align 8 %253)
          to label %1836 unwind label %2636

1836:                                             ; preds = %1835
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef %1832, ptr noundef %1833, ptr noundef %1834)
          to label %1837 unwind label %2632

1837:                                             ; preds = %1836
  %1838 = load ptr, ptr %237, align 8, !tbaa !5
  %1839 = load ptr, ptr %244, align 8, !tbaa !5
  %1840 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #15
          to label %1841 unwind label %2632

1841:                                             ; preds = %1837
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %254, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -2.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %255, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 2.000000e+00) #14
  invoke void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1840, ptr noundef byval(%"struct.P3D::Vector") align 8 %254, ptr noundef byval(%"struct.P3D::Vector") align 8 %255)
          to label %1842 unwind label %2640

1842:                                             ; preds = %1841
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %251, ptr noundef %1838, ptr noundef %1839, ptr noundef %1840)
          to label %1843 unwind label %2632

1843:                                             ; preds = %1842
  %1844 = load ptr, ptr %4, align 8, !tbaa !5
  %1845 = getelementptr inbounds %"class.P3D::WorldPrototype", ptr %1844, i32 0, i32 5
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1845, ptr noundef nonnull align 8 dereferenceable(24) %251)
          to label %1846 unwind label %2632

1846:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #14
  %1847 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1848 unwind label %2644

1848:                                             ; preds = %1846
  store i1 true, ptr %263, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %257) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %257, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1849 unwind label %2648

1849:                                             ; preds = %1848
  call void @llvm.lifetime.start.p0(i64 96, ptr %258) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %258, double noundef 7.000000e+00, double noundef 1.000000e+00, double noundef 5.000000e+00)
          to label %1850 unwind label %2652

1850:                                             ; preds = %1849
  call void @llvm.lifetime.start.p0(i64 48, ptr %259) #14
  %1851 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %259, i32 0, i32 0
  store double 1.300000e+00, ptr %1851, align 8, !tbaa !9
  %1852 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %259, i32 0, i32 1
  store double 1.200000e+00, ptr %1852, align 8, !tbaa !13
  %1853 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %259, i32 0, i32 2
  store double 1.100000e+00, ptr %1853, align 8, !tbaa !14
  %1854 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %259, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1854, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %260) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %261) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %261)
          to label %1855 unwind label %2656

1855:                                             ; preds = %1850
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #14
  store i32 0, ptr %262, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1847, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull align 8 dereferenceable(96) %258, ptr noundef nonnull align 8 dereferenceable(48) %259, ptr noundef nonnull align 8 dereferenceable(32) %260, ptr noundef nonnull align 4 dereferenceable(4) %262)
          to label %1856 unwind label %2660

1856:                                             ; preds = %1855
  store i1 false, ptr %263, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %261) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %259) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %258) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %257) #14
  store ptr %1847, ptr %256, align 8, !tbaa !5
  %1857 = load ptr, ptr %4, align 8, !tbaa !5
  %1858 = load ptr, ptr %256, align 8, !tbaa !5
  %1859 = load ptr, ptr %1857, align 8, !tbaa !22
  %1860 = getelementptr inbounds ptr, ptr %1859, i64 4
  %1861 = load ptr, ptr %1860, align 8
  invoke void %1861(ptr noundef nonnull align 8 dereferenceable(224) %1857, ptr noundef %1858, i32 noundef 0)
          to label %1862 unwind label %2644

1862:                                             ; preds = %1856
  call void @llvm.lifetime.start.p0(i64 8, ptr %264) #14
  %1863 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1864 unwind label %2670

1864:                                             ; preds = %1862
  store i1 true, ptr %271, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %265) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %265, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1865 unwind label %2674

1865:                                             ; preds = %1864
  call void @llvm.lifetime.start.p0(i64 96, ptr %266) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %266, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1866 unwind label %2678

1866:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 48, ptr %267) #14
  %1867 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %267, i32 0, i32 0
  store double 1.000000e+00, ptr %1867, align 8, !tbaa !9
  %1868 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %267, i32 0, i32 1
  store double 1.000000e+00, ptr %1868, align 8, !tbaa !13
  %1869 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %267, i32 0, i32 2
  store double 1.000000e+00, ptr %1869, align 8, !tbaa !14
  %1870 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %267, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1870, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %268) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %269) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %269)
          to label %1871 unwind label %2682

1871:                                             ; preds = %1866
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #14
  store i32 0, ptr %270, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1863, ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef nonnull align 8 dereferenceable(96) %266, ptr noundef nonnull align 8 dereferenceable(48) %267, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull align 4 dereferenceable(4) %270)
          to label %1872 unwind label %2686

1872:                                             ; preds = %1871
  store i1 false, ptr %271, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %267) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %266) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #14
  store ptr %1863, ptr %264, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %272) #14
  %1873 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1874 unwind label %2696

1874:                                             ; preds = %1872
  store i1 true, ptr %279, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %273) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %273, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1875 unwind label %2700

1875:                                             ; preds = %1874
  call void @llvm.lifetime.start.p0(i64 96, ptr %274) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %274)
          to label %1876 unwind label %2704

1876:                                             ; preds = %1875
  call void @llvm.lifetime.start.p0(i64 48, ptr %275) #14
  %1877 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %275, i32 0, i32 0
  store double 1.000000e+00, ptr %1877, align 8, !tbaa !9
  %1878 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %275, i32 0, i32 1
  store double 1.000000e+00, ptr %1878, align 8, !tbaa !13
  %1879 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %275, i32 0, i32 2
  store double 1.000000e+00, ptr %1879, align 8, !tbaa !14
  %1880 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %275, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1880, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %276) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %277) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %1881 unwind label %2708

1881:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #14
  store i32 0, ptr %278, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1873, ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef nonnull align 8 dereferenceable(96) %274, ptr noundef nonnull align 8 dereferenceable(48) %275, ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull align 4 dereferenceable(4) %278)
          to label %1882 unwind label %2712

1882:                                             ; preds = %1881
  store i1 false, ptr %279, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %275) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %274) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %273) #14
  store ptr %1873, ptr %272, align 8, !tbaa !5
  %1883 = load ptr, ptr %264, align 8, !tbaa !5
  %1884 = load ptr, ptr %272, align 8, !tbaa !5
  %1885 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #15
          to label %1886 unwind label %2696

1886:                                             ; preds = %1882
  call void @llvm.memset.p0.i64(ptr align 16 %1885, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1885) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %280) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #14
  store double 1.000000e+00, ptr %281, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %282) #14
  store double 0.000000e+00, ptr %282, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %283) #14
  store double 0.000000e+00, ptr %283, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %280, ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull align 8 dereferenceable(8) %283)
          to label %1887 unwind label %2722

1887:                                             ; preds = %1886
  call void @llvm.lifetime.start.p0(i64 96, ptr %284) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %285) #14
  store double 0.000000e+00, ptr %285, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %286) #14
  store double 0.000000e+00, ptr %286, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %287) #14
  store double 0.000000e+00, ptr %287, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %284, ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull align 8 dereferenceable(8) %287)
          to label %1888 unwind label %2726

1888:                                             ; preds = %1887
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1883, ptr noundef %1884, ptr noundef %1885, ptr noundef nonnull align 8 dereferenceable(96) %280, ptr noundef nonnull align 8 dereferenceable(96) %284)
          to label %1889 unwind label %2726

1889:                                             ; preds = %1888
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %284) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %280) #14
  %1890 = load ptr, ptr %4, align 8, !tbaa !5
  %1891 = load ptr, ptr %264, align 8, !tbaa !5
  %1892 = load ptr, ptr %1890, align 8, !tbaa !22
  %1893 = getelementptr inbounds ptr, ptr %1892, i64 4
  %1894 = load ptr, ptr %1893, align 8
  invoke void %1894(ptr noundef nonnull align 8 dereferenceable(224) %1890, ptr noundef %1891, i32 noundef 0)
          to label %1895 unwind label %2696

1895:                                             ; preds = %1889
  %1896 = load ptr, ptr %4, align 8, !tbaa !5
  %1897 = load ptr, ptr %272, align 8, !tbaa !5
  %1898 = load ptr, ptr %1896, align 8, !tbaa !22
  %1899 = getelementptr inbounds ptr, ptr %1898, i64 4
  %1900 = load ptr, ptr %1899, align 8
  invoke void %1900(ptr noundef nonnull align 8 dereferenceable(224) %1896, ptr noundef %1897, i32 noundef 0)
          to label %1901 unwind label %2696

1901:                                             ; preds = %1895
  %1902 = load ptr, ptr %264, align 8, !tbaa !5
  %1903 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %1902)
          to label %1904 unwind label %2696

1904:                                             ; preds = %1901
  call void @llvm.lifetime.start.p0(i64 24, ptr %289) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %289, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr %290) #14
  store i32 1, ptr %290, align 4, !tbaa !15
  call void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind writable sret(%"struct.P3D::Vector") align 8 %288, ptr noundef nonnull align 8 dereferenceable(24) %289, ptr noundef nonnull align 4 dereferenceable(4) %290) #14
  invoke void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416) %1903, ptr noundef byval(%"struct.P3D::Vector") align 8 %288)
          to label %1905 unwind label %2731

1905:                                             ; preds = %1904
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %289) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %291) #14
  %1906 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1907 unwind label %2735

1907:                                             ; preds = %1905
  store i1 true, ptr %301, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %292) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %292, double noundef 5.000000e-01, double noundef 5.000000e-01, double noundef 5.000000e-01)
          to label %1908 unwind label %2739

1908:                                             ; preds = %1907
  %1909 = load ptr, ptr %264, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %293) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #14
  store double -5.000000e-01, ptr %294, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %295) #14
  store double 5.000000e-01, ptr %295, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %296) #14
  store double 5.000000e-01, ptr %296, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %293, ptr noundef nonnull align 8 dereferenceable(8) %294, ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull align 8 dereferenceable(8) %296)
          to label %1910 unwind label %2743

1910:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 48, ptr %297) #14
  %1911 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %297, i32 0, i32 0
  store double 1.000000e+00, ptr %1911, align 8, !tbaa !9
  %1912 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %297, i32 0, i32 1
  store double 1.000000e+00, ptr %1912, align 8, !tbaa !13
  %1913 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %297, i32 0, i32 2
  store double 1.000000e+00, ptr %1913, align 8, !tbaa !14
  %1914 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %297, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1914, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %298) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %299) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %299)
          to label %1915 unwind label %2747

1915:                                             ; preds = %1910
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #14
  store i32 0, ptr %300, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeEPS1_RKNS_14CFrameTemplateIdEERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1906, ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef %1909, ptr noundef nonnull align 8 dereferenceable(96) %293, ptr noundef nonnull align 8 dereferenceable(48) %297, ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull align 4 dereferenceable(4) %300)
          to label %1916 unwind label %2751

1916:                                             ; preds = %1915
  store i1 false, ptr %301, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %298) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %297) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %293) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #14
  store ptr %1906, ptr %291, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #14
  %1917 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1918 unwind label %2761

1918:                                             ; preds = %1916
  store i1 true, ptr %309, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %303) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %303, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1919 unwind label %2765

1919:                                             ; preds = %1918
  call void @llvm.lifetime.start.p0(i64 96, ptr %304) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %304, double noundef -3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1920 unwind label %2769

1920:                                             ; preds = %1919
  call void @llvm.lifetime.start.p0(i64 48, ptr %305) #14
  %1921 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %305, i32 0, i32 0
  store double 1.000000e+00, ptr %1921, align 8, !tbaa !9
  %1922 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %305, i32 0, i32 1
  store double 1.000000e+00, ptr %1922, align 8, !tbaa !13
  %1923 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %305, i32 0, i32 2
  store double 1.000000e+00, ptr %1923, align 8, !tbaa !14
  %1924 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %305, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1924, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %306) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %307) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %307)
          to label %1925 unwind label %2773

1925:                                             ; preds = %1920
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #14
  store i32 0, ptr %308, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1917, ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef nonnull align 8 dereferenceable(96) %304, ptr noundef nonnull align 8 dereferenceable(48) %305, ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef nonnull align 4 dereferenceable(4) %308)
          to label %1926 unwind label %2777

1926:                                             ; preds = %1925
  store i1 false, ptr %309, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %305) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %304) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #14
  store ptr %1917, ptr %302, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %310) #14
  %1927 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1928 unwind label %2787

1928:                                             ; preds = %1926
  store i1 true, ptr %317, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %311) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %311, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1929 unwind label %2791

1929:                                             ; preds = %1928
  call void @llvm.lifetime.start.p0(i64 96, ptr %312) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %312)
          to label %1930 unwind label %2795

1930:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 48, ptr %313) #14
  %1931 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %313, i32 0, i32 0
  store double 1.000000e+00, ptr %1931, align 8, !tbaa !9
  %1932 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %313, i32 0, i32 1
  store double 1.000000e+00, ptr %1932, align 8, !tbaa !13
  %1933 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %313, i32 0, i32 2
  store double 1.000000e+00, ptr %1933, align 8, !tbaa !14
  %1934 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %313, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1934, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %314) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %315) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %315)
          to label %1935 unwind label %2799

1935:                                             ; preds = %1930
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #14
  store i32 0, ptr %316, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1927, ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull align 8 dereferenceable(96) %312, ptr noundef nonnull align 8 dereferenceable(48) %313, ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef nonnull align 4 dereferenceable(4) %316)
          to label %1936 unwind label %2803

1936:                                             ; preds = %1935
  store i1 false, ptr %317, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %313) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %312) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #14
  store ptr %1927, ptr %310, align 8, !tbaa !5
  %1937 = load ptr, ptr %302, align 8, !tbaa !5
  %1938 = load ptr, ptr %310, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 96, ptr %318) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #14
  store double 1.000000e+00, ptr %319, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #14
  store double 0.000000e+00, ptr %320, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %321) #14
  store double 0.000000e+00, ptr %321, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %318, ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull align 8 dereferenceable(8) %321)
          to label %1939 unwind label %2813

1939:                                             ; preds = %1936
  invoke void @_ZN3P3D4Part6attachEPS0_RKNS_14CFrameTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(200) %1937, ptr noundef %1938, ptr noundef nonnull align 8 dereferenceable(96) %318)
          to label %1940 unwind label %2813

1940:                                             ; preds = %1939
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %318) #14
  %1941 = load ptr, ptr %4, align 8, !tbaa !5
  %1942 = load ptr, ptr %302, align 8, !tbaa !5
  %1943 = load ptr, ptr %1941, align 8, !tbaa !22
  %1944 = getelementptr inbounds ptr, ptr %1943, i64 4
  %1945 = load ptr, ptr %1944, align 8
  invoke void %1945(ptr noundef nonnull align 8 dereferenceable(224) %1941, ptr noundef %1942, i32 noundef 0)
          to label %1946 unwind label %2787

1946:                                             ; preds = %1940
  %1947 = load ptr, ptr %4, align 8, !tbaa !5
  %1948 = load ptr, ptr %310, align 8, !tbaa !5
  %1949 = load ptr, ptr %1947, align 8, !tbaa !22
  %1950 = getelementptr inbounds ptr, ptr %1949, i64 4
  %1951 = load ptr, ptr %1950, align 8
  invoke void %1951(ptr noundef nonnull align 8 dereferenceable(224) %1947, ptr noundef %1948, i32 noundef 0)
          to label %1952 unwind label %2787

1952:                                             ; preds = %1946
  %1953 = load ptr, ptr %302, align 8, !tbaa !5
  %1954 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %1953)
          to label %1955 unwind label %2787

1955:                                             ; preds = %1952
  call void @llvm.lifetime.start.p0(i64 24, ptr %323) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %323, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #14
  store i32 1, ptr %324, align 4, !tbaa !15
  call void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind writable sret(%"struct.P3D::Vector") align 8 %322, ptr noundef nonnull align 8 dereferenceable(24) %323, ptr noundef nonnull align 4 dereferenceable(4) %324) #14
  invoke void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416) %1954, ptr noundef byval(%"struct.P3D::Vector") align 8 %322)
          to label %1956 unwind label %2817

1956:                                             ; preds = %1955
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %323) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %325) #14
  %1957 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1958 unwind label %2821

1958:                                             ; preds = %1956
  store i1 true, ptr %332, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %326) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %326, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1959 unwind label %2825

1959:                                             ; preds = %1958
  call void @llvm.lifetime.start.p0(i64 96, ptr %327) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %327, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1960 unwind label %2829

1960:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 48, ptr %328) #14
  %1961 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %328, i32 0, i32 0
  store double 1.000000e+00, ptr %1961, align 8, !tbaa !9
  %1962 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %328, i32 0, i32 1
  store double 1.000000e+00, ptr %1962, align 8, !tbaa !13
  %1963 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %328, i32 0, i32 2
  store double 1.000000e+00, ptr %1963, align 8, !tbaa !14
  %1964 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %328, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1964, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %329) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %330) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %1965 unwind label %2833

1965:                                             ; preds = %1960
  call void @llvm.lifetime.start.p0(i64 4, ptr %331) #14
  store i32 0, ptr %331, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1957, ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef nonnull align 8 dereferenceable(96) %327, ptr noundef nonnull align 8 dereferenceable(48) %328, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull align 4 dereferenceable(4) %331)
          to label %1966 unwind label %2837

1966:                                             ; preds = %1965
  store i1 false, ptr %332, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %328) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %327) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #14
  store ptr %1957, ptr %325, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %333) #14
  %1967 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %1968 unwind label %2847

1968:                                             ; preds = %1966
  store i1 true, ptr %340, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %334) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %334, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1969 unwind label %2851

1969:                                             ; preds = %1968
  call void @llvm.lifetime.start.p0(i64 96, ptr %335) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %335)
          to label %1970 unwind label %2855

1970:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 48, ptr %336) #14
  %1971 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %336, i32 0, i32 0
  store double 1.000000e+00, ptr %1971, align 8, !tbaa !9
  %1972 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %336, i32 0, i32 1
  store double 1.000000e+00, ptr %1972, align 8, !tbaa !13
  %1973 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %336, i32 0, i32 2
  store double 1.000000e+00, ptr %1973, align 8, !tbaa !14
  %1974 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %336, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1974, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %337) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %338) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %338)
          to label %1975 unwind label %2859

1975:                                             ; preds = %1970
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #14
  store i32 0, ptr %339, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1967, ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 8 dereferenceable(96) %335, ptr noundef nonnull align 8 dereferenceable(48) %336, ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull align 4 dereferenceable(4) %339)
          to label %1976 unwind label %2863

1976:                                             ; preds = %1975
  store i1 false, ptr %340, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %338) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %337) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %336) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %335) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #14
  store ptr %1967, ptr %333, align 8, !tbaa !5
  %1977 = load ptr, ptr %4, align 8, !tbaa !5
  %1978 = load ptr, ptr %325, align 8, !tbaa !5
  %1979 = load ptr, ptr %1977, align 8, !tbaa !22
  %1980 = getelementptr inbounds ptr, ptr %1979, i64 4
  %1981 = load ptr, ptr %1980, align 8
  invoke void %1981(ptr noundef nonnull align 8 dereferenceable(224) %1977, ptr noundef %1978, i32 noundef 0)
          to label %1982 unwind label %2847

1982:                                             ; preds = %1976
  %1983 = load ptr, ptr %4, align 8, !tbaa !5
  %1984 = load ptr, ptr %333, align 8, !tbaa !5
  %1985 = load ptr, ptr %1983, align 8, !tbaa !22
  %1986 = getelementptr inbounds ptr, ptr %1985, i64 4
  %1987 = load ptr, ptr %1986, align 8
  invoke void %1987(ptr noundef nonnull align 8 dereferenceable(224) %1983, ptr noundef %1984, i32 noundef 0)
          to label %1988 unwind label %2847

1988:                                             ; preds = %1982
  %1989 = load ptr, ptr %4, align 8, !tbaa !5
  %1990 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 232) #15
          to label %1991 unwind label %2847

1991:                                             ; preds = %1988
  store i1 true, ptr %349, align 1
  call void @llvm.lifetime.start.p0(i64 104, ptr %341) #14
  %1992 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %341, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %342) #14
  store double 1.000000e+00, ptr %342, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %343) #14
  store double 0.000000e+00, ptr %343, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %344) #14
  store double 0.000000e+00, ptr %344, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %1992, ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull align 8 dereferenceable(8) %344)
          to label %1993 unwind label %2873

1993:                                             ; preds = %1991
  %1994 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %341, i32 0, i32 1
  %1995 = load ptr, ptr %325, align 8, !tbaa !5
  store ptr %1995, ptr %1994, align 8, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 104, ptr %345) #14
  %1996 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %345, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #14
  store double 0.000000e+00, ptr %346, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %347) #14
  store double 0.000000e+00, ptr %347, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %348) #14
  store double 0.000000e+00, ptr %348, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %1996, ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull align 8 dereferenceable(8) %347, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %1997 unwind label %2877

1997:                                             ; preds = %1993
  %1998 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %345, i32 0, i32 1
  %1999 = load ptr, ptr %333, align 8, !tbaa !5
  store ptr %1999, ptr %1998, align 8, !tbaa !34
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %1990, ptr noundef nonnull align 8 dereferenceable(104) %341, ptr noundef nonnull align 8 dereferenceable(104) %345, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %2000 unwind label %2877

2000:                                             ; preds = %1997
  store i1 false, ptr %349, align 1
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %1989, ptr noundef %1990)
          to label %2001 unwind label %2877

2001:                                             ; preds = %2000
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %345) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %341) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %350) #14
  %2002 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2003 unwind label %2887

2003:                                             ; preds = %2001
  store i1 true, ptr %357, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %351) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %351, double noundef 2.000000e+00, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %2004 unwind label %2891

2004:                                             ; preds = %2003
  call void @llvm.lifetime.start.p0(i64 96, ptr %352) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %352, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %2005 unwind label %2895

2005:                                             ; preds = %2004
  call void @llvm.lifetime.start.p0(i64 48, ptr %353) #14
  %2006 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %353, i32 0, i32 0
  store double 1.000000e+00, ptr %2006, align 8, !tbaa !9
  %2007 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %353, i32 0, i32 1
  store double 1.000000e+00, ptr %2007, align 8, !tbaa !13
  %2008 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %353, i32 0, i32 2
  store double 1.000000e+00, ptr %2008, align 8, !tbaa !14
  %2009 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %353, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2009, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %355) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %355)
          to label %2010 unwind label %2899

2010:                                             ; preds = %2005
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #14
  store i32 0, ptr %356, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2002, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(96) %352, ptr noundef nonnull align 8 dereferenceable(48) %353, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 4 dereferenceable(4) %356)
          to label %2011 unwind label %2903

2011:                                             ; preds = %2010
  store i1 false, ptr %357, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %355) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %353) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %352) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %351) #14
  store ptr %2002, ptr %350, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #14
  %2012 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2013 unwind label %2913

2013:                                             ; preds = %2011
  store i1 true, ptr %365, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %359) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %359, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2014 unwind label %2917

2014:                                             ; preds = %2013
  call void @llvm.lifetime.start.p0(i64 96, ptr %360) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %360)
          to label %2015 unwind label %2921

2015:                                             ; preds = %2014
  call void @llvm.lifetime.start.p0(i64 48, ptr %361) #14
  %2016 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %361, i32 0, i32 0
  store double 2.000000e+00, ptr %2016, align 8, !tbaa !9
  %2017 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %361, i32 0, i32 1
  store double 1.000000e+00, ptr %2017, align 8, !tbaa !13
  %2018 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %361, i32 0, i32 2
  store double 1.000000e+00, ptr %2018, align 8, !tbaa !14
  %2019 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %361, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2019, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %362) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %363) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %363)
          to label %2020 unwind label %2925

2020:                                             ; preds = %2015
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #14
  store i32 0, ptr %364, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2012, ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull align 8 dereferenceable(96) %360, ptr noundef nonnull align 8 dereferenceable(48) %361, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull align 4 dereferenceable(4) %364)
          to label %2021 unwind label %2929

2021:                                             ; preds = %2020
  store i1 false, ptr %365, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %361) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %360) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #14
  store ptr %2012, ptr %358, align 8, !tbaa !5
  %2022 = load ptr, ptr %4, align 8, !tbaa !5
  %2023 = load ptr, ptr %350, align 8, !tbaa !5
  %2024 = load ptr, ptr %2022, align 8, !tbaa !22
  %2025 = getelementptr inbounds ptr, ptr %2024, i64 4
  %2026 = load ptr, ptr %2025, align 8
  invoke void %2026(ptr noundef nonnull align 8 dereferenceable(224) %2022, ptr noundef %2023, i32 noundef 0)
          to label %2027 unwind label %2913

2027:                                             ; preds = %2021
  %2028 = load ptr, ptr %4, align 8, !tbaa !5
  %2029 = load ptr, ptr %358, align 8, !tbaa !5
  %2030 = load ptr, ptr %2028, align 8, !tbaa !22
  %2031 = getelementptr inbounds ptr, ptr %2030, i64 4
  %2032 = load ptr, ptr %2031, align 8
  invoke void %2032(ptr noundef nonnull align 8 dereferenceable(224) %2028, ptr noundef %2029, i32 noundef 0)
          to label %2033 unwind label %2913

2033:                                             ; preds = %2027
  %2034 = load ptr, ptr %4, align 8, !tbaa !5
  %2035 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 232) #15
          to label %2036 unwind label %2913

2036:                                             ; preds = %2033
  store i1 true, ptr %374, align 1
  call void @llvm.lifetime.start.p0(i64 104, ptr %366) #14
  %2037 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %366, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %367) #14
  store double 1.000000e+00, ptr %367, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #14
  store double 0.000000e+00, ptr %368, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #14
  store double 0.000000e+00, ptr %369, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %2037, ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef nonnull align 8 dereferenceable(8) %369)
          to label %2038 unwind label %2939

2038:                                             ; preds = %2036
  %2039 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %366, i32 0, i32 1
  %2040 = load ptr, ptr %350, align 8, !tbaa !5
  store ptr %2040, ptr %2039, align 8, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 104, ptr %370) #14
  %2041 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %370, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %371) #14
  store double 0.000000e+00, ptr %371, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %372) #14
  store double 0.000000e+00, ptr %372, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %373) #14
  store double 0.000000e+00, ptr %373, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %2041, ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(8) %373)
          to label %2042 unwind label %2943

2042:                                             ; preds = %2038
  %2043 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %370, i32 0, i32 1
  %2044 = load ptr, ptr %358, align 8, !tbaa !5
  store ptr %2044, ptr %2043, align 8, !tbaa !34
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %2035, ptr noundef nonnull align 8 dereferenceable(104) %366, ptr noundef nonnull align 8 dereferenceable(104) %370, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %2045 unwind label %2943

2045:                                             ; preds = %2042
  store i1 false, ptr %374, align 1
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %2034, ptr noundef %2035)
          to label %2046 unwind label %2943

2046:                                             ; preds = %2045
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %372) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %371) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %370) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %367) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %366) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #14
  %2047 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2048 unwind label %2953

2048:                                             ; preds = %2046
  store i1 true, ptr %382, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %376) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %376, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2049 unwind label %2957

2049:                                             ; preds = %2048
  call void @llvm.lifetime.start.p0(i64 96, ptr %377) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %377, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %2050 unwind label %2961

2050:                                             ; preds = %2049
  call void @llvm.lifetime.start.p0(i64 48, ptr %378) #14
  %2051 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %378, i32 0, i32 0
  store double 1.000000e+00, ptr %2051, align 8, !tbaa !9
  %2052 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %378, i32 0, i32 1
  store double 1.000000e+00, ptr %2052, align 8, !tbaa !13
  %2053 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %378, i32 0, i32 2
  store double 1.000000e+00, ptr %2053, align 8, !tbaa !14
  %2054 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %378, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2054, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %379) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %380) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %380)
          to label %2055 unwind label %2965

2055:                                             ; preds = %2050
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #14
  store i32 0, ptr %381, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2047, ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull align 8 dereferenceable(96) %377, ptr noundef nonnull align 8 dereferenceable(48) %378, ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull align 4 dereferenceable(4) %381)
          to label %2056 unwind label %2969

2056:                                             ; preds = %2055
  store i1 false, ptr %382, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %378) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %377) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #14
  store ptr %2047, ptr %375, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %383) #14
  %2057 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2058 unwind label %2979

2058:                                             ; preds = %2056
  store i1 true, ptr %390, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %384) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %384, double noundef 2.000000e+00, double noundef 2.000000e+00, double noundef 2.000000e+00)
          to label %2059 unwind label %2983

2059:                                             ; preds = %2058
  call void @llvm.lifetime.start.p0(i64 96, ptr %385) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %385)
          to label %2060 unwind label %2987

2060:                                             ; preds = %2059
  call void @llvm.lifetime.start.p0(i64 48, ptr %386) #14
  %2061 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %386, i32 0, i32 0
  store double 1.000000e+00, ptr %2061, align 8, !tbaa !9
  %2062 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %386, i32 0, i32 1
  store double 5.000000e-01, ptr %2062, align 8, !tbaa !13
  %2063 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %386, i32 0, i32 2
  store double 1.000000e+00, ptr %2063, align 8, !tbaa !14
  %2064 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %386, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2064, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %387) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %388) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %388)
          to label %2065 unwind label %2991

2065:                                             ; preds = %2060
  call void @llvm.lifetime.start.p0(i64 4, ptr %389) #14
  store i32 0, ptr %389, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2057, ptr noundef nonnull align 8 dereferenceable(32) %384, ptr noundef nonnull align 8 dereferenceable(96) %385, ptr noundef nonnull align 8 dereferenceable(48) %386, ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %2066 unwind label %2995

2066:                                             ; preds = %2065
  store i1 false, ptr %390, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %389) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %386) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %385) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %384) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #14
  store ptr %2057, ptr %383, align 8, !tbaa !5
  %2067 = load ptr, ptr %4, align 8, !tbaa !5
  %2068 = load ptr, ptr %375, align 8, !tbaa !5
  %2069 = load ptr, ptr %2067, align 8, !tbaa !22
  %2070 = getelementptr inbounds ptr, ptr %2069, i64 4
  %2071 = load ptr, ptr %2070, align 8
  invoke void %2071(ptr noundef nonnull align 8 dereferenceable(224) %2067, ptr noundef %2068, i32 noundef 0)
          to label %2072 unwind label %2979

2072:                                             ; preds = %2066
  %2073 = load ptr, ptr %4, align 8, !tbaa !5
  %2074 = load ptr, ptr %383, align 8, !tbaa !5
  %2075 = load ptr, ptr %2073, align 8, !tbaa !22
  %2076 = getelementptr inbounds ptr, ptr %2075, i64 4
  %2077 = load ptr, ptr %2076, align 8
  invoke void %2077(ptr noundef nonnull align 8 dereferenceable(224) %2073, ptr noundef %2074, i32 noundef 0)
          to label %2078 unwind label %2979

2078:                                             ; preds = %2072
  %2079 = load ptr, ptr %4, align 8, !tbaa !5
  %2080 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 232) #15
          to label %2081 unwind label %2979

2081:                                             ; preds = %2078
  store i1 true, ptr %399, align 1
  call void @llvm.lifetime.start.p0(i64 104, ptr %391) #14
  %2082 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %391, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %392) #14
  store double 1.000000e+00, ptr %392, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %393) #14
  store double 0.000000e+00, ptr %393, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %394) #14
  store double 0.000000e+00, ptr %394, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %2082, ptr noundef nonnull align 8 dereferenceable(8) %392, ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef nonnull align 8 dereferenceable(8) %394)
          to label %2083 unwind label %3005

2083:                                             ; preds = %2081
  %2084 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %391, i32 0, i32 1
  %2085 = load ptr, ptr %375, align 8, !tbaa !5
  store ptr %2085, ptr %2084, align 8, !tbaa !34
  call void @llvm.lifetime.start.p0(i64 104, ptr %395) #14
  %2086 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %395, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %396) #14
  store double 0.000000e+00, ptr %396, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %397) #14
  store double 0.000000e+00, ptr %397, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %398) #14
  store double 0.000000e+00, ptr %398, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %2086, ptr noundef nonnull align 8 dereferenceable(8) %396, ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef nonnull align 8 dereferenceable(8) %398)
          to label %2087 unwind label %3009

2087:                                             ; preds = %2083
  %2088 = getelementptr inbounds %"struct.P3D::AttachedPart", ptr %395, i32 0, i32 1
  %2089 = load ptr, ptr %383, align 8, !tbaa !5
  store ptr %2089, ptr %2088, align 8, !tbaa !34
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %2080, ptr noundef nonnull align 8 dereferenceable(104) %391, ptr noundef nonnull align 8 dereferenceable(104) %395, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %2090 unwind label %3009

2090:                                             ; preds = %2087
  store i1 false, ptr %399, align 1
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %2079, ptr noundef %2080)
          to label %2091 unwind label %3009

2091:                                             ; preds = %2090
  call void @llvm.lifetime.end.p0(i64 8, ptr %398) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %397) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %395) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %394) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %393) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %391) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %383) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #14
  %2092 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2093 unwind label %3019

2093:                                             ; preds = %2091
  store i1 true, ptr %407, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %401) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %401, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2094 unwind label %3023

2094:                                             ; preds = %2093
  call void @llvm.lifetime.start.p0(i64 96, ptr %402) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %402, double noundef -3.000000e+00, double noundef 3.000000e+00, double noundef 7.000000e+00)
          to label %2095 unwind label %3027

2095:                                             ; preds = %2094
  call void @llvm.lifetime.start.p0(i64 48, ptr %403) #14
  %2096 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %403, i32 0, i32 0
  store double 1.000000e+00, ptr %2096, align 8, !tbaa !9
  %2097 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %403, i32 0, i32 1
  store double 1.000000e+00, ptr %2097, align 8, !tbaa !13
  %2098 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %403, i32 0, i32 2
  store double 1.000000e+00, ptr %2098, align 8, !tbaa !14
  %2099 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %403, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2099, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %404) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %405) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %405)
          to label %2100 unwind label %3031

2100:                                             ; preds = %2095
  call void @llvm.lifetime.start.p0(i64 4, ptr %406) #14
  store i32 0, ptr %406, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2092, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 8 dereferenceable(96) %402, ptr noundef nonnull align 8 dereferenceable(48) %403, ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef nonnull align 4 dereferenceable(4) %406)
          to label %2101 unwind label %3035

2101:                                             ; preds = %2100
  store i1 false, ptr %407, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %406) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %403) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %402) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #14
  store ptr %2092, ptr %400, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #14
  %2102 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2103 unwind label %3045

2103:                                             ; preds = %2101
  store i1 true, ptr %415, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %409) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %409, double noundef 9.000000e-01, double noundef 9.000000e-01, double noundef 9.000000e-01)
          to label %2104 unwind label %3049

2104:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 96, ptr %410) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %410)
          to label %2105 unwind label %3053

2105:                                             ; preds = %2104
  call void @llvm.lifetime.start.p0(i64 48, ptr %411) #14
  %2106 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %411, i32 0, i32 0
  store double 1.000000e+00, ptr %2106, align 8, !tbaa !9
  %2107 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %411, i32 0, i32 1
  store double 1.000000e+00, ptr %2107, align 8, !tbaa !13
  %2108 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %411, i32 0, i32 2
  store double 1.000000e+00, ptr %2108, align 8, !tbaa !14
  %2109 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %411, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2109, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %412) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %413) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %413)
          to label %2110 unwind label %3057

2110:                                             ; preds = %2105
  call void @llvm.lifetime.start.p0(i64 4, ptr %414) #14
  store i32 0, ptr %414, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2102, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull align 8 dereferenceable(96) %410, ptr noundef nonnull align 8 dereferenceable(48) %411, ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 4 dereferenceable(4) %414)
          to label %2111 unwind label %3061

2111:                                             ; preds = %2110
  store i1 false, ptr %415, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %413) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %412) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %411) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %410) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #14
  store ptr %2102, ptr %408, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %416) #14
  %2112 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2113 unwind label %3071

2113:                                             ; preds = %2111
  store i1 true, ptr %423, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %417) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %417, double noundef 8.000000e-01, double noundef 8.000000e-01, double noundef 8.000000e-01)
          to label %2114 unwind label %3075

2114:                                             ; preds = %2113
  call void @llvm.lifetime.start.p0(i64 96, ptr %418) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %418)
          to label %2115 unwind label %3079

2115:                                             ; preds = %2114
  call void @llvm.lifetime.start.p0(i64 48, ptr %419) #14
  %2116 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %419, i32 0, i32 0
  store double 1.000000e+00, ptr %2116, align 8, !tbaa !9
  %2117 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %419, i32 0, i32 1
  store double 1.000000e+00, ptr %2117, align 8, !tbaa !13
  %2118 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %419, i32 0, i32 2
  store double 1.000000e+00, ptr %2118, align 8, !tbaa !14
  %2119 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %419, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2119, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %420) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %421) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %421)
          to label %2120 unwind label %3083

2120:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #14
  store i32 0, ptr %422, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2112, ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef nonnull align 8 dereferenceable(96) %418, ptr noundef nonnull align 8 dereferenceable(48) %419, ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull align 4 dereferenceable(4) %422)
          to label %2121 unwind label %3087

2121:                                             ; preds = %2120
  store i1 false, ptr %423, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %421) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %420) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %419) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %418) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #14
  store ptr %2112, ptr %416, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #14
  %2122 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2123 unwind label %3097

2123:                                             ; preds = %2121
  store i1 true, ptr %431, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %425) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %425, double noundef 0x3FE6666666666666, double noundef 0x3FE6666666666666, double noundef 0x3FE6666666666666)
          to label %2124 unwind label %3101

2124:                                             ; preds = %2123
  call void @llvm.lifetime.start.p0(i64 96, ptr %426) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %426)
          to label %2125 unwind label %3105

2125:                                             ; preds = %2124
  call void @llvm.lifetime.start.p0(i64 48, ptr %427) #14
  %2126 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %427, i32 0, i32 0
  store double 1.000000e+00, ptr %2126, align 8, !tbaa !9
  %2127 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %427, i32 0, i32 1
  store double 1.000000e+00, ptr %2127, align 8, !tbaa !13
  %2128 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %427, i32 0, i32 2
  store double 1.000000e+00, ptr %2128, align 8, !tbaa !14
  %2129 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %427, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2129, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %428) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %429) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %429) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %429)
          to label %2130 unwind label %3109

2130:                                             ; preds = %2125
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #14
  store i32 0, ptr %430, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2122, ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull align 8 dereferenceable(96) %426, ptr noundef nonnull align 8 dereferenceable(48) %427, ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef nonnull align 4 dereferenceable(4) %430)
          to label %2131 unwind label %3113

2131:                                             ; preds = %2130
  store i1 false, ptr %431, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %429) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %429) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %428) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %427) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %426) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %425) #14
  store ptr %2122, ptr %424, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %432) #14
  %2132 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2133 unwind label %3123

2133:                                             ; preds = %2131
  store i1 true, ptr %439, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %433) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %433, double noundef 6.000000e-01, double noundef 6.000000e-01, double noundef 6.000000e-01)
          to label %2134 unwind label %3127

2134:                                             ; preds = %2133
  call void @llvm.lifetime.start.p0(i64 96, ptr %434) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %434)
          to label %2135 unwind label %3131

2135:                                             ; preds = %2134
  call void @llvm.lifetime.start.p0(i64 48, ptr %435) #14
  %2136 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %435, i32 0, i32 0
  store double 1.000000e+00, ptr %2136, align 8, !tbaa !9
  %2137 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %435, i32 0, i32 1
  store double 1.000000e+00, ptr %2137, align 8, !tbaa !13
  %2138 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %435, i32 0, i32 2
  store double 1.000000e+00, ptr %2138, align 8, !tbaa !14
  %2139 = getelementptr inbounds %"struct.P3D::PartProperties", ptr %435, i32 0, i32 3
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %2139, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %437) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %437)
          to label %2140 unwind label %3135

2140:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 4, ptr %438) #14
  store i32 0, ptr %438, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2132, ptr noundef nonnull align 8 dereferenceable(32) %433, ptr noundef nonnull align 8 dereferenceable(96) %434, ptr noundef nonnull align 8 dereferenceable(48) %435, ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef nonnull align 4 dereferenceable(4) %438)
          to label %2141 unwind label %3139

2141:                                             ; preds = %2140
  store i1 false, ptr %439, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %438) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %437) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %435) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %434) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %433) #14
  store ptr %2132, ptr %432, align 8, !tbaa !5
  %2142 = load ptr, ptr %408, align 8, !tbaa !5
  %2143 = load ptr, ptr %416, align 8, !tbaa !5
  %2144 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #15
          to label %2145 unwind label %3123

2145:                                             ; preds = %2141
  call void @llvm.memset.p0.i64(ptr align 16 %2144, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %2144) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %440) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %441) #14
  store double 1.200000e+00, ptr %441, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #14
  store double 0.000000e+00, ptr %442, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %443) #14
  store double 0.000000e+00, ptr %443, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %440, ptr noundef nonnull align 8 dereferenceable(8) %441, ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull align 8 dereferenceable(8) %443)
          to label %2146 unwind label %3149

2146:                                             ; preds = %2145
  call void @llvm.lifetime.start.p0(i64 96, ptr %444) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %445) #14
  store double 0.000000e+00, ptr %445, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %446) #14
  store double 0.000000e+00, ptr %446, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %447) #14
  store double 0.000000e+00, ptr %447, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %444, ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef nonnull align 8 dereferenceable(8) %446, ptr noundef nonnull align 8 dereferenceable(8) %447)
          to label %2147 unwind label %3153

2147:                                             ; preds = %2146
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2142, ptr noundef %2143, ptr noundef %2144, ptr noundef nonnull align 8 dereferenceable(96) %440, ptr noundef nonnull align 8 dereferenceable(96) %444)
          to label %2148 unwind label %3153

2148:                                             ; preds = %2147
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %444) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %440) #14
  %2149 = load ptr, ptr %400, align 8, !tbaa !5
  %2150 = load ptr, ptr %408, align 8, !tbaa !5
  %2151 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #15
          to label %2152 unwind label %3123

2152:                                             ; preds = %2148
  call void @llvm.memset.p0.i64(ptr align 16 %2151, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %2151) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %448) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #14
  store double 1.200000e+00, ptr %449, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %450) #14
  store double 0.000000e+00, ptr %450, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %451) #14
  store double 0.000000e+00, ptr %451, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %448, ptr noundef nonnull align 8 dereferenceable(8) %449, ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef nonnull align 8 dereferenceable(8) %451)
          to label %2153 unwind label %3158

2153:                                             ; preds = %2152
  call void @llvm.lifetime.start.p0(i64 96, ptr %452) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %453) #14
  store double 0.000000e+00, ptr %453, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %454) #14
  store double 0.000000e+00, ptr %454, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %455) #14
  store double 0.000000e+00, ptr %455, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %452, ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef nonnull align 8 dereferenceable(8) %454, ptr noundef nonnull align 8 dereferenceable(8) %455)
          to label %2154 unwind label %3162

2154:                                             ; preds = %2153
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2149, ptr noundef %2150, ptr noundef %2151, ptr noundef nonnull align 8 dereferenceable(96) %448, ptr noundef nonnull align 8 dereferenceable(96) %452)
          to label %2155 unwind label %3162

2155:                                             ; preds = %2154
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %452) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %451) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %448) #14
  %2156 = load ptr, ptr %416, align 8, !tbaa !5
  %2157 = load ptr, ptr %424, align 8, !tbaa !5
  %2158 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #15
          to label %2159 unwind label %3123

2159:                                             ; preds = %2155
  call void @llvm.memset.p0.i64(ptr align 16 %2158, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %2158) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %456) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %457) #14
  store double 1.200000e+00, ptr %457, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %458) #14
  store double 0.000000e+00, ptr %458, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %459) #14
  store double 0.000000e+00, ptr %459, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %456, ptr noundef nonnull align 8 dereferenceable(8) %457, ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef nonnull align 8 dereferenceable(8) %459)
          to label %2160 unwind label %3167

2160:                                             ; preds = %2159
  call void @llvm.lifetime.start.p0(i64 96, ptr %460) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %461) #14
  store double 0.000000e+00, ptr %461, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %462) #14
  store double 0.000000e+00, ptr %462, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %463) #14
  store double 0.000000e+00, ptr %463, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %460, ptr noundef nonnull align 8 dereferenceable(8) %461, ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef nonnull align 8 dereferenceable(8) %463)
          to label %2161 unwind label %3171

2161:                                             ; preds = %2160
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2156, ptr noundef %2157, ptr noundef %2158, ptr noundef nonnull align 8 dereferenceable(96) %456, ptr noundef nonnull align 8 dereferenceable(96) %460)
          to label %2162 unwind label %3171

2162:                                             ; preds = %2161
  call void @llvm.lifetime.end.p0(i64 8, ptr %463) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %462) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %460) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %458) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %456) #14
  %2163 = load ptr, ptr %424, align 8, !tbaa !5
  %2164 = load ptr, ptr %432, align 8, !tbaa !5
  %2165 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #15
          to label %2166 unwind label %3123

2166:                                             ; preds = %2162
  call void @llvm.memset.p0.i64(ptr align 16 %2165, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %2165) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr %464) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %465) #14
  store double 1.200000e+00, ptr %465, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %466) #14
  store double 0.000000e+00, ptr %466, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %467) #14
  store double 0.000000e+00, ptr %467, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %464, ptr noundef nonnull align 8 dereferenceable(8) %465, ptr noundef nonnull align 8 dereferenceable(8) %466, ptr noundef nonnull align 8 dereferenceable(8) %467)
          to label %2167 unwind label %3176

2167:                                             ; preds = %2166
  call void @llvm.lifetime.start.p0(i64 96, ptr %468) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %469) #14
  store double 0.000000e+00, ptr %469, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %470) #14
  store double 0.000000e+00, ptr %470, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %471) #14
  store double 0.000000e+00, ptr %471, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %468, ptr noundef nonnull align 8 dereferenceable(8) %469, ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull align 8 dereferenceable(8) %471)
          to label %2168 unwind label %3180

2168:                                             ; preds = %2167
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2163, ptr noundef %2164, ptr noundef %2165, ptr noundef nonnull align 8 dereferenceable(96) %464, ptr noundef nonnull align 8 dereferenceable(96) %468)
          to label %2169 unwind label %3180

2169:                                             ; preds = %2168
  call void @llvm.lifetime.end.p0(i64 8, ptr %471) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %470) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %469) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %468) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %467) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %466) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %464) #14
  %2170 = load ptr, ptr %4, align 8, !tbaa !5
  %2171 = load ptr, ptr %408, align 8, !tbaa !5
  %2172 = load ptr, ptr %2170, align 8, !tbaa !22
  %2173 = getelementptr inbounds ptr, ptr %2172, i64 4
  %2174 = load ptr, ptr %2173, align 8
  invoke void %2174(ptr noundef nonnull align 8 dereferenceable(224) %2170, ptr noundef %2171, i32 noundef 0)
          to label %2175 unwind label %3123

2175:                                             ; preds = %2169
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %472) #14
  store double 1.000000e+01, ptr %472, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #14
  %2176 = load ptr, ptr %3, align 8, !tbaa !5
  %2177 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %2176, i32 0, i32 0
  %2178 = call noundef i32 @_ZN3P3D6Engine8RegistryImE6createERKj(ptr noundef nonnull align 8 dereferenceable(212) %2177, ptr noundef nonnull align 4 dereferenceable(4) @_ZN3P3D6Engine8RegistryImE11null_entityE) #14
  store i32 %2178, ptr %473, align 4, !tbaa !15
  %2179 = load ptr, ptr %3, align 8, !tbaa !5
  %2180 = getelementptr inbounds %"class.P3D::Application::Screen", ptr %2179, i32 0, i32 0
  call void @_ZN3P3D6Engine8RegistryImE3addINS_11Application4Comp4NameEJRA12_KcEEENS_13intrusive_ptrIT_EERKjDpOT0_(ptr dead_on_unwind writable sret(%"class.P3D::intrusive_ptr.88") align 8 %474, ptr noundef nonnull align 8 dereferenceable(212) %2180, ptr noundef nonnull align 4 dereferenceable(4) %473, ptr noundef nonnull align 1 dereferenceable(12) @.str.41) #14
  call void @_ZN3P3D13intrusive_ptrINS_11Application4Comp4NameEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %474) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %475) #14
  %2181 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2182 unwind label %3190

2182:                                             ; preds = %2175
  store i1 true, ptr %480, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %476) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %476, double noundef 1.000000e+00, double noundef 4.000000e-01, double noundef 2.000000e+00)
          to label %2183 unwind label %3194

2183:                                             ; preds = %2182
  call void @llvm.lifetime.start.p0(i64 96, ptr %477) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %477, double noundef -6.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00)
          to label %2184 unwind label %3198

2184:                                             ; preds = %2183
  call void @llvm.lifetime.start.p0(i64 32, ptr %478) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %479) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %479)
          to label %2185 unwind label %3202

2185:                                             ; preds = %2184
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2181, ptr noundef nonnull align 8 dereferenceable(32) %476, ptr noundef nonnull align 8 dereferenceable(96) %477, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %478, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %2186 unwind label %3206

2186:                                             ; preds = %2185
  store i1 false, ptr %480, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %479) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %478) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %477) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %476) #14
  store ptr %2181, ptr %475, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %481) #14
  %2187 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2188 unwind label %3216

2188:                                             ; preds = %2186
  store i1 true, ptr %486, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %482) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %482, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %2189 unwind label %3220

2189:                                             ; preds = %2188
  call void @llvm.lifetime.start.p0(i64 96, ptr %483) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %483)
          to label %2190 unwind label %3224

2190:                                             ; preds = %2189
  call void @llvm.lifetime.start.p0(i64 32, ptr %484) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %485) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %485)
          to label %2191 unwind label %3228

2191:                                             ; preds = %2190
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2187, ptr noundef nonnull align 8 dereferenceable(32) %482, ptr noundef nonnull align 8 dereferenceable(96) %483, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %484, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %2192 unwind label %3232

2192:                                             ; preds = %2191
  store i1 false, ptr %486, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %485) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %484) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %483) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %482) #14
  store ptr %2187, ptr %481, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %487) #14
  %2193 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2194 unwind label %3242

2194:                                             ; preds = %2192
  store i1 true, ptr %492, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %488) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %488, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %2195 unwind label %3246

2195:                                             ; preds = %2194
  call void @llvm.lifetime.start.p0(i64 96, ptr %489) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %489)
          to label %2196 unwind label %3250

2196:                                             ; preds = %2195
  call void @llvm.lifetime.start.p0(i64 32, ptr %490) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %491) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %491)
          to label %2197 unwind label %3254

2197:                                             ; preds = %2196
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2193, ptr noundef nonnull align 8 dereferenceable(32) %488, ptr noundef nonnull align 8 dereferenceable(96) %489, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %490, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %2198 unwind label %3258

2198:                                             ; preds = %2197
  store i1 false, ptr %492, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %490) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %489) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %488) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %488) #14
  store ptr %2193, ptr %487, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %493) #14
  %2199 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2200 unwind label %3268

2200:                                             ; preds = %2198
  store i1 true, ptr %498, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %494) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %494, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %2201 unwind label %3272

2201:                                             ; preds = %2200
  call void @llvm.lifetime.start.p0(i64 96, ptr %495) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %495)
          to label %2202 unwind label %3276

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 32, ptr %496) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %497) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %497) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %496, ptr noundef @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %497)
          to label %2203 unwind label %3280

2203:                                             ; preds = %2202
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2199, ptr noundef nonnull align 8 dereferenceable(32) %494, ptr noundef nonnull align 8 dereferenceable(96) %495, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %496, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %2204 unwind label %3284

2204:                                             ; preds = %2203
  store i1 false, ptr %498, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %496) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %497) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %497) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %496) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %495) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %494) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %494) #14
  store ptr %2199, ptr %493, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %499) #14
  %2205 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2206 unwind label %3294

2206:                                             ; preds = %2204
  store i1 true, ptr %504, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %500) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %500, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %2207 unwind label %3298

2207:                                             ; preds = %2206
  call void @llvm.lifetime.start.p0(i64 96, ptr %501) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %501)
          to label %2208 unwind label %3302

2208:                                             ; preds = %2207
  call void @llvm.lifetime.start.p0(i64 32, ptr %502) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %503) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %502, ptr noundef @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %503)
          to label %2209 unwind label %3306

2209:                                             ; preds = %2208
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2205, ptr noundef nonnull align 8 dereferenceable(32) %500, ptr noundef nonnull align 8 dereferenceable(96) %501, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %502, ptr noundef nonnull align 4 dereferenceable(4) %473)
          to label %2210 unwind label %3310

2210:                                             ; preds = %2209
  store i1 false, ptr %504, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %502) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %503) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %502) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %501) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %500) #14
  store ptr %2205, ptr %499, align 8, !tbaa !5
  %2211 = load ptr, ptr %475, align 8, !tbaa !5
  %2212 = load ptr, ptr %481, align 8, !tbaa !5
  %2213 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2214 unwind label %3294

2214:                                             ; preds = %2210
  %2215 = load double, ptr %472, align 8, !tbaa !24
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2213, double noundef %2215)
          to label %2216 unwind label %3320

2216:                                             ; preds = %2214
  call void @llvm.lifetime.start.p0(i64 96, ptr %505) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %506) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %506, double noundef 5.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %505, ptr noundef nonnull align 8 dereferenceable(24) %506, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %2217 unwind label %3324

2217:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 96, ptr %507) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %508) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %508, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %507, ptr noundef nonnull align 8 dereferenceable(24) %508, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
          to label %2218 unwind label %3328

2218:                                             ; preds = %2217
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2211, ptr noundef %2212, ptr noundef %2213, ptr noundef nonnull align 8 dereferenceable(96) %505, ptr noundef nonnull align 8 dereferenceable(96) %507)
          to label %2219 unwind label %3328

2219:                                             ; preds = %2218
  call void @llvm.lifetime.end.p0(i64 24, ptr %508) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %507) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %506) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %505) #14
  %2220 = load ptr, ptr %475, align 8, !tbaa !5
  %2221 = load ptr, ptr %493, align 8, !tbaa !5
  %2222 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2223 unwind label %3294

2223:                                             ; preds = %2219
  %2224 = load double, ptr %472, align 8, !tbaa !24
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2222, double noundef %2224)
          to label %2225 unwind label %3333

2225:                                             ; preds = %2223
  call void @llvm.lifetime.start.p0(i64 96, ptr %509) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %510) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %510, double noundef 5.500000e-01, double noundef 0.000000e+00, double noundef -1.000000e+00) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %509, ptr noundef nonnull align 8 dereferenceable(24) %510, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %2226 unwind label %3337

2226:                                             ; preds = %2225
  call void @llvm.lifetime.start.p0(i64 96, ptr %511) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %512) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %512, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %511, ptr noundef nonnull align 8 dereferenceable(24) %512, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
          to label %2227 unwind label %3341

2227:                                             ; preds = %2226
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2220, ptr noundef %2221, ptr noundef %2222, ptr noundef nonnull align 8 dereferenceable(96) %509, ptr noundef nonnull align 8 dereferenceable(96) %511)
          to label %2228 unwind label %3341

2228:                                             ; preds = %2227
  call void @llvm.lifetime.end.p0(i64 24, ptr %512) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %511) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %510) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %509) #14
  %2229 = load ptr, ptr %475, align 8, !tbaa !5
  %2230 = load ptr, ptr %487, align 8, !tbaa !5
  %2231 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2232 unwind label %3294

2232:                                             ; preds = %2228
  %2233 = load double, ptr %472, align 8, !tbaa !24
  %2234 = fneg double %2233
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2231, double noundef %2234)
          to label %2235 unwind label %3346

2235:                                             ; preds = %2232
  call void @llvm.lifetime.start.p0(i64 96, ptr %513) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %514) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %514, double noundef -5.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %513, ptr noundef nonnull align 8 dereferenceable(24) %514, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
          to label %2236 unwind label %3350

2236:                                             ; preds = %2235
  call void @llvm.lifetime.start.p0(i64 96, ptr %515) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %516) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %516, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %515, ptr noundef nonnull align 8 dereferenceable(24) %516, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
          to label %2237 unwind label %3354

2237:                                             ; preds = %2236
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2229, ptr noundef %2230, ptr noundef %2231, ptr noundef nonnull align 8 dereferenceable(96) %513, ptr noundef nonnull align 8 dereferenceable(96) %515)
          to label %2238 unwind label %3354

2238:                                             ; preds = %2237
  call void @llvm.lifetime.end.p0(i64 24, ptr %516) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %515) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %514) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %513) #14
  %2239 = load ptr, ptr %475, align 8, !tbaa !5
  %2240 = load ptr, ptr %499, align 8, !tbaa !5
  %2241 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2242 unwind label %3294

2242:                                             ; preds = %2238
  %2243 = load double, ptr %472, align 8, !tbaa !24
  %2244 = fneg double %2243
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2241, double noundef %2244)
          to label %2245 unwind label %3359

2245:                                             ; preds = %2242
  call void @llvm.lifetime.start.p0(i64 96, ptr %517) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %518) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %518, double noundef -5.500000e-01, double noundef 0.000000e+00, double noundef -1.000000e+00) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %517, ptr noundef nonnull align 8 dereferenceable(24) %518, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
          to label %2246 unwind label %3363

2246:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 96, ptr %519) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %520) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %520, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %519, ptr noundef nonnull align 8 dereferenceable(24) %520, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
          to label %2247 unwind label %3367

2247:                                             ; preds = %2246
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2239, ptr noundef %2240, ptr noundef %2241, ptr noundef nonnull align 8 dereferenceable(96) %517, ptr noundef nonnull align 8 dereferenceable(96) %519)
          to label %2248 unwind label %3367

2248:                                             ; preds = %2247
  call void @llvm.lifetime.end.p0(i64 24, ptr %520) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %519) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %518) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %517) #14
  %2249 = load ptr, ptr %4, align 8, !tbaa !5
  %2250 = load ptr, ptr %475, align 8, !tbaa !5
  %2251 = load ptr, ptr %2249, align 8, !tbaa !22
  %2252 = getelementptr inbounds ptr, ptr %2251, i64 4
  %2253 = load ptr, ptr %2252, align 8
  invoke void %2253(ptr noundef nonnull align 8 dereferenceable(224) %2249, ptr noundef %2250, i32 noundef 0)
          to label %2254 unwind label %3294

2254:                                             ; preds = %2248
  call void @llvm.lifetime.end.p0(i64 8, ptr %499) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %493) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %487) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %481) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %475) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %472) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %521) #14
  %2255 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2256 unwind label %3377

2256:                                             ; preds = %2254
  store i1 true, ptr %527, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %522) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %522, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2257 unwind label %3381

2257:                                             ; preds = %2256
  call void @llvm.lifetime.start.p0(i64 96, ptr %523) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %523, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %2258 unwind label %3385

2258:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 32, ptr %524) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %525) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %525) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %525)
          to label %2259 unwind label %3389

2259:                                             ; preds = %2258
  call void @llvm.lifetime.start.p0(i64 4, ptr %526) #14
  store i32 0, ptr %526, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2255, ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull align 8 dereferenceable(96) %523, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef nonnull align 4 dereferenceable(4) %526)
          to label %2260 unwind label %3393

2260:                                             ; preds = %2259
  store i1 false, ptr %527, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %525) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %525) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %524) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %523) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %522) #14
  store ptr %2255, ptr %521, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %528) #14
  %2261 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2262 unwind label %3403

2262:                                             ; preds = %2260
  store i1 true, ptr %534, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %529) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %529, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2263 unwind label %3407

2263:                                             ; preds = %2262
  call void @llvm.lifetime.start.p0(i64 96, ptr %530) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %530)
          to label %2264 unwind label %3411

2264:                                             ; preds = %2263
  call void @llvm.lifetime.start.p0(i64 32, ptr %531) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %532) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %532) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %532)
          to label %2265 unwind label %3415

2265:                                             ; preds = %2264
  call void @llvm.lifetime.start.p0(i64 4, ptr %533) #14
  store i32 0, ptr %533, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2261, ptr noundef nonnull align 8 dereferenceable(32) %529, ptr noundef nonnull align 8 dereferenceable(96) %530, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %531, ptr noundef nonnull align 4 dereferenceable(4) %533)
          to label %2266 unwind label %3419

2266:                                             ; preds = %2265
  store i1 false, ptr %534, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %533) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %531) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %532) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %532) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %531) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %530) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %529) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %529) #14
  store ptr %2261, ptr %528, align 8, !tbaa !5
  %2267 = load ptr, ptr %521, align 8, !tbaa !5
  %2268 = load ptr, ptr %528, align 8, !tbaa !5
  %2269 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2270 unwind label %3403

2270:                                             ; preds = %2266
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2269, double noundef 1.000000e+00)
          to label %2271 unwind label %3429

2271:                                             ; preds = %2270
  call void @llvm.lifetime.start.p0(i64 96, ptr %535) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %536) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %536, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %535, ptr noundef nonnull align 8 dereferenceable(24) %536)
          to label %2272 unwind label %3433

2272:                                             ; preds = %2271
  call void @llvm.lifetime.start.p0(i64 96, ptr %537) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %538) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %538, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef -5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %537, ptr noundef nonnull align 8 dereferenceable(24) %538)
          to label %2273 unwind label %3437

2273:                                             ; preds = %2272
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2267, ptr noundef %2268, ptr noundef %2269, ptr noundef nonnull align 8 dereferenceable(96) %535, ptr noundef nonnull align 8 dereferenceable(96) %537)
          to label %2274 unwind label %3437

2274:                                             ; preds = %2273
  call void @llvm.lifetime.end.p0(i64 24, ptr %538) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %537) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %536) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %535) #14
  %2275 = load ptr, ptr %4, align 8, !tbaa !5
  %2276 = load ptr, ptr %521, align 8, !tbaa !5
  %2277 = load ptr, ptr %2275, align 8, !tbaa !22
  %2278 = getelementptr inbounds ptr, ptr %2277, i64 4
  %2279 = load ptr, ptr %2278, align 8
  invoke void %2279(ptr noundef nonnull align 8 dereferenceable(224) %2275, ptr noundef %2276, i32 noundef 0)
          to label %2280 unwind label %3403

2280:                                             ; preds = %2274
  call void @llvm.lifetime.end.p0(i64 8, ptr %528) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %521) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %539) #14
  %2281 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2282 unwind label %3444

2282:                                             ; preds = %2280
  store i1 true, ptr %545, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %540) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %540, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2283 unwind label %3448

2283:                                             ; preds = %2282
  call void @llvm.lifetime.start.p0(i64 96, ptr %541) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %541, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef -5.000000e+00)
          to label %2284 unwind label %3452

2284:                                             ; preds = %2283
  call void @llvm.lifetime.start.p0(i64 32, ptr %542) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %543) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %543)
          to label %2285 unwind label %3456

2285:                                             ; preds = %2284
  call void @llvm.lifetime.start.p0(i64 4, ptr %544) #14
  store i32 0, ptr %544, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2281, ptr noundef nonnull align 8 dereferenceable(32) %540, ptr noundef nonnull align 8 dereferenceable(96) %541, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %542, ptr noundef nonnull align 4 dereferenceable(4) %544)
          to label %2286 unwind label %3460

2286:                                             ; preds = %2285
  store i1 false, ptr %545, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %544) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %543) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %541) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %540) #14
  store ptr %2281, ptr %539, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %546) #14
  %2287 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2288 unwind label %3470

2288:                                             ; preds = %2286
  store i1 true, ptr %552, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %547) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %547, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2289 unwind label %3474

2289:                                             ; preds = %2288
  call void @llvm.lifetime.start.p0(i64 96, ptr %548) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %548)
          to label %2290 unwind label %3478

2290:                                             ; preds = %2289
  call void @llvm.lifetime.start.p0(i64 32, ptr %549) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %550) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %549, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %550)
          to label %2291 unwind label %3482

2291:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 4, ptr %551) #14
  store i32 0, ptr %551, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2287, ptr noundef nonnull align 8 dereferenceable(32) %547, ptr noundef nonnull align 8 dereferenceable(96) %548, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %549, ptr noundef nonnull align 4 dereferenceable(4) %551)
          to label %2292 unwind label %3486

2292:                                             ; preds = %2291
  store i1 false, ptr %552, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %551) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %549) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %550) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %549) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %548) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %547) #14
  store ptr %2287, ptr %546, align 8, !tbaa !5
  %2293 = load ptr, ptr %539, align 8, !tbaa !5
  %2294 = load ptr, ptr %546, align 8, !tbaa !5
  %2295 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %2296 unwind label %3470

2296:                                             ; preds = %2292
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %2295, double noundef 0.000000e+00, double noundef 6.283000e+00, double noundef 1.000000e+00)
          to label %2297 unwind label %3496

2297:                                             ; preds = %2296
  call void @llvm.lifetime.start.p0(i64 96, ptr %553) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %554) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %554, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %553, ptr noundef nonnull align 8 dereferenceable(24) %554)
          to label %2298 unwind label %3500

2298:                                             ; preds = %2297
  call void @llvm.lifetime.start.p0(i64 96, ptr %555) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %556) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %556, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %555, ptr noundef nonnull align 8 dereferenceable(24) %556)
          to label %2299 unwind label %3504

2299:                                             ; preds = %2298
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2293, ptr noundef %2294, ptr noundef %2295, ptr noundef nonnull align 8 dereferenceable(96) %553, ptr noundef nonnull align 8 dereferenceable(96) %555)
          to label %2300 unwind label %3504

2300:                                             ; preds = %2299
  call void @llvm.lifetime.end.p0(i64 24, ptr %556) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %555) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %554) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %553) #14
  %2301 = load ptr, ptr %4, align 8, !tbaa !5
  %2302 = load ptr, ptr %539, align 8, !tbaa !5
  %2303 = load ptr, ptr %2301, align 8, !tbaa !22
  %2304 = getelementptr inbounds ptr, ptr %2303, i64 4
  %2305 = load ptr, ptr %2304, align 8
  invoke void %2305(ptr noundef nonnull align 8 dereferenceable(224) %2301, ptr noundef %2302, i32 noundef 0)
          to label %2306 unwind label %3470

2306:                                             ; preds = %2300
  call void @llvm.lifetime.end.p0(i64 8, ptr %546) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %539) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %557) #14
  %2307 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2308 unwind label %3511

2308:                                             ; preds = %2306
  store i1 true, ptr %563, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %558) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %558, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2309 unwind label %3515

2309:                                             ; preds = %2308
  call void @llvm.lifetime.start.p0(i64 96, ptr %559) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %559, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+01)
          to label %2310 unwind label %3519

2310:                                             ; preds = %2309
  call void @llvm.lifetime.start.p0(i64 32, ptr %560) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %561) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %561) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %560, ptr noundef @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %561)
          to label %2311 unwind label %3523

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 4, ptr %562) #14
  store i32 0, ptr %562, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2307, ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull align 8 dereferenceable(96) %559, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %560, ptr noundef nonnull align 4 dereferenceable(4) %562)
          to label %2312 unwind label %3527

2312:                                             ; preds = %2311
  store i1 false, ptr %563, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %562) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %560) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %561) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %561) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %560) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %559) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %558) #14
  store ptr %2307, ptr %557, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %564) #14
  %2313 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2314 unwind label %3537

2314:                                             ; preds = %2312
  store i1 true, ptr %570, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %565) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %565, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2315 unwind label %3541

2315:                                             ; preds = %2314
  call void @llvm.lifetime.start.p0(i64 96, ptr %566) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %566)
          to label %2316 unwind label %3545

2316:                                             ; preds = %2315
  call void @llvm.lifetime.start.p0(i64 32, ptr %567) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %568) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %567, ptr noundef @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %568)
          to label %2317 unwind label %3549

2317:                                             ; preds = %2316
  call void @llvm.lifetime.start.p0(i64 4, ptr %569) #14
  store i32 0, ptr %569, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2313, ptr noundef nonnull align 8 dereferenceable(32) %565, ptr noundef nonnull align 8 dereferenceable(96) %566, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %567, ptr noundef nonnull align 4 dereferenceable(4) %569)
          to label %2318 unwind label %3553

2318:                                             ; preds = %2317
  store i1 false, ptr %570, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %568) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %567) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %566) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %565) #14
  store ptr %2313, ptr %564, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %571) #14
  %2319 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2320 unwind label %3563

2320:                                             ; preds = %2318
  store i1 true, ptr %577, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %572) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %572, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2321 unwind label %3567

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 96, ptr %573) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %573)
          to label %2322 unwind label %3571

2322:                                             ; preds = %2321
  call void @llvm.lifetime.start.p0(i64 32, ptr %574) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %575) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %575)
          to label %2323 unwind label %3575

2323:                                             ; preds = %2322
  call void @llvm.lifetime.start.p0(i64 4, ptr %576) #14
  store i32 0, ptr %576, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2319, ptr noundef nonnull align 8 dereferenceable(32) %572, ptr noundef nonnull align 8 dereferenceable(96) %573, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull align 4 dereferenceable(4) %576)
          to label %2324 unwind label %3579

2324:                                             ; preds = %2323
  store i1 false, ptr %577, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %576) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %575) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %574) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %573) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %572) #14
  store ptr %2319, ptr %571, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %578) #14
  %2325 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2326 unwind label %3589

2326:                                             ; preds = %2324
  store i1 true, ptr %584, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %579) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %579, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %2327 unwind label %3593

2327:                                             ; preds = %2326
  call void @llvm.lifetime.start.p0(i64 96, ptr %580) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %580)
          to label %2328 unwind label %3597

2328:                                             ; preds = %2327
  call void @llvm.lifetime.start.p0(i64 32, ptr %581) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %582) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %582)
          to label %2329 unwind label %3601

2329:                                             ; preds = %2328
  call void @llvm.lifetime.start.p0(i64 4, ptr %583) #14
  store i32 0, ptr %583, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2325, ptr noundef nonnull align 8 dereferenceable(32) %579, ptr noundef nonnull align 8 dereferenceable(96) %580, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %581, ptr noundef nonnull align 4 dereferenceable(4) %583)
          to label %2330 unwind label %3605

2330:                                             ; preds = %2329
  store i1 false, ptr %584, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %583) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %582) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %581) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %580) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %579) #14
  store ptr %2325, ptr %578, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %585) #14
  %2331 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2332 unwind label %3615

2332:                                             ; preds = %2330
  store i1 true, ptr %591, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %586) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %586, double noundef 5.000000e-01)
          to label %2333 unwind label %3619

2333:                                             ; preds = %2332
  call void @llvm.lifetime.start.p0(i64 96, ptr %587) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %587)
          to label %2334 unwind label %3623

2334:                                             ; preds = %2333
  call void @llvm.lifetime.start.p0(i64 32, ptr %588) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %589) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %588, ptr noundef @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %589)
          to label %2335 unwind label %3627

2335:                                             ; preds = %2334
  call void @llvm.lifetime.start.p0(i64 4, ptr %590) #14
  store i32 0, ptr %590, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2331, ptr noundef nonnull align 8 dereferenceable(32) %586, ptr noundef nonnull align 8 dereferenceable(96) %587, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %588, ptr noundef nonnull align 4 dereferenceable(4) %590)
          to label %2336 unwind label %3631

2336:                                             ; preds = %2335
  store i1 false, ptr %591, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %590) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %588) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %589) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %588) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %587) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %586) #14
  store ptr %2331, ptr %585, align 8, !tbaa !5
  %2337 = load ptr, ptr %557, align 8, !tbaa !5
  %2338 = load ptr, ptr %564, align 8, !tbaa !5
  %2339 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %2340 unwind label %3615

2340:                                             ; preds = %2336
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %2339, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %2341 unwind label %3641

2341:                                             ; preds = %2340
  call void @llvm.lifetime.start.p0(i64 96, ptr %592) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %593) #14
  store double 5.000000e-01, ptr %593, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %594) #14
  store double 0.000000e+00, ptr %594, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %595) #14
  store double 0.000000e+00, ptr %595, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %592, ptr noundef nonnull align 8 dereferenceable(8) %593, ptr noundef nonnull align 8 dereferenceable(8) %594, ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %2342 unwind label %3645

2342:                                             ; preds = %2341
  call void @llvm.lifetime.start.p0(i64 96, ptr %596) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %597) #14
  store double -5.000000e-01, ptr %597, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %598) #14
  store double 0.000000e+00, ptr %598, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %599) #14
  store double 0.000000e+00, ptr %599, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %596, ptr noundef nonnull align 8 dereferenceable(8) %597, ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
          to label %2343 unwind label %3649

2343:                                             ; preds = %2342
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2337, ptr noundef %2338, ptr noundef %2339, ptr noundef nonnull align 8 dereferenceable(96) %592, ptr noundef nonnull align 8 dereferenceable(96) %596)
          to label %2344 unwind label %3649

2344:                                             ; preds = %2343
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %598) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %597) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %596) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %595) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %594) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %593) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %592) #14
  %2345 = load ptr, ptr %564, align 8, !tbaa !5
  %2346 = load ptr, ptr %571, align 8, !tbaa !5
  %2347 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %2348 unwind label %3615

2348:                                             ; preds = %2344
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %2347, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 0x3FE6666666666666)
          to label %2349 unwind label %3654

2349:                                             ; preds = %2348
  call void @llvm.lifetime.start.p0(i64 96, ptr %600) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %601) #14
  store double 0.000000e+00, ptr %601, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %602) #14
  store double 5.000000e-01, ptr %602, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %603) #14
  store double 0.000000e+00, ptr %603, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %600, ptr noundef nonnull align 8 dereferenceable(8) %601, ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
          to label %2350 unwind label %3658

2350:                                             ; preds = %2349
  call void @llvm.lifetime.start.p0(i64 96, ptr %604) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %605) #14
  store double 0.000000e+00, ptr %605, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %606) #14
  store double -5.000000e-01, ptr %606, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %607) #14
  store double 0.000000e+00, ptr %607, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %604, ptr noundef nonnull align 8 dereferenceable(8) %605, ptr noundef nonnull align 8 dereferenceable(8) %606, ptr noundef nonnull align 8 dereferenceable(8) %607, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
          to label %2351 unwind label %3662

2351:                                             ; preds = %2350
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2345, ptr noundef %2346, ptr noundef %2347, ptr noundef nonnull align 8 dereferenceable(96) %600, ptr noundef nonnull align 8 dereferenceable(96) %604)
          to label %2352 unwind label %3662

2352:                                             ; preds = %2351
  call void @llvm.lifetime.end.p0(i64 8, ptr %607) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %606) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %605) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %604) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %603) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %602) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %601) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %600) #14
  %2353 = load ptr, ptr %564, align 8, !tbaa !5
  %2354 = load ptr, ptr %578, align 8, !tbaa !5
  %2355 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #15
          to label %2356 unwind label %3615

2356:                                             ; preds = %2352
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %2355, double noundef 3.000000e+00)
          to label %2357 unwind label %3667

2357:                                             ; preds = %2356
  call void @llvm.lifetime.start.p0(i64 96, ptr %608) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %609) #14
  store double 0.000000e+00, ptr %609, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %610) #14
  store double 0.000000e+00, ptr %610, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %611) #14
  store double 5.500000e-01, ptr %611, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %608, ptr noundef nonnull align 8 dereferenceable(8) %609, ptr noundef nonnull align 8 dereferenceable(8) %610, ptr noundef nonnull align 8 dereferenceable(8) %611)
          to label %2358 unwind label %3671

2358:                                             ; preds = %2357
  call void @llvm.lifetime.start.p0(i64 96, ptr %612) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %613) #14
  store double 0.000000e+00, ptr %613, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %614) #14
  store double 0.000000e+00, ptr %614, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %615) #14
  store double -5.500000e-01, ptr %615, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %612, ptr noundef nonnull align 8 dereferenceable(8) %613, ptr noundef nonnull align 8 dereferenceable(8) %614, ptr noundef nonnull align 8 dereferenceable(8) %615)
          to label %2359 unwind label %3675

2359:                                             ; preds = %2358
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2353, ptr noundef %2354, ptr noundef %2355, ptr noundef nonnull align 8 dereferenceable(96) %608, ptr noundef nonnull align 8 dereferenceable(96) %612)
          to label %2360 unwind label %3675

2360:                                             ; preds = %2359
  call void @llvm.lifetime.end.p0(i64 8, ptr %615) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %614) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %613) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %612) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %611) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %610) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %609) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %608) #14
  %2361 = load ptr, ptr %578, align 8, !tbaa !5
  %2362 = load ptr, ptr %585, align 8, !tbaa !5
  %2363 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #15
          to label %2364 unwind label %3615

2364:                                             ; preds = %2360
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %2363, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0x3FE6666666666666)
          to label %2365 unwind label %3680

2365:                                             ; preds = %2364
  call void @llvm.lifetime.start.p0(i64 96, ptr %616) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %617) #14
  store double 0.000000e+00, ptr %617, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %618) #14
  store double 5.000000e-01, ptr %618, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %619) #14
  store double 0.000000e+00, ptr %619, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %616, ptr noundef nonnull align 8 dereferenceable(8) %617, ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef nonnull align 8 dereferenceable(8) %619, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
          to label %2366 unwind label %3684

2366:                                             ; preds = %2365
  call void @llvm.lifetime.start.p0(i64 96, ptr %620) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %621) #14
  store double 0.000000e+00, ptr %621, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %622) #14
  store double -5.000000e-01, ptr %622, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 8, ptr %623) #14
  store double 0.000000e+00, ptr %623, align 8, !tbaa !24
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %620, ptr noundef nonnull align 8 dereferenceable(8) %621, ptr noundef nonnull align 8 dereferenceable(8) %622, ptr noundef nonnull align 8 dereferenceable(8) %623, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
          to label %2367 unwind label %3688

2367:                                             ; preds = %2366
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %2361, ptr noundef %2362, ptr noundef %2363, ptr noundef nonnull align 8 dereferenceable(96) %616, ptr noundef nonnull align 8 dereferenceable(96) %620)
          to label %2368 unwind label %3688

2368:                                             ; preds = %2367
  call void @llvm.lifetime.end.p0(i64 8, ptr %623) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %622) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %621) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %620) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %619) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %618) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %617) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %616) #14
  %2369 = load ptr, ptr %4, align 8, !tbaa !5
  %2370 = load ptr, ptr %557, align 8, !tbaa !5
  %2371 = load ptr, ptr %2369, align 8, !tbaa !22
  %2372 = getelementptr inbounds ptr, ptr %2371, i64 4
  %2373 = load ptr, ptr %2372, align 8
  invoke void %2373(ptr noundef nonnull align 8 dereferenceable(224) %2369, ptr noundef %2370, i32 noundef 0)
          to label %2374 unwind label %3615

2374:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 24, ptr %624) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %624, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0.000000e+00) #14
  %2375 = load ptr, ptr %557, align 8, !tbaa !5
  %2376 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %2375)
          to label %2377 unwind label %3693

2377:                                             ; preds = %2374
  %2378 = getelementptr inbounds %"class.P3D::MotorizedPhysical", ptr %2376, i32 0, i32 7
  %2379 = getelementptr inbounds %"struct.P3D::Motion", ptr %2378, i32 0, i32 1
  %2380 = getelementptr inbounds %"struct.P3D::RotationalMotion", ptr %2379, i32 0, i32 0
  %2381 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3P3D15TaylorExpansionINS_6VectorIdLm3EEELm2EEixEm(ptr noundef nonnull align 8 dereferenceable(48) %2380, i64 noundef 0)
          to label %2382 unwind label %3693

2382:                                             ; preds = %2377
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2381, ptr align 8 %624, i64 24, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 24, ptr %624) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %585) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %578) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %571) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %564) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %557) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %625) #14
  %2383 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2384 unwind label %3702

2384:                                             ; preds = %2382
  store i1 true, ptr %631, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %626) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %626, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2385 unwind label %3706

2385:                                             ; preds = %2384
  call void @llvm.lifetime.start.p0(i64 96, ptr %627) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %627, double noundef -1.000000e+01, double noundef 5.000000e+00, double noundef -1.000000e+01)
          to label %2386 unwind label %3710

2386:                                             ; preds = %2385
  call void @llvm.lifetime.start.p0(i64 32, ptr %628) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %629) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %629) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %628, ptr noundef @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %629)
          to label %2387 unwind label %3714

2387:                                             ; preds = %2386
  call void @llvm.lifetime.start.p0(i64 4, ptr %630) #14
  store i32 0, ptr %630, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2383, ptr noundef nonnull align 8 dereferenceable(32) %626, ptr noundef nonnull align 8 dereferenceable(96) %627, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %628, ptr noundef nonnull align 4 dereferenceable(4) %630)
          to label %2388 unwind label %3718

2388:                                             ; preds = %2387
  store i1 false, ptr %631, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %630) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %628) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %629) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %629) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %628) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %627) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %626) #14
  store ptr %2383, ptr %625, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %632) #14
  %2389 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2390 unwind label %3728

2390:                                             ; preds = %2388
  store i1 true, ptr %639, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %633) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %633, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2391 unwind label %3732

2391:                                             ; preds = %2390
  call void @llvm.lifetime.start.p0(i64 96, ptr %634) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %635) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %635, double noundef 0x4000C131D5ACB6F5)
          to label %2392 unwind label %3736

2392:                                             ; preds = %2391
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %634, double noundef -1.110000e+01, double noundef 5.000000e+00, double noundef -8.100000e+00, ptr noundef nonnull align 8 dereferenceable(72) %635)
          to label %2393 unwind label %3736

2393:                                             ; preds = %2392
  call void @llvm.lifetime.start.p0(i64 32, ptr %636) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %637) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %637) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %637)
          to label %2394 unwind label %3740

2394:                                             ; preds = %2393
  call void @llvm.lifetime.start.p0(i64 4, ptr %638) #14
  store i32 0, ptr %638, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2389, ptr noundef nonnull align 8 dereferenceable(32) %633, ptr noundef nonnull align 8 dereferenceable(96) %634, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %636, ptr noundef nonnull align 4 dereferenceable(4) %638)
          to label %2395 unwind label %3744

2395:                                             ; preds = %2394
  store i1 false, ptr %639, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %638) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %637) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %637) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %636) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %635) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %634) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %633) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %633) #14
  store ptr %2389, ptr %632, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %640) #14
  %2396 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2397 unwind label %3754

2397:                                             ; preds = %2395
  store i1 true, ptr %647, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %641) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %641, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2398 unwind label %3758

2398:                                             ; preds = %2397
  call void @llvm.lifetime.start.p0(i64 96, ptr %642) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %643) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %643, double noundef 0xC000C131D5ACB6F5)
          to label %2399 unwind label %3762

2399:                                             ; preds = %2398
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %642, double noundef -8.900000e+00, double noundef 5.000000e+00, double noundef -8.100000e+00, ptr noundef nonnull align 8 dereferenceable(72) %643)
          to label %2400 unwind label %3762

2400:                                             ; preds = %2399
  call void @llvm.lifetime.start.p0(i64 32, ptr %644) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %645) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %645) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %645)
          to label %2401 unwind label %3766

2401:                                             ; preds = %2400
  call void @llvm.lifetime.start.p0(i64 4, ptr %646) #14
  store i32 0, ptr %646, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2396, ptr noundef nonnull align 8 dereferenceable(32) %641, ptr noundef nonnull align 8 dereferenceable(96) %642, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %644, ptr noundef nonnull align 4 dereferenceable(4) %646)
          to label %2402 unwind label %3770

2402:                                             ; preds = %2401
  store i1 false, ptr %647, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %646) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %644) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %645) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %645) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %644) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %643) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %642) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %641) #14
  store ptr %2396, ptr %640, align 8, !tbaa !5
  %2403 = load ptr, ptr %4, align 8, !tbaa !5
  %2404 = load ptr, ptr %625, align 8, !tbaa !5
  %2405 = load ptr, ptr %2403, align 8, !tbaa !22
  %2406 = getelementptr inbounds ptr, ptr %2405, i64 4
  %2407 = load ptr, ptr %2406, align 8
  invoke void %2407(ptr noundef nonnull align 8 dereferenceable(224) %2403, ptr noundef %2404, i32 noundef 0)
          to label %2408 unwind label %3754

2408:                                             ; preds = %2402
  %2409 = load ptr, ptr %4, align 8, !tbaa !5
  %2410 = load ptr, ptr %632, align 8, !tbaa !5
  %2411 = load ptr, ptr %2409, align 8, !tbaa !22
  %2412 = getelementptr inbounds ptr, ptr %2411, i64 4
  %2413 = load ptr, ptr %2412, align 8
  invoke void %2413(ptr noundef nonnull align 8 dereferenceable(224) %2409, ptr noundef %2410, i32 noundef 0)
          to label %2414 unwind label %3754

2414:                                             ; preds = %2408
  %2415 = load ptr, ptr %4, align 8, !tbaa !5
  %2416 = load ptr, ptr %640, align 8, !tbaa !5
  %2417 = load ptr, ptr %2415, align 8, !tbaa !22
  %2418 = getelementptr inbounds ptr, ptr %2417, i64 4
  %2419 = load ptr, ptr %2418, align 8
  invoke void %2419(ptr noundef nonnull align 8 dereferenceable(224) %2415, ptr noundef %2416, i32 noundef 0)
          to label %2420 unwind label %3754

2420:                                             ; preds = %2414
  call void @llvm.lifetime.start.p0(i64 24, ptr %648) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %648) #14
  %2421 = load ptr, ptr %625, align 8, !tbaa !5
  %2422 = load ptr, ptr %640, align 8, !tbaa !5
  %2423 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #15
          to label %2424 unwind label %3780

2424:                                             ; preds = %2420
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %649, double noundef 1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %650, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %651, double noundef -1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %652, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104) %2423, ptr noundef byval(%"struct.P3D::Vector") align 8 %649, ptr noundef byval(%"struct.P3D::Vector") align 8 %650, ptr noundef byval(%"struct.P3D::Vector") align 8 %651, ptr noundef byval(%"struct.P3D::Vector") align 8 %652)
          to label %2425 unwind label %3784

2425:                                             ; preds = %2424
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %648, ptr noundef %2421, ptr noundef %2422, ptr noundef %2423)
          to label %2426 unwind label %3780

2426:                                             ; preds = %2425
  %2427 = load ptr, ptr %632, align 8, !tbaa !5
  %2428 = load ptr, ptr %625, align 8, !tbaa !5
  %2429 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 104) #15
          to label %2430 unwind label %3780

2430:                                             ; preds = %2426
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %653, double noundef 1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %654, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %655, double noundef -1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %656, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104) %2429, ptr noundef byval(%"struct.P3D::Vector") align 8 %653, ptr noundef byval(%"struct.P3D::Vector") align 8 %654, ptr noundef byval(%"struct.P3D::Vector") align 8 %655, ptr noundef byval(%"struct.P3D::Vector") align 8 %656)
          to label %2431 unwind label %3788

2431:                                             ; preds = %2430
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %648, ptr noundef %2427, ptr noundef %2428, ptr noundef %2429)
          to label %2432 unwind label %3780

2432:                                             ; preds = %2431
  %2433 = load ptr, ptr %4, align 8, !tbaa !5
  %2434 = getelementptr inbounds %"class.P3D::WorldPrototype", ptr %2433, i32 0, i32 5
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %2434, ptr noundef nonnull align 8 dereferenceable(24) %648)
          to label %2435 unwind label %3780

2435:                                             ; preds = %2432
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %648) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %648) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %640) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %632) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %625) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr %657) #14
  %2436 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2437 unwind label %3796

2437:                                             ; preds = %2435
  store i1 true, ptr %663, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %658) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %658, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2438 unwind label %3800

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 96, ptr %659) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %659, double noundef -1.000000e+01, double noundef 5.000000e+00, double noundef 1.000000e+01)
          to label %2439 unwind label %3804

2439:                                             ; preds = %2438
  call void @llvm.lifetime.start.p0(i64 32, ptr %660) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %661) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %661)
          to label %2440 unwind label %3808

2440:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 4, ptr %662) #14
  store i32 0, ptr %662, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2436, ptr noundef nonnull align 8 dereferenceable(32) %658, ptr noundef nonnull align 8 dereferenceable(96) %659, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %660, ptr noundef nonnull align 4 dereferenceable(4) %662)
          to label %2441 unwind label %3812

2441:                                             ; preds = %2440
  store i1 false, ptr %663, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %662) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %659) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %658) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %658) #14
  store ptr %2436, ptr %657, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %664) #14
  %2442 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2443 unwind label %3822

2443:                                             ; preds = %2441
  store i1 true, ptr %671, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %665) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %665, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2444 unwind label %3826

2444:                                             ; preds = %2443
  call void @llvm.lifetime.start.p0(i64 96, ptr %666) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %667) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %667, double noundef 0x4000C131D5ACB6F5)
          to label %2445 unwind label %3830

2445:                                             ; preds = %2444
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %666, double noundef -1.110000e+01, double noundef 5.000000e+00, double noundef 1.190000e+01, ptr noundef nonnull align 8 dereferenceable(72) %667)
          to label %2446 unwind label %3830

2446:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 32, ptr %668) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %669) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %669) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %669)
          to label %2447 unwind label %3834

2447:                                             ; preds = %2446
  call void @llvm.lifetime.start.p0(i64 4, ptr %670) #14
  store i32 0, ptr %670, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2442, ptr noundef nonnull align 8 dereferenceable(32) %665, ptr noundef nonnull align 8 dereferenceable(96) %666, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %668, ptr noundef nonnull align 4 dereferenceable(4) %670)
          to label %2448 unwind label %3838

2448:                                             ; preds = %2447
  store i1 false, ptr %671, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %670) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %669) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %669) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %668) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %667) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %666) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %665) #14
  store ptr %2442, ptr %664, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %672) #14
  %2449 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2450 unwind label %3848

2450:                                             ; preds = %2448
  store i1 true, ptr %679, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %673) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %673, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %2451 unwind label %3852

2451:                                             ; preds = %2450
  call void @llvm.lifetime.start.p0(i64 96, ptr %674) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %675) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %675, double noundef 0xC000C131D5ACB6F5)
          to label %2452 unwind label %3856

2452:                                             ; preds = %2451
  invoke void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %674, double noundef -8.900000e+00, double noundef 5.000000e+00, double noundef 1.190000e+01, ptr noundef nonnull align 8 dereferenceable(72) %675)
          to label %2453 unwind label %3856

2453:                                             ; preds = %2452
  call void @llvm.lifetime.start.p0(i64 32, ptr %676) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %677) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %677)
          to label %2454 unwind label %3860

2454:                                             ; preds = %2453
  call void @llvm.lifetime.start.p0(i64 4, ptr %678) #14
  store i32 0, ptr %678, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2449, ptr noundef nonnull align 8 dereferenceable(32) %673, ptr noundef nonnull align 8 dereferenceable(96) %674, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %676, ptr noundef nonnull align 4 dereferenceable(4) %678)
          to label %2455 unwind label %3864

2455:                                             ; preds = %2454
  store i1 false, ptr %679, align 1
  call void @llvm.lifetime.end.p0(i64 4, ptr %678) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %677) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %676) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %675) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %674) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %673) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %673) #14
  store ptr %2449, ptr %672, align 8, !tbaa !5
  %2456 = load ptr, ptr %4, align 8, !tbaa !5
  %2457 = load ptr, ptr %657, align 8, !tbaa !5
  %2458 = load ptr, ptr %2456, align 8, !tbaa !22
  %2459 = getelementptr inbounds ptr, ptr %2458, i64 4
  %2460 = load ptr, ptr %2459, align 8
  invoke void %2460(ptr noundef nonnull align 8 dereferenceable(224) %2456, ptr noundef %2457, i32 noundef 0)
          to label %2461 unwind label %3848

2461:                                             ; preds = %2455
  %2462 = load ptr, ptr %4, align 8, !tbaa !5
  %2463 = load ptr, ptr %664, align 8, !tbaa !5
  %2464 = load ptr, ptr %2462, align 8, !tbaa !22
  %2465 = getelementptr inbounds ptr, ptr %2464, i64 4
  %2466 = load ptr, ptr %2465, align 8
  invoke void %2466(ptr noundef nonnull align 8 dereferenceable(224) %2462, ptr noundef %2463, i32 noundef 0)
          to label %2467 unwind label %3848

2467:                                             ; preds = %2461
  %2468 = load ptr, ptr %4, align 8, !tbaa !5
  %2469 = load ptr, ptr %672, align 8, !tbaa !5
  %2470 = load ptr, ptr %2468, align 8, !tbaa !22
  %2471 = getelementptr inbounds ptr, ptr %2470, i64 4
  %2472 = load ptr, ptr %2471, align 8
  invoke void %2472(ptr noundef nonnull align 8 dereferenceable(224) %2468, ptr noundef %2469, i32 noundef 0)
          to label %2473 unwind label %3848

2473:                                             ; preds = %2467
  call void @llvm.lifetime.start.p0(i64 24, ptr %680) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %680) #14
  %2474 = load ptr, ptr %657, align 8, !tbaa !5
  %2475 = load ptr, ptr %672, align 8, !tbaa !5
  %2476 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #15
          to label %2477 unwind label %3874

2477:                                             ; preds = %2473
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %681, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %682, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  invoke void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %2476, ptr noundef byval(%"struct.P3D::Vector") align 8 %681, ptr noundef byval(%"struct.P3D::Vector") align 8 %682)
          to label %2478 unwind label %3878

2478:                                             ; preds = %2477
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %680, ptr noundef %2474, ptr noundef %2475, ptr noundef %2476)
          to label %2479 unwind label %3874

2479:                                             ; preds = %2478
  %2480 = load ptr, ptr %664, align 8, !tbaa !5
  %2481 = load ptr, ptr %657, align 8, !tbaa !5
  %2482 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #15
          to label %2483 unwind label %3874

2483:                                             ; preds = %2479
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %683, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %684, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  invoke void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %2482, ptr noundef byval(%"struct.P3D::Vector") align 8 %683, ptr noundef byval(%"struct.P3D::Vector") align 8 %684)
          to label %2484 unwind label %3882

2484:                                             ; preds = %2483
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %680, ptr noundef %2480, ptr noundef %2481, ptr noundef %2482)
          to label %2485 unwind label %3874

2485:                                             ; preds = %2484
  %2486 = load ptr, ptr %672, align 8, !tbaa !5
  %2487 = load ptr, ptr %664, align 8, !tbaa !5
  %2488 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #15
          to label %2489 unwind label %3874

2489:                                             ; preds = %2485
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %685, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %686, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  invoke void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %2488, ptr noundef byval(%"struct.P3D::Vector") align 8 %685, ptr noundef byval(%"struct.P3D::Vector") align 8 %686)
          to label %2490 unwind label %3886

2490:                                             ; preds = %2489
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %680, ptr noundef %2486, ptr noundef %2487, ptr noundef %2488)
          to label %2491 unwind label %3874

2491:                                             ; preds = %2490
  %2492 = load ptr, ptr %4, align 8, !tbaa !5
  %2493 = getelementptr inbounds %"class.P3D::WorldPrototype", ptr %2492, i32 0, i32 5
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %2493, ptr noundef nonnull align 8 dereferenceable(24) %680)
          to label %2494 unwind label %3874

2494:                                             ; preds = %2491
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %680) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %680) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %672) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %664) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %657) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr %687) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %688) #14
  invoke void @_ZN3P3D12ShapeLibrary11createTorusEffii(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8 %688, float noundef 1.000000e+00, float noundef 0x3FE3333340000000, i32 noundef 80, i32 noundef 80)
          to label %2495 unwind label %3894

2495:                                             ; preds = %2494
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %687, ptr noundef nonnull align 8 dereferenceable(24) %688)
          to label %2496 unwind label %3898

2496:                                             ; preds = %2495
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %688) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %688) #14
  %2497 = getelementptr inbounds %"class.P3D::Shape", ptr %687, i32 0, i32 0
  %2498 = call noundef ptr @_ZNK3P3D13intrusive_ptrIKNS_10ShapeClassEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %2497) #14
  call void @llvm.lifetime.start.p0(i64 88, ptr %690) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %691) #14
  %2499 = getelementptr inbounds %"class.P3D::Shape", ptr %687, i32 0, i32 0
  %2500 = call noundef ptr @_ZNK3P3D13intrusive_ptrIKNS_10ShapeClassEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %2499) #14
  %2501 = load ptr, ptr %2500, align 8, !tbaa !22
  %2502 = getelementptr inbounds ptr, ptr %2501, i64 8
  %2503 = load ptr, ptr %2502, align 8
  invoke void %2503(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8 %691, ptr noundef nonnull align 8 dereferenceable(104) %2500)
          to label %2504 unwind label %3903

2504:                                             ; preds = %2496
  invoke void @_ZN3P3D8Graphics20ExtendedTriangleMesh26generateSmoothNormalsShapeERKNS_12TriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::ExtendedTriangleMesh") align 8 %690, ptr noundef nonnull align 8 dereferenceable(24) %691)
          to label %2505 unwind label %3907

2505:                                             ; preds = %2504
  invoke void @_ZN3P3D8Graphics12MeshRegistry18registerShapeClassEPKNS_10ShapeClassERKNS0_20ExtendedTriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::Comp::Mesh") align 8 %689, ptr noundef %2498, ptr noundef nonnull align 8 dereferenceable(88) %690)
          to label %2506 unwind label %3911

2506:                                             ; preds = %2505
  call void @_ZN3P3D2RCD2Ev(ptr noundef nonnull align 8 dereferenceable(29) %689) #14
  call void @_ZN3P3D8Graphics20ExtendedTriangleMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %690) #14
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %691) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %691) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr %690) #14
  %2507 = load ptr, ptr %4, align 8, !tbaa !5
  %2508 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2509 unwind label %3917

2509:                                             ; preds = %2506
  store i1 true, ptr %697, align 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %692) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %693) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %693, double noundef -1.000000e+01, double noundef 3.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %692, ptr noundef nonnull align 8 dereferenceable(24) %693)
          to label %2510 unwind label %3921

2510:                                             ; preds = %2509
  call void @llvm.lifetime.start.p0(i64 32, ptr %694) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %695) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %695) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %695)
          to label %2511 unwind label %3925

2511:                                             ; preds = %2510
  call void @llvm.lifetime.start.p0(i64 4, ptr %696) #14
  store i32 0, ptr %696, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2508, ptr noundef nonnull align 8 dereferenceable(32) %687, ptr noundef nonnull align 8 dereferenceable(96) %692, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %694, ptr noundef nonnull align 4 dereferenceable(4) %696)
          to label %2512 unwind label %3929

2512:                                             ; preds = %2511
  store i1 false, ptr %697, align 1
  %2513 = load ptr, ptr %2507, align 8, !tbaa !22
  %2514 = getelementptr inbounds ptr, ptr %2513, i64 4
  %2515 = load ptr, ptr %2514, align 8
  invoke void %2515(ptr noundef nonnull align 8 dereferenceable(224) %2507, ptr noundef %2508, i32 noundef 0)
          to label %2516 unwind label %3929

2516:                                             ; preds = %2512
  call void @llvm.lifetime.end.p0(i64 4, ptr %696) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %694) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %695) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %695) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %694) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %693) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %692) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr %698) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %698, ptr align 4 @constinit, i64 72, i1 false), !tbaa.struct !39
  call void @llvm.lifetime.start.p0(i64 32, ptr %699) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %700) #14
  %2517 = getelementptr inbounds [9 x %"struct.P3D::Vector.97"], ptr %698, i64 0, i64 0
  invoke void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8 %700, float noundef 0.000000e+00, ptr noundef %2517, i32 noundef 9, float noundef 1.000000e+00, i32 noundef 10)
          to label %2518 unwind label %3938

2518:                                             ; preds = %2516
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %699, ptr noundef nonnull align 8 dereferenceable(24) %700)
          to label %2519 unwind label %3942

2519:                                             ; preds = %2518
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %700) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %700) #14
  %2520 = load ptr, ptr %4, align 8, !tbaa !5
  %2521 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2522 unwind label %3947

2522:                                             ; preds = %2519
  store i1 true, ptr %706, align 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %701) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %702) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %702, double noundef -1.000000e+01, double noundef 3.000000e+00, double noundef 3.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %701, ptr noundef nonnull align 8 dereferenceable(24) %702)
          to label %2523 unwind label %3951

2523:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 32, ptr %703) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %704) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %704) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %703, ptr noundef @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %704)
          to label %2524 unwind label %3955

2524:                                             ; preds = %2523
  call void @llvm.lifetime.start.p0(i64 4, ptr %705) #14
  store i32 0, ptr %705, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2521, ptr noundef nonnull align 8 dereferenceable(32) %699, ptr noundef nonnull align 8 dereferenceable(96) %701, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %703, ptr noundef nonnull align 4 dereferenceable(4) %705)
          to label %2525 unwind label %3959

2525:                                             ; preds = %2524
  store i1 false, ptr %706, align 1
  %2526 = load ptr, ptr %2520, align 8, !tbaa !22
  %2527 = getelementptr inbounds ptr, ptr %2526, i64 4
  %2528 = load ptr, ptr %2527, align 8
  invoke void %2528(ptr noundef nonnull align 8 dereferenceable(224) %2520, ptr noundef %2521, i32 noundef 0)
          to label %2529 unwind label %3959

2529:                                             ; preds = %2525
  call void @llvm.lifetime.end.p0(i64 4, ptr %705) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %703) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %704) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %704) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %703) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %702) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %701) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %707) #14
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %707, ptr align 4 @constinit.57, i64 24, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.start.p0(i64 32, ptr %708) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %709) #14
  %2530 = getelementptr inbounds [3 x %"struct.P3D::Vector.97"], ptr %707, i64 0, i64 0
  invoke void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8 %709, float noundef 0.000000e+00, ptr noundef %2530, i32 noundef 3, float noundef 1.000000e+00, i32 noundef 40)
          to label %2531 unwind label %3968

2531:                                             ; preds = %2529
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8 %708, ptr noundef nonnull align 8 dereferenceable(24) %709)
          to label %2532 unwind label %3972

2532:                                             ; preds = %2531
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %709) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %709) #14
  %2533 = load ptr, ptr %4, align 8, !tbaa !5
  %2534 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 208) #15
          to label %2535 unwind label %3977

2535:                                             ; preds = %2532
  store i1 true, ptr %715, align 1
  call void @llvm.lifetime.start.p0(i64 96, ptr %710) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr %711) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %711, double noundef -7.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %710, ptr noundef nonnull align 8 dereferenceable(24) %711)
          to label %2536 unwind label %3981

2536:                                             ; preds = %2535
  call void @llvm.lifetime.start.p0(i64 32, ptr %712) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr %713) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %713) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %712, ptr noundef @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %713)
          to label %2537 unwind label %3985

2537:                                             ; preds = %2536
  call void @llvm.lifetime.start.p0(i64 4, ptr %714) #14
  store i32 0, ptr %714, align 4, !tbaa !15
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %2534, ptr noundef nonnull align 8 dereferenceable(32) %708, ptr noundef nonnull align 8 dereferenceable(96) %710, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %712, ptr noundef nonnull align 4 dereferenceable(4) %714)
          to label %2538 unwind label %3989

2538:                                             ; preds = %2537
  store i1 false, ptr %715, align 1
  %2539 = load ptr, ptr %2533, align 8, !tbaa !22
  %2540 = getelementptr inbounds ptr, ptr %2539, i64 4
  %2541 = load ptr, ptr %2540, align 8
  invoke void %2541(ptr noundef nonnull align 8 dereferenceable(224) %2533, ptr noundef %2534, i32 noundef 0)
          to label %2542 unwind label %3989

2542:                                             ; preds = %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %714) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %712) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %713) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %713) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %712) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %711) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %710) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %708) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %708) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %707) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %699) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %699) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %698) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %687) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %687) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #14
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %251) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %188) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %155) #14
  %2543 = getelementptr inbounds [4 x %"struct.P3D::Application::WorldBuilder::SpiderFactory"], ptr %5, i32 0, i32 0
  %2544 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %2543, i64 4
  br label %2545

2545:                                             ; preds = %2545, %2542
  %2546 = phi ptr [ %2544, %2542 ], [ %2547, %2545 ]
  %2547 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %2546, i64 -1
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %2547) #14
  %2548 = icmp eq ptr %2547, %2543
  br i1 %2548, label %2549, label %2545

2549:                                             ; preds = %2545
  call void @llvm.lifetime.end.p0(i64 192, ptr %5) #14
  ret void

2550:                                             ; preds = %1781, %1779, %1776
  %2551 = landingpad { ptr, i32 }
          cleanup
  %2552 = extractvalue { ptr, i32 } %2551, 0
  store ptr %2552, ptr %7, align 8
  %2553 = extractvalue { ptr, i32 } %2551, 1
  store i32 %2553, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %229) #14
  br label %4014

2554:                                             ; preds = %1783
  %2555 = landingpad { ptr, i32 }
          cleanup
  %2556 = extractvalue { ptr, i32 } %2555, 0
  store ptr %2556, ptr %7, align 8
  %2557 = extractvalue { ptr, i32 } %2555, 1
  store i32 %2557, ptr %8, align 4
  br label %4013

2558:                                             ; preds = %1785
  %2559 = landingpad { ptr, i32 }
          cleanup
  %2560 = extractvalue { ptr, i32 } %2559, 0
  store ptr %2560, ptr %7, align 8
  %2561 = extractvalue { ptr, i32 } %2559, 1
  store i32 %2561, ptr %8, align 4
  br label %2576

2562:                                             ; preds = %1786
  %2563 = landingpad { ptr, i32 }
          cleanup
  %2564 = extractvalue { ptr, i32 } %2563, 0
  store ptr %2564, ptr %7, align 8
  %2565 = extractvalue { ptr, i32 } %2563, 1
  store i32 %2565, ptr %8, align 4
  br label %2575

2566:                                             ; preds = %1787
  %2567 = landingpad { ptr, i32 }
          cleanup
  %2568 = extractvalue { ptr, i32 } %2567, 0
  store ptr %2568, ptr %7, align 8
  %2569 = extractvalue { ptr, i32 } %2567, 1
  store i32 %2569, ptr %8, align 4
  br label %2574

2570:                                             ; preds = %1792
  %2571 = landingpad { ptr, i32 }
          cleanup
  %2572 = extractvalue { ptr, i32 } %2571, 0
  store ptr %2572, ptr %7, align 8
  %2573 = extractvalue { ptr, i32 } %2571, 1
  store i32 %2573, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #14
  br label %2574

2574:                                             ; preds = %2570, %2566
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %235) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %235) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %233) #14
  br label %2575

2575:                                             ; preds = %2574, %2562
  call void @llvm.lifetime.end.p0(i64 96, ptr %232) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #14
  br label %2576

2576:                                             ; preds = %2575, %2558
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #14
  %2577 = load i1, ptr %236, align 1
  br i1 %2577, label %2578, label %2579

2578:                                             ; preds = %2576
  call void @_ZdlPvm(ptr noundef %1784, i64 noundef 208) #16
  br label %2579

2579:                                             ; preds = %2578, %2576
  br label %4013

2580:                                             ; preds = %1793
  %2581 = landingpad { ptr, i32 }
          cleanup
  %2582 = extractvalue { ptr, i32 } %2581, 0
  store ptr %2582, ptr %7, align 8
  %2583 = extractvalue { ptr, i32 } %2581, 1
  store i32 %2583, ptr %8, align 4
  br label %4012

2584:                                             ; preds = %1795
  %2585 = landingpad { ptr, i32 }
          cleanup
  %2586 = extractvalue { ptr, i32 } %2585, 0
  store ptr %2586, ptr %7, align 8
  %2587 = extractvalue { ptr, i32 } %2585, 1
  store i32 %2587, ptr %8, align 4
  br label %2602

2588:                                             ; preds = %1796
  %2589 = landingpad { ptr, i32 }
          cleanup
  %2590 = extractvalue { ptr, i32 } %2589, 0
  store ptr %2590, ptr %7, align 8
  %2591 = extractvalue { ptr, i32 } %2589, 1
  store i32 %2591, ptr %8, align 4
  br label %2601

2592:                                             ; preds = %1797
  %2593 = landingpad { ptr, i32 }
          cleanup
  %2594 = extractvalue { ptr, i32 } %2593, 0
  store ptr %2594, ptr %7, align 8
  %2595 = extractvalue { ptr, i32 } %2593, 1
  store i32 %2595, ptr %8, align 4
  br label %2600

2596:                                             ; preds = %1802
  %2597 = landingpad { ptr, i32 }
          cleanup
  %2598 = extractvalue { ptr, i32 } %2597, 0
  store ptr %2598, ptr %7, align 8
  %2599 = extractvalue { ptr, i32 } %2597, 1
  store i32 %2599, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #14
  br label %2600

2600:                                             ; preds = %2596, %2592
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %242) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %241) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %240) #14
  br label %2601

2601:                                             ; preds = %2600, %2588
  call void @llvm.lifetime.end.p0(i64 96, ptr %239) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #14
  br label %2602

2602:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #14
  %2603 = load i1, ptr %243, align 1
  br i1 %2603, label %2604, label %2605

2604:                                             ; preds = %2602
  call void @_ZdlPvm(ptr noundef %1794, i64 noundef 208) #16
  br label %2605

2605:                                             ; preds = %2604, %2602
  br label %4012

2606:                                             ; preds = %1825, %1819, %1813, %1803
  %2607 = landingpad { ptr, i32 }
          cleanup
  %2608 = extractvalue { ptr, i32 } %2607, 0
  store ptr %2608, ptr %7, align 8
  %2609 = extractvalue { ptr, i32 } %2607, 1
  store i32 %2609, ptr %8, align 4
  br label %4011

2610:                                             ; preds = %1805
  %2611 = landingpad { ptr, i32 }
          cleanup
  %2612 = extractvalue { ptr, i32 } %2611, 0
  store ptr %2612, ptr %7, align 8
  %2613 = extractvalue { ptr, i32 } %2611, 1
  store i32 %2613, ptr %8, align 4
  br label %2628

2614:                                             ; preds = %1806
  %2615 = landingpad { ptr, i32 }
          cleanup
  %2616 = extractvalue { ptr, i32 } %2615, 0
  store ptr %2616, ptr %7, align 8
  %2617 = extractvalue { ptr, i32 } %2615, 1
  store i32 %2617, ptr %8, align 4
  br label %2627

2618:                                             ; preds = %1807
  %2619 = landingpad { ptr, i32 }
          cleanup
  %2620 = extractvalue { ptr, i32 } %2619, 0
  store ptr %2620, ptr %7, align 8
  %2621 = extractvalue { ptr, i32 } %2619, 1
  store i32 %2621, ptr %8, align 4
  br label %2626

2622:                                             ; preds = %1812
  %2623 = landingpad { ptr, i32 }
          cleanup
  %2624 = extractvalue { ptr, i32 } %2623, 0
  store ptr %2624, ptr %7, align 8
  %2625 = extractvalue { ptr, i32 } %2623, 1
  store i32 %2625, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #14
  br label %2626

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

2627:                                             ; preds = %2626, %2614
  call void @llvm.lifetime.end.p0(i64 96, ptr %246) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #14
  br label %2628

2628:                                             ; preds = %2627, %2610
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #14
  %2629 = load i1, ptr %250, align 1
  br i1 %2629, label %2630, label %2631

2630:                                             ; preds = %2628
  call void @_ZdlPvm(ptr noundef %1804, i64 noundef 208) #16
  br label %2631

2631:                                             ; preds = %2630, %2628
  br label %4011

2632:                                             ; preds = %1843, %1842, %1837, %1836, %1831
  %2633 = landingpad { ptr, i32 }
          cleanup
  %2634 = extractvalue { ptr, i32 } %2633, 0
  store ptr %2634, ptr %7, align 8
  %2635 = extractvalue { ptr, i32 } %2633, 1
  store i32 %2635, ptr %8, align 4
  br label %4010

2636:                                             ; preds = %1835
  %2637 = landingpad { ptr, i32 }
          cleanup
  %2638 = extractvalue { ptr, i32 } %2637, 0
  store ptr %2638, ptr %7, align 8
  %2639 = extractvalue { ptr, i32 } %2637, 1
  store i32 %2639, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %1834, i64 noundef 56) #16
  br label %4010

2640:                                             ; preds = %1841
  %2641 = landingpad { ptr, i32 }
          cleanup
  %2642 = extractvalue { ptr, i32 } %2641, 0
  store ptr %2642, ptr %7, align 8
  %2643 = extractvalue { ptr, i32 } %2641, 1
  store i32 %2643, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %1840, i64 noundef 56) #16
  br label %4010

2644:                                             ; preds = %1856, %1846
  %2645 = landingpad { ptr, i32 }
          cleanup
  %2646 = extractvalue { ptr, i32 } %2645, 0
  store ptr %2646, ptr %7, align 8
  %2647 = extractvalue { ptr, i32 } %2645, 1
  store i32 %2647, ptr %8, align 4
  br label %4009

2648:                                             ; preds = %1848
  %2649 = landingpad { ptr, i32 }
          cleanup
  %2650 = extractvalue { ptr, i32 } %2649, 0
  store ptr %2650, ptr %7, align 8
  %2651 = extractvalue { ptr, i32 } %2649, 1
  store i32 %2651, ptr %8, align 4
  br label %2666

2652:                                             ; preds = %1849
  %2653 = landingpad { ptr, i32 }
          cleanup
  %2654 = extractvalue { ptr, i32 } %2653, 0
  store ptr %2654, ptr %7, align 8
  %2655 = extractvalue { ptr, i32 } %2653, 1
  store i32 %2655, ptr %8, align 4
  br label %2665

2656:                                             ; preds = %1850
  %2657 = landingpad { ptr, i32 }
          cleanup
  %2658 = extractvalue { ptr, i32 } %2657, 0
  store ptr %2658, ptr %7, align 8
  %2659 = extractvalue { ptr, i32 } %2657, 1
  store i32 %2659, ptr %8, align 4
  br label %2664

2660:                                             ; preds = %1855
  %2661 = landingpad { ptr, i32 }
          cleanup
  %2662 = extractvalue { ptr, i32 } %2661, 0
  store ptr %2662, ptr %7, align 8
  %2663 = extractvalue { ptr, i32 } %2661, 1
  store i32 %2663, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %260) #14
  br label %2664

2664:                                             ; preds = %2660, %2656
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %261) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %261) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %260) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %259) #14
  br label %2665

2665:                                             ; preds = %2664, %2652
  call void @llvm.lifetime.end.p0(i64 96, ptr %258) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #14
  br label %2666

2666:                                             ; preds = %2665, %2648
  call void @llvm.lifetime.end.p0(i64 32, ptr %257) #14
  %2667 = load i1, ptr %263, align 1
  br i1 %2667, label %2668, label %2669

2668:                                             ; preds = %2666
  call void @_ZdlPvm(ptr noundef %1847, i64 noundef 208) #16
  br label %2669

2669:                                             ; preds = %2668, %2666
  br label %4009

2670:                                             ; preds = %1862
  %2671 = landingpad { ptr, i32 }
          cleanup
  %2672 = extractvalue { ptr, i32 } %2671, 0
  store ptr %2672, ptr %7, align 8
  %2673 = extractvalue { ptr, i32 } %2671, 1
  store i32 %2673, ptr %8, align 4
  br label %4008

2674:                                             ; preds = %1864
  %2675 = landingpad { ptr, i32 }
          cleanup
  %2676 = extractvalue { ptr, i32 } %2675, 0
  store ptr %2676, ptr %7, align 8
  %2677 = extractvalue { ptr, i32 } %2675, 1
  store i32 %2677, ptr %8, align 4
  br label %2692

2678:                                             ; preds = %1865
  %2679 = landingpad { ptr, i32 }
          cleanup
  %2680 = extractvalue { ptr, i32 } %2679, 0
  store ptr %2680, ptr %7, align 8
  %2681 = extractvalue { ptr, i32 } %2679, 1
  store i32 %2681, ptr %8, align 4
  br label %2691

2682:                                             ; preds = %1866
  %2683 = landingpad { ptr, i32 }
          cleanup
  %2684 = extractvalue { ptr, i32 } %2683, 0
  store ptr %2684, ptr %7, align 8
  %2685 = extractvalue { ptr, i32 } %2683, 1
  store i32 %2685, ptr %8, align 4
  br label %2690

2686:                                             ; preds = %1871
  %2687 = landingpad { ptr, i32 }
          cleanup
  %2688 = extractvalue { ptr, i32 } %2687, 0
  store ptr %2688, ptr %7, align 8
  %2689 = extractvalue { ptr, i32 } %2687, 1
  store i32 %2689, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #14
  br label %2690

2690:                                             ; preds = %2686, %2682
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %269) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %269) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %267) #14
  br label %2691

2691:                                             ; preds = %2690, %2678
  call void @llvm.lifetime.end.p0(i64 96, ptr %266) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #14
  br label %2692

2692:                                             ; preds = %2691, %2674
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #14
  %2693 = load i1, ptr %271, align 1
  br i1 %2693, label %2694, label %2695

2694:                                             ; preds = %2692
  call void @_ZdlPvm(ptr noundef %1863, i64 noundef 208) #16
  br label %2695

2695:                                             ; preds = %2694, %2692
  br label %4008

2696:                                             ; preds = %1901, %1895, %1889, %1882, %1872
  %2697 = landingpad { ptr, i32 }
          cleanup
  %2698 = extractvalue { ptr, i32 } %2697, 0
  store ptr %2698, ptr %7, align 8
  %2699 = extractvalue { ptr, i32 } %2697, 1
  store i32 %2699, ptr %8, align 4
  br label %4007

2700:                                             ; preds = %1874
  %2701 = landingpad { ptr, i32 }
          cleanup
  %2702 = extractvalue { ptr, i32 } %2701, 0
  store ptr %2702, ptr %7, align 8
  %2703 = extractvalue { ptr, i32 } %2701, 1
  store i32 %2703, ptr %8, align 4
  br label %2718

2704:                                             ; preds = %1875
  %2705 = landingpad { ptr, i32 }
          cleanup
  %2706 = extractvalue { ptr, i32 } %2705, 0
  store ptr %2706, ptr %7, align 8
  %2707 = extractvalue { ptr, i32 } %2705, 1
  store i32 %2707, ptr %8, align 4
  br label %2717

2708:                                             ; preds = %1876
  %2709 = landingpad { ptr, i32 }
          cleanup
  %2710 = extractvalue { ptr, i32 } %2709, 0
  store ptr %2710, ptr %7, align 8
  %2711 = extractvalue { ptr, i32 } %2709, 1
  store i32 %2711, ptr %8, align 4
  br label %2716

2712:                                             ; preds = %1881
  %2713 = landingpad { ptr, i32 }
          cleanup
  %2714 = extractvalue { ptr, i32 } %2713, 0
  store ptr %2714, ptr %7, align 8
  %2715 = extractvalue { ptr, i32 } %2713, 1
  store i32 %2715, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #14
  br label %2716

2716:                                             ; preds = %2712, %2708
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %276) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %275) #14
  br label %2717

2717:                                             ; preds = %2716, %2704
  call void @llvm.lifetime.end.p0(i64 96, ptr %274) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #14
  br label %2718

2718:                                             ; preds = %2717, %2700
  call void @llvm.lifetime.end.p0(i64 32, ptr %273) #14
  %2719 = load i1, ptr %279, align 1
  br i1 %2719, label %2720, label %2721

2720:                                             ; preds = %2718
  call void @_ZdlPvm(ptr noundef %1873, i64 noundef 208) #16
  br label %2721

2721:                                             ; preds = %2720, %2718
  br label %4007

2722:                                             ; preds = %1886
  %2723 = landingpad { ptr, i32 }
          cleanup
  %2724 = extractvalue { ptr, i32 } %2723, 0
  store ptr %2724, ptr %7, align 8
  %2725 = extractvalue { ptr, i32 } %2723, 1
  store i32 %2725, ptr %8, align 4
  br label %2730

2726:                                             ; preds = %1888, %1887
  %2727 = landingpad { ptr, i32 }
          cleanup
  %2728 = extractvalue { ptr, i32 } %2727, 0
  store ptr %2728, ptr %7, align 8
  %2729 = extractvalue { ptr, i32 } %2727, 1
  store i32 %2729, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %287) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %285) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %284) #14
  br label %2730

2730:                                             ; preds = %2726, %2722
  call void @llvm.lifetime.end.p0(i64 8, ptr %283) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %280) #14
  br label %4007

2731:                                             ; preds = %1904
  %2732 = landingpad { ptr, i32 }
          cleanup
  %2733 = extractvalue { ptr, i32 } %2732, 0
  store ptr %2733, ptr %7, align 8
  %2734 = extractvalue { ptr, i32 } %2732, 1
  store i32 %2734, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %290) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %289) #14
  br label %4007

2735:                                             ; preds = %1905
  %2736 = landingpad { ptr, i32 }
          cleanup
  %2737 = extractvalue { ptr, i32 } %2736, 0
  store ptr %2737, ptr %7, align 8
  %2738 = extractvalue { ptr, i32 } %2736, 1
  store i32 %2738, ptr %8, align 4
  br label %4006

2739:                                             ; preds = %1907
  %2740 = landingpad { ptr, i32 }
          cleanup
  %2741 = extractvalue { ptr, i32 } %2740, 0
  store ptr %2741, ptr %7, align 8
  %2742 = extractvalue { ptr, i32 } %2740, 1
  store i32 %2742, ptr %8, align 4
  br label %2757

2743:                                             ; preds = %1908
  %2744 = landingpad { ptr, i32 }
          cleanup
  %2745 = extractvalue { ptr, i32 } %2744, 0
  store ptr %2745, ptr %7, align 8
  %2746 = extractvalue { ptr, i32 } %2744, 1
  store i32 %2746, ptr %8, align 4
  br label %2756

2747:                                             ; preds = %1910
  %2748 = landingpad { ptr, i32 }
          cleanup
  %2749 = extractvalue { ptr, i32 } %2748, 0
  store ptr %2749, ptr %7, align 8
  %2750 = extractvalue { ptr, i32 } %2748, 1
  store i32 %2750, ptr %8, align 4
  br label %2755

2751:                                             ; preds = %1915
  %2752 = landingpad { ptr, i32 }
          cleanup
  %2753 = extractvalue { ptr, i32 } %2752, 0
  store ptr %2753, ptr %7, align 8
  %2754 = extractvalue { ptr, i32 } %2752, 1
  store i32 %2754, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #14
  br label %2755

2755:                                             ; preds = %2751, %2747
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %299) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %299) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %298) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %297) #14
  br label %2756

2756:                                             ; preds = %2755, %2743
  call void @llvm.lifetime.end.p0(i64 8, ptr %296) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %295) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %293) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #14
  br label %2757

2757:                                             ; preds = %2756, %2739
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #14
  %2758 = load i1, ptr %301, align 1
  br i1 %2758, label %2759, label %2760

2759:                                             ; preds = %2757
  call void @_ZdlPvm(ptr noundef %1906, i64 noundef 208) #16
  br label %2760

2760:                                             ; preds = %2759, %2757
  br label %4006

2761:                                             ; preds = %1916
  %2762 = landingpad { ptr, i32 }
          cleanup
  %2763 = extractvalue { ptr, i32 } %2762, 0
  store ptr %2763, ptr %7, align 8
  %2764 = extractvalue { ptr, i32 } %2762, 1
  store i32 %2764, ptr %8, align 4
  br label %4005

2765:                                             ; preds = %1918
  %2766 = landingpad { ptr, i32 }
          cleanup
  %2767 = extractvalue { ptr, i32 } %2766, 0
  store ptr %2767, ptr %7, align 8
  %2768 = extractvalue { ptr, i32 } %2766, 1
  store i32 %2768, ptr %8, align 4
  br label %2783

2769:                                             ; preds = %1919
  %2770 = landingpad { ptr, i32 }
          cleanup
  %2771 = extractvalue { ptr, i32 } %2770, 0
  store ptr %2771, ptr %7, align 8
  %2772 = extractvalue { ptr, i32 } %2770, 1
  store i32 %2772, ptr %8, align 4
  br label %2782

2773:                                             ; preds = %1920
  %2774 = landingpad { ptr, i32 }
          cleanup
  %2775 = extractvalue { ptr, i32 } %2774, 0
  store ptr %2775, ptr %7, align 8
  %2776 = extractvalue { ptr, i32 } %2774, 1
  store i32 %2776, ptr %8, align 4
  br label %2781

2777:                                             ; preds = %1925
  %2778 = landingpad { ptr, i32 }
          cleanup
  %2779 = extractvalue { ptr, i32 } %2778, 0
  store ptr %2779, ptr %7, align 8
  %2780 = extractvalue { ptr, i32 } %2778, 1
  store i32 %2780, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #14
  br label %2781

2781:                                             ; preds = %2777, %2773
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %307) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %305) #14
  br label %2782

2782:                                             ; preds = %2781, %2769
  call void @llvm.lifetime.end.p0(i64 96, ptr %304) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #14
  br label %2783

2783:                                             ; preds = %2782, %2765
  call void @llvm.lifetime.end.p0(i64 32, ptr %303) #14
  %2784 = load i1, ptr %309, align 1
  br i1 %2784, label %2785, label %2786

2785:                                             ; preds = %2783
  call void @_ZdlPvm(ptr noundef %1917, i64 noundef 208) #16
  br label %2786

2786:                                             ; preds = %2785, %2783
  br label %4005

2787:                                             ; preds = %1952, %1946, %1940, %1926
  %2788 = landingpad { ptr, i32 }
          cleanup
  %2789 = extractvalue { ptr, i32 } %2788, 0
  store ptr %2789, ptr %7, align 8
  %2790 = extractvalue { ptr, i32 } %2788, 1
  store i32 %2790, ptr %8, align 4
  br label %4004

2791:                                             ; preds = %1928
  %2792 = landingpad { ptr, i32 }
          cleanup
  %2793 = extractvalue { ptr, i32 } %2792, 0
  store ptr %2793, ptr %7, align 8
  %2794 = extractvalue { ptr, i32 } %2792, 1
  store i32 %2794, ptr %8, align 4
  br label %2809

2795:                                             ; preds = %1929
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %7, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %8, align 4
  br label %2808

2799:                                             ; preds = %1930
  %2800 = landingpad { ptr, i32 }
          cleanup
  %2801 = extractvalue { ptr, i32 } %2800, 0
  store ptr %2801, ptr %7, align 8
  %2802 = extractvalue { ptr, i32 } %2800, 1
  store i32 %2802, ptr %8, align 4
  br label %2807

2803:                                             ; preds = %1935
  %2804 = landingpad { ptr, i32 }
          cleanup
  %2805 = extractvalue { ptr, i32 } %2804, 0
  store ptr %2805, ptr %7, align 8
  %2806 = extractvalue { ptr, i32 } %2804, 1
  store i32 %2806, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #14
  br label %2807

2807:                                             ; preds = %2803, %2799
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %315) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %315) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %314) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %313) #14
  br label %2808

2808:                                             ; preds = %2807, %2795
  call void @llvm.lifetime.end.p0(i64 96, ptr %312) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %311) #14
  br label %2809

2809:                                             ; preds = %2808, %2791
  call void @llvm.lifetime.end.p0(i64 32, ptr %311) #14
  %2810 = load i1, ptr %317, align 1
  br i1 %2810, label %2811, label %2812

2811:                                             ; preds = %2809
  call void @_ZdlPvm(ptr noundef %1927, i64 noundef 208) #16
  br label %2812

2812:                                             ; preds = %2811, %2809
  br label %4004

2813:                                             ; preds = %1939, %1936
  %2814 = landingpad { ptr, i32 }
          cleanup
  %2815 = extractvalue { ptr, i32 } %2814, 0
  store ptr %2815, ptr %7, align 8
  %2816 = extractvalue { ptr, i32 } %2814, 1
  store i32 %2816, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %318) #14
  br label %4004

2817:                                             ; preds = %1955
  %2818 = landingpad { ptr, i32 }
          cleanup
  %2819 = extractvalue { ptr, i32 } %2818, 0
  store ptr %2819, ptr %7, align 8
  %2820 = extractvalue { ptr, i32 } %2818, 1
  store i32 %2820, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %323) #14
  br label %4004

2821:                                             ; preds = %1956
  %2822 = landingpad { ptr, i32 }
          cleanup
  %2823 = extractvalue { ptr, i32 } %2822, 0
  store ptr %2823, ptr %7, align 8
  %2824 = extractvalue { ptr, i32 } %2822, 1
  store i32 %2824, ptr %8, align 4
  br label %2886

2825:                                             ; preds = %1958
  %2826 = landingpad { ptr, i32 }
          cleanup
  %2827 = extractvalue { ptr, i32 } %2826, 0
  store ptr %2827, ptr %7, align 8
  %2828 = extractvalue { ptr, i32 } %2826, 1
  store i32 %2828, ptr %8, align 4
  br label %2843

2829:                                             ; preds = %1959
  %2830 = landingpad { ptr, i32 }
          cleanup
  %2831 = extractvalue { ptr, i32 } %2830, 0
  store ptr %2831, ptr %7, align 8
  %2832 = extractvalue { ptr, i32 } %2830, 1
  store i32 %2832, ptr %8, align 4
  br label %2842

2833:                                             ; preds = %1960
  %2834 = landingpad { ptr, i32 }
          cleanup
  %2835 = extractvalue { ptr, i32 } %2834, 0
  store ptr %2835, ptr %7, align 8
  %2836 = extractvalue { ptr, i32 } %2834, 1
  store i32 %2836, ptr %8, align 4
  br label %2841

2837:                                             ; preds = %1965
  %2838 = landingpad { ptr, i32 }
          cleanup
  %2839 = extractvalue { ptr, i32 } %2838, 0
  store ptr %2839, ptr %7, align 8
  %2840 = extractvalue { ptr, i32 } %2838, 1
  store i32 %2840, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %331) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #14
  br label %2841

2841:                                             ; preds = %2837, %2833
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %328) #14
  br label %2842

2842:                                             ; preds = %2841, %2829
  call void @llvm.lifetime.end.p0(i64 96, ptr %327) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #14
  br label %2843

2843:                                             ; preds = %2842, %2825
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #14
  %2844 = load i1, ptr %332, align 1
  br i1 %2844, label %2845, label %2846

2845:                                             ; preds = %2843
  call void @_ZdlPvm(ptr noundef %1957, i64 noundef 208) #16
  br label %2846

2846:                                             ; preds = %2845, %2843
  br label %2886

2847:                                             ; preds = %1988, %1982, %1976, %1966
  %2848 = landingpad { ptr, i32 }
          cleanup
  %2849 = extractvalue { ptr, i32 } %2848, 0
  store ptr %2849, ptr %7, align 8
  %2850 = extractvalue { ptr, i32 } %2848, 1
  store i32 %2850, ptr %8, align 4
  br label %2885

2851:                                             ; preds = %1968
  %2852 = landingpad { ptr, i32 }
          cleanup
  %2853 = extractvalue { ptr, i32 } %2852, 0
  store ptr %2853, ptr %7, align 8
  %2854 = extractvalue { ptr, i32 } %2852, 1
  store i32 %2854, ptr %8, align 4
  br label %2869

2855:                                             ; preds = %1969
  %2856 = landingpad { ptr, i32 }
          cleanup
  %2857 = extractvalue { ptr, i32 } %2856, 0
  store ptr %2857, ptr %7, align 8
  %2858 = extractvalue { ptr, i32 } %2856, 1
  store i32 %2858, ptr %8, align 4
  br label %2868

2859:                                             ; preds = %1970
  %2860 = landingpad { ptr, i32 }
          cleanup
  %2861 = extractvalue { ptr, i32 } %2860, 0
  store ptr %2861, ptr %7, align 8
  %2862 = extractvalue { ptr, i32 } %2860, 1
  store i32 %2862, ptr %8, align 4
  br label %2867

2863:                                             ; preds = %1975
  %2864 = landingpad { ptr, i32 }
          cleanup
  %2865 = extractvalue { ptr, i32 } %2864, 0
  store ptr %2865, ptr %7, align 8
  %2866 = extractvalue { ptr, i32 } %2864, 1
  store i32 %2866, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #14
  br label %2867

2867:                                             ; preds = %2863, %2859
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %338) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %338) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %337) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %336) #14
  br label %2868

2868:                                             ; preds = %2867, %2855
  call void @llvm.lifetime.end.p0(i64 96, ptr %335) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #14
  br label %2869

2869:                                             ; preds = %2868, %2851
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #14
  %2870 = load i1, ptr %340, align 1
  br i1 %2870, label %2871, label %2872

2871:                                             ; preds = %2869
  call void @_ZdlPvm(ptr noundef %1967, i64 noundef 208) #16
  br label %2872

2872:                                             ; preds = %2871, %2869
  br label %2885

2873:                                             ; preds = %1991
  %2874 = landingpad { ptr, i32 }
          cleanup
  %2875 = extractvalue { ptr, i32 } %2874, 0
  store ptr %2875, ptr %7, align 8
  %2876 = extractvalue { ptr, i32 } %2874, 1
  store i32 %2876, ptr %8, align 4
  br label %2881

2877:                                             ; preds = %2000, %1997, %1993
  %2878 = landingpad { ptr, i32 }
          cleanup
  %2879 = extractvalue { ptr, i32 } %2878, 0
  store ptr %2879, ptr %7, align 8
  %2880 = extractvalue { ptr, i32 } %2878, 1
  store i32 %2880, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %347) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %345) #14
  br label %2881

2881:                                             ; preds = %2877, %2873
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %343) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %341) #14
  %2882 = load i1, ptr %349, align 1
  br i1 %2882, label %2883, label %2884

2883:                                             ; preds = %2881
  call void @_ZdlPvm(ptr noundef %1990, i64 noundef 232) #16
  br label %2884

2884:                                             ; preds = %2883, %2881
  br label %2885

2885:                                             ; preds = %2884, %2872, %2847
  call void @llvm.lifetime.end.p0(i64 8, ptr %333) #14
  br label %2886

2886:                                             ; preds = %2885, %2846, %2821
  call void @llvm.lifetime.end.p0(i64 8, ptr %325) #14
  br label %4004

2887:                                             ; preds = %2001
  %2888 = landingpad { ptr, i32 }
          cleanup
  %2889 = extractvalue { ptr, i32 } %2888, 0
  store ptr %2889, ptr %7, align 8
  %2890 = extractvalue { ptr, i32 } %2888, 1
  store i32 %2890, ptr %8, align 4
  br label %2952

2891:                                             ; preds = %2003
  %2892 = landingpad { ptr, i32 }
          cleanup
  %2893 = extractvalue { ptr, i32 } %2892, 0
  store ptr %2893, ptr %7, align 8
  %2894 = extractvalue { ptr, i32 } %2892, 1
  store i32 %2894, ptr %8, align 4
  br label %2909

2895:                                             ; preds = %2004
  %2896 = landingpad { ptr, i32 }
          cleanup
  %2897 = extractvalue { ptr, i32 } %2896, 0
  store ptr %2897, ptr %7, align 8
  %2898 = extractvalue { ptr, i32 } %2896, 1
  store i32 %2898, ptr %8, align 4
  br label %2908

2899:                                             ; preds = %2005
  %2900 = landingpad { ptr, i32 }
          cleanup
  %2901 = extractvalue { ptr, i32 } %2900, 0
  store ptr %2901, ptr %7, align 8
  %2902 = extractvalue { ptr, i32 } %2900, 1
  store i32 %2902, ptr %8, align 4
  br label %2907

2903:                                             ; preds = %2010
  %2904 = landingpad { ptr, i32 }
          cleanup
  %2905 = extractvalue { ptr, i32 } %2904, 0
  store ptr %2905, ptr %7, align 8
  %2906 = extractvalue { ptr, i32 } %2904, 1
  store i32 %2906, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #14
  br label %2907

2907:                                             ; preds = %2903, %2899
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %355) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %353) #14
  br label %2908

2908:                                             ; preds = %2907, %2895
  call void @llvm.lifetime.end.p0(i64 96, ptr %352) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #14
  br label %2909

2909:                                             ; preds = %2908, %2891
  call void @llvm.lifetime.end.p0(i64 32, ptr %351) #14
  %2910 = load i1, ptr %357, align 1
  br i1 %2910, label %2911, label %2912

2911:                                             ; preds = %2909
  call void @_ZdlPvm(ptr noundef %2002, i64 noundef 208) #16
  br label %2912

2912:                                             ; preds = %2911, %2909
  br label %2952

2913:                                             ; preds = %2033, %2027, %2021, %2011
  %2914 = landingpad { ptr, i32 }
          cleanup
  %2915 = extractvalue { ptr, i32 } %2914, 0
  store ptr %2915, ptr %7, align 8
  %2916 = extractvalue { ptr, i32 } %2914, 1
  store i32 %2916, ptr %8, align 4
  br label %2951

2917:                                             ; preds = %2013
  %2918 = landingpad { ptr, i32 }
          cleanup
  %2919 = extractvalue { ptr, i32 } %2918, 0
  store ptr %2919, ptr %7, align 8
  %2920 = extractvalue { ptr, i32 } %2918, 1
  store i32 %2920, ptr %8, align 4
  br label %2935

2921:                                             ; preds = %2014
  %2922 = landingpad { ptr, i32 }
          cleanup
  %2923 = extractvalue { ptr, i32 } %2922, 0
  store ptr %2923, ptr %7, align 8
  %2924 = extractvalue { ptr, i32 } %2922, 1
  store i32 %2924, ptr %8, align 4
  br label %2934

2925:                                             ; preds = %2015
  %2926 = landingpad { ptr, i32 }
          cleanup
  %2927 = extractvalue { ptr, i32 } %2926, 0
  store ptr %2927, ptr %7, align 8
  %2928 = extractvalue { ptr, i32 } %2926, 1
  store i32 %2928, ptr %8, align 4
  br label %2933

2929:                                             ; preds = %2020
  %2930 = landingpad { ptr, i32 }
          cleanup
  %2931 = extractvalue { ptr, i32 } %2930, 0
  store ptr %2931, ptr %7, align 8
  %2932 = extractvalue { ptr, i32 } %2930, 1
  store i32 %2932, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #14
  br label %2933

2933:                                             ; preds = %2929, %2925
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %363) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %363) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %362) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %361) #14
  br label %2934

2934:                                             ; preds = %2933, %2921
  call void @llvm.lifetime.end.p0(i64 96, ptr %360) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #14
  br label %2935

2935:                                             ; preds = %2934, %2917
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #14
  %2936 = load i1, ptr %365, align 1
  br i1 %2936, label %2937, label %2938

2937:                                             ; preds = %2935
  call void @_ZdlPvm(ptr noundef %2012, i64 noundef 208) #16
  br label %2938

2938:                                             ; preds = %2937, %2935
  br label %2951

2939:                                             ; preds = %2036
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %7, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %8, align 4
  br label %2947

2943:                                             ; preds = %2045, %2042, %2038
  %2944 = landingpad { ptr, i32 }
          cleanup
  %2945 = extractvalue { ptr, i32 } %2944, 0
  store ptr %2945, ptr %7, align 8
  %2946 = extractvalue { ptr, i32 } %2944, 1
  store i32 %2946, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %372) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %371) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %370) #14
  br label %2947

2947:                                             ; preds = %2943, %2939
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %367) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %366) #14
  %2948 = load i1, ptr %374, align 1
  br i1 %2948, label %2949, label %2950

2949:                                             ; preds = %2947
  call void @_ZdlPvm(ptr noundef %2035, i64 noundef 232) #16
  br label %2950

2950:                                             ; preds = %2949, %2947
  br label %2951

2951:                                             ; preds = %2950, %2938, %2913
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #14
  br label %2952

2952:                                             ; preds = %2951, %2912, %2887
  call void @llvm.lifetime.end.p0(i64 8, ptr %350) #14
  br label %4004

2953:                                             ; preds = %2046
  %2954 = landingpad { ptr, i32 }
          cleanup
  %2955 = extractvalue { ptr, i32 } %2954, 0
  store ptr %2955, ptr %7, align 8
  %2956 = extractvalue { ptr, i32 } %2954, 1
  store i32 %2956, ptr %8, align 4
  br label %3018

2957:                                             ; preds = %2048
  %2958 = landingpad { ptr, i32 }
          cleanup
  %2959 = extractvalue { ptr, i32 } %2958, 0
  store ptr %2959, ptr %7, align 8
  %2960 = extractvalue { ptr, i32 } %2958, 1
  store i32 %2960, ptr %8, align 4
  br label %2975

2961:                                             ; preds = %2049
  %2962 = landingpad { ptr, i32 }
          cleanup
  %2963 = extractvalue { ptr, i32 } %2962, 0
  store ptr %2963, ptr %7, align 8
  %2964 = extractvalue { ptr, i32 } %2962, 1
  store i32 %2964, ptr %8, align 4
  br label %2974

2965:                                             ; preds = %2050
  %2966 = landingpad { ptr, i32 }
          cleanup
  %2967 = extractvalue { ptr, i32 } %2966, 0
  store ptr %2967, ptr %7, align 8
  %2968 = extractvalue { ptr, i32 } %2966, 1
  store i32 %2968, ptr %8, align 4
  br label %2973

2969:                                             ; preds = %2055
  %2970 = landingpad { ptr, i32 }
          cleanup
  %2971 = extractvalue { ptr, i32 } %2970, 0
  store ptr %2971, ptr %7, align 8
  %2972 = extractvalue { ptr, i32 } %2970, 1
  store i32 %2972, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #14
  br label %2973

2973:                                             ; preds = %2969, %2965
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %380) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %380) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %378) #14
  br label %2974

2974:                                             ; preds = %2973, %2961
  call void @llvm.lifetime.end.p0(i64 96, ptr %377) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #14
  br label %2975

2975:                                             ; preds = %2974, %2957
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #14
  %2976 = load i1, ptr %382, align 1
  br i1 %2976, label %2977, label %2978

2977:                                             ; preds = %2975
  call void @_ZdlPvm(ptr noundef %2047, i64 noundef 208) #16
  br label %2978

2978:                                             ; preds = %2977, %2975
  br label %3018

2979:                                             ; preds = %2078, %2072, %2066, %2056
  %2980 = landingpad { ptr, i32 }
          cleanup
  %2981 = extractvalue { ptr, i32 } %2980, 0
  store ptr %2981, ptr %7, align 8
  %2982 = extractvalue { ptr, i32 } %2980, 1
  store i32 %2982, ptr %8, align 4
  br label %3017

2983:                                             ; preds = %2058
  %2984 = landingpad { ptr, i32 }
          cleanup
  %2985 = extractvalue { ptr, i32 } %2984, 0
  store ptr %2985, ptr %7, align 8
  %2986 = extractvalue { ptr, i32 } %2984, 1
  store i32 %2986, ptr %8, align 4
  br label %3001

2987:                                             ; preds = %2059
  %2988 = landingpad { ptr, i32 }
          cleanup
  %2989 = extractvalue { ptr, i32 } %2988, 0
  store ptr %2989, ptr %7, align 8
  %2990 = extractvalue { ptr, i32 } %2988, 1
  store i32 %2990, ptr %8, align 4
  br label %3000

2991:                                             ; preds = %2060
  %2992 = landingpad { ptr, i32 }
          cleanup
  %2993 = extractvalue { ptr, i32 } %2992, 0
  store ptr %2993, ptr %7, align 8
  %2994 = extractvalue { ptr, i32 } %2992, 1
  store i32 %2994, ptr %8, align 4
  br label %2999

2995:                                             ; preds = %2065
  %2996 = landingpad { ptr, i32 }
          cleanup
  %2997 = extractvalue { ptr, i32 } %2996, 0
  store ptr %2997, ptr %7, align 8
  %2998 = extractvalue { ptr, i32 } %2996, 1
  store i32 %2998, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %389) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #14
  br label %2999

2999:                                             ; preds = %2995, %2991
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %388) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %388) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %386) #14
  br label %3000

3000:                                             ; preds = %2999, %2987
  call void @llvm.lifetime.end.p0(i64 96, ptr %385) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %384) #14
  br label %3001

3001:                                             ; preds = %3000, %2983
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #14
  %3002 = load i1, ptr %390, align 1
  br i1 %3002, label %3003, label %3004

3003:                                             ; preds = %3001
  call void @_ZdlPvm(ptr noundef %2057, i64 noundef 208) #16
  br label %3004

3004:                                             ; preds = %3003, %3001
  br label %3017

3005:                                             ; preds = %2081
  %3006 = landingpad { ptr, i32 }
          cleanup
  %3007 = extractvalue { ptr, i32 } %3006, 0
  store ptr %3007, ptr %7, align 8
  %3008 = extractvalue { ptr, i32 } %3006, 1
  store i32 %3008, ptr %8, align 4
  br label %3013

3009:                                             ; preds = %2090, %2087, %2083
  %3010 = landingpad { ptr, i32 }
          cleanup
  %3011 = extractvalue { ptr, i32 } %3010, 0
  store ptr %3011, ptr %7, align 8
  %3012 = extractvalue { ptr, i32 } %3010, 1
  store i32 %3012, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %398) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %397) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %396) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %395) #14
  br label %3013

3013:                                             ; preds = %3009, %3005
  call void @llvm.lifetime.end.p0(i64 8, ptr %394) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %393) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %392) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr %391) #14
  %3014 = load i1, ptr %399, align 1
  br i1 %3014, label %3015, label %3016

3015:                                             ; preds = %3013
  call void @_ZdlPvm(ptr noundef %2080, i64 noundef 232) #16
  br label %3016

3016:                                             ; preds = %3015, %3013
  br label %3017

3017:                                             ; preds = %3016, %3004, %2979
  call void @llvm.lifetime.end.p0(i64 8, ptr %383) #14
  br label %3018

3018:                                             ; preds = %3017, %2978, %2953
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #14
  br label %4004

3019:                                             ; preds = %2091
  %3020 = landingpad { ptr, i32 }
          cleanup
  %3021 = extractvalue { ptr, i32 } %3020, 0
  store ptr %3021, ptr %7, align 8
  %3022 = extractvalue { ptr, i32 } %3020, 1
  store i32 %3022, ptr %8, align 4
  br label %3189

3023:                                             ; preds = %2093
  %3024 = landingpad { ptr, i32 }
          cleanup
  %3025 = extractvalue { ptr, i32 } %3024, 0
  store ptr %3025, ptr %7, align 8
  %3026 = extractvalue { ptr, i32 } %3024, 1
  store i32 %3026, ptr %8, align 4
  br label %3041

3027:                                             ; preds = %2094
  %3028 = landingpad { ptr, i32 }
          cleanup
  %3029 = extractvalue { ptr, i32 } %3028, 0
  store ptr %3029, ptr %7, align 8
  %3030 = extractvalue { ptr, i32 } %3028, 1
  store i32 %3030, ptr %8, align 4
  br label %3040

3031:                                             ; preds = %2095
  %3032 = landingpad { ptr, i32 }
          cleanup
  %3033 = extractvalue { ptr, i32 } %3032, 0
  store ptr %3033, ptr %7, align 8
  %3034 = extractvalue { ptr, i32 } %3032, 1
  store i32 %3034, ptr %8, align 4
  br label %3039

3035:                                             ; preds = %2100
  %3036 = landingpad { ptr, i32 }
          cleanup
  %3037 = extractvalue { ptr, i32 } %3036, 0
  store ptr %3037, ptr %7, align 8
  %3038 = extractvalue { ptr, i32 } %3036, 1
  store i32 %3038, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %406) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #14
  br label %3039

3039:                                             ; preds = %3035, %3031
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %405) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %405) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %403) #14
  br label %3040

3040:                                             ; preds = %3039, %3027
  call void @llvm.lifetime.end.p0(i64 96, ptr %402) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #14
  br label %3041

3041:                                             ; preds = %3040, %3023
  call void @llvm.lifetime.end.p0(i64 32, ptr %401) #14
  %3042 = load i1, ptr %407, align 1
  br i1 %3042, label %3043, label %3044

3043:                                             ; preds = %3041
  call void @_ZdlPvm(ptr noundef %2092, i64 noundef 208) #16
  br label %3044

3044:                                             ; preds = %3043, %3041
  br label %3189

3045:                                             ; preds = %2101
  %3046 = landingpad { ptr, i32 }
          cleanup
  %3047 = extractvalue { ptr, i32 } %3046, 0
  store ptr %3047, ptr %7, align 8
  %3048 = extractvalue { ptr, i32 } %3046, 1
  store i32 %3048, ptr %8, align 4
  br label %3188

3049:                                             ; preds = %2103
  %3050 = landingpad { ptr, i32 }
          cleanup
  %3051 = extractvalue { ptr, i32 } %3050, 0
  store ptr %3051, ptr %7, align 8
  %3052 = extractvalue { ptr, i32 } %3050, 1
  store i32 %3052, ptr %8, align 4
  br label %3067

3053:                                             ; preds = %2104
  %3054 = landingpad { ptr, i32 }
          cleanup
  %3055 = extractvalue { ptr, i32 } %3054, 0
  store ptr %3055, ptr %7, align 8
  %3056 = extractvalue { ptr, i32 } %3054, 1
  store i32 %3056, ptr %8, align 4
  br label %3066

3057:                                             ; preds = %2105
  %3058 = landingpad { ptr, i32 }
          cleanup
  %3059 = extractvalue { ptr, i32 } %3058, 0
  store ptr %3059, ptr %7, align 8
  %3060 = extractvalue { ptr, i32 } %3058, 1
  store i32 %3060, ptr %8, align 4
  br label %3065

3061:                                             ; preds = %2110
  %3062 = landingpad { ptr, i32 }
          cleanup
  %3063 = extractvalue { ptr, i32 } %3062, 0
  store ptr %3063, ptr %7, align 8
  %3064 = extractvalue { ptr, i32 } %3062, 1
  store i32 %3064, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %414) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #14
  br label %3065

3065:                                             ; preds = %3061, %3057
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %413) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %412) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %411) #14
  br label %3066

3066:                                             ; preds = %3065, %3053
  call void @llvm.lifetime.end.p0(i64 96, ptr %410) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #14
  br label %3067

3067:                                             ; preds = %3066, %3049
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #14
  %3068 = load i1, ptr %415, align 1
  br i1 %3068, label %3069, label %3070

3069:                                             ; preds = %3067
  call void @_ZdlPvm(ptr noundef %2102, i64 noundef 208) #16
  br label %3070

3070:                                             ; preds = %3069, %3067
  br label %3188

3071:                                             ; preds = %2111
  %3072 = landingpad { ptr, i32 }
          cleanup
  %3073 = extractvalue { ptr, i32 } %3072, 0
  store ptr %3073, ptr %7, align 8
  %3074 = extractvalue { ptr, i32 } %3072, 1
  store i32 %3074, ptr %8, align 4
  br label %3187

3075:                                             ; preds = %2113
  %3076 = landingpad { ptr, i32 }
          cleanup
  %3077 = extractvalue { ptr, i32 } %3076, 0
  store ptr %3077, ptr %7, align 8
  %3078 = extractvalue { ptr, i32 } %3076, 1
  store i32 %3078, ptr %8, align 4
  br label %3093

3079:                                             ; preds = %2114
  %3080 = landingpad { ptr, i32 }
          cleanup
  %3081 = extractvalue { ptr, i32 } %3080, 0
  store ptr %3081, ptr %7, align 8
  %3082 = extractvalue { ptr, i32 } %3080, 1
  store i32 %3082, ptr %8, align 4
  br label %3092

3083:                                             ; preds = %2115
  %3084 = landingpad { ptr, i32 }
          cleanup
  %3085 = extractvalue { ptr, i32 } %3084, 0
  store ptr %3085, ptr %7, align 8
  %3086 = extractvalue { ptr, i32 } %3084, 1
  store i32 %3086, ptr %8, align 4
  br label %3091

3087:                                             ; preds = %2120
  %3088 = landingpad { ptr, i32 }
          cleanup
  %3089 = extractvalue { ptr, i32 } %3088, 0
  store ptr %3089, ptr %7, align 8
  %3090 = extractvalue { ptr, i32 } %3088, 1
  store i32 %3090, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #14
  br label %3091

3091:                                             ; preds = %3087, %3083
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %421) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %421) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %420) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %419) #14
  br label %3092

3092:                                             ; preds = %3091, %3079
  call void @llvm.lifetime.end.p0(i64 96, ptr %418) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #14
  br label %3093

3093:                                             ; preds = %3092, %3075
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #14
  %3094 = load i1, ptr %423, align 1
  br i1 %3094, label %3095, label %3096

3095:                                             ; preds = %3093
  call void @_ZdlPvm(ptr noundef %2112, i64 noundef 208) #16
  br label %3096

3096:                                             ; preds = %3095, %3093
  br label %3187

3097:                                             ; preds = %2121
  %3098 = landingpad { ptr, i32 }
          cleanup
  %3099 = extractvalue { ptr, i32 } %3098, 0
  store ptr %3099, ptr %7, align 8
  %3100 = extractvalue { ptr, i32 } %3098, 1
  store i32 %3100, ptr %8, align 4
  br label %3186

3101:                                             ; preds = %2123
  %3102 = landingpad { ptr, i32 }
          cleanup
  %3103 = extractvalue { ptr, i32 } %3102, 0
  store ptr %3103, ptr %7, align 8
  %3104 = extractvalue { ptr, i32 } %3102, 1
  store i32 %3104, ptr %8, align 4
  br label %3119

3105:                                             ; preds = %2124
  %3106 = landingpad { ptr, i32 }
          cleanup
  %3107 = extractvalue { ptr, i32 } %3106, 0
  store ptr %3107, ptr %7, align 8
  %3108 = extractvalue { ptr, i32 } %3106, 1
  store i32 %3108, ptr %8, align 4
  br label %3118

3109:                                             ; preds = %2125
  %3110 = landingpad { ptr, i32 }
          cleanup
  %3111 = extractvalue { ptr, i32 } %3110, 0
  store ptr %3111, ptr %7, align 8
  %3112 = extractvalue { ptr, i32 } %3110, 1
  store i32 %3112, ptr %8, align 4
  br label %3117

3113:                                             ; preds = %2130
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %7, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #14
  br label %3117

3117:                                             ; preds = %3113, %3109
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %429) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %429) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %428) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %427) #14
  br label %3118

3118:                                             ; preds = %3117, %3105
  call void @llvm.lifetime.end.p0(i64 96, ptr %426) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #14
  br label %3119

3119:                                             ; preds = %3118, %3101
  call void @llvm.lifetime.end.p0(i64 32, ptr %425) #14
  %3120 = load i1, ptr %431, align 1
  br i1 %3120, label %3121, label %3122

3121:                                             ; preds = %3119
  call void @_ZdlPvm(ptr noundef %2122, i64 noundef 208) #16
  br label %3122

3122:                                             ; preds = %3121, %3119
  br label %3186

3123:                                             ; preds = %2169, %2162, %2155, %2148, %2141, %2131
  %3124 = landingpad { ptr, i32 }
          cleanup
  %3125 = extractvalue { ptr, i32 } %3124, 0
  store ptr %3125, ptr %7, align 8
  %3126 = extractvalue { ptr, i32 } %3124, 1
  store i32 %3126, ptr %8, align 4
  br label %3185

3127:                                             ; preds = %2133
  %3128 = landingpad { ptr, i32 }
          cleanup
  %3129 = extractvalue { ptr, i32 } %3128, 0
  store ptr %3129, ptr %7, align 8
  %3130 = extractvalue { ptr, i32 } %3128, 1
  store i32 %3130, ptr %8, align 4
  br label %3145

3131:                                             ; preds = %2134
  %3132 = landingpad { ptr, i32 }
          cleanup
  %3133 = extractvalue { ptr, i32 } %3132, 0
  store ptr %3133, ptr %7, align 8
  %3134 = extractvalue { ptr, i32 } %3132, 1
  store i32 %3134, ptr %8, align 4
  br label %3144

3135:                                             ; preds = %2135
  %3136 = landingpad { ptr, i32 }
          cleanup
  %3137 = extractvalue { ptr, i32 } %3136, 0
  store ptr %3137, ptr %7, align 8
  %3138 = extractvalue { ptr, i32 } %3136, 1
  store i32 %3138, ptr %8, align 4
  br label %3143

3139:                                             ; preds = %2140
  %3140 = landingpad { ptr, i32 }
          cleanup
  %3141 = extractvalue { ptr, i32 } %3140, 0
  store ptr %3141, ptr %7, align 8
  %3142 = extractvalue { ptr, i32 } %3140, 1
  store i32 %3142, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %438) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #14
  br label %3143

3143:                                             ; preds = %3139, %3135
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %437) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %437) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr %435) #14
  br label %3144

3144:                                             ; preds = %3143, %3131
  call void @llvm.lifetime.end.p0(i64 96, ptr %434) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #14
  br label %3145

3145:                                             ; preds = %3144, %3127
  call void @llvm.lifetime.end.p0(i64 32, ptr %433) #14
  %3146 = load i1, ptr %439, align 1
  br i1 %3146, label %3147, label %3148

3147:                                             ; preds = %3145
  call void @_ZdlPvm(ptr noundef %2132, i64 noundef 208) #16
  br label %3148

3148:                                             ; preds = %3147, %3145
  br label %3185

3149:                                             ; preds = %2145
  %3150 = landingpad { ptr, i32 }
          cleanup
  %3151 = extractvalue { ptr, i32 } %3150, 0
  store ptr %3151, ptr %7, align 8
  %3152 = extractvalue { ptr, i32 } %3150, 1
  store i32 %3152, ptr %8, align 4
  br label %3157

3153:                                             ; preds = %2147, %2146
  %3154 = landingpad { ptr, i32 }
          cleanup
  %3155 = extractvalue { ptr, i32 } %3154, 0
  store ptr %3155, ptr %7, align 8
  %3156 = extractvalue { ptr, i32 } %3154, 1
  store i32 %3156, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %447) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %446) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %445) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %444) #14
  br label %3157

3157:                                             ; preds = %3153, %3149
  call void @llvm.lifetime.end.p0(i64 8, ptr %443) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %441) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %440) #14
  br label %3185

3158:                                             ; preds = %2152
  %3159 = landingpad { ptr, i32 }
          cleanup
  %3160 = extractvalue { ptr, i32 } %3159, 0
  store ptr %3160, ptr %7, align 8
  %3161 = extractvalue { ptr, i32 } %3159, 1
  store i32 %3161, ptr %8, align 4
  br label %3166

3162:                                             ; preds = %2154, %2153
  %3163 = landingpad { ptr, i32 }
          cleanup
  %3164 = extractvalue { ptr, i32 } %3163, 0
  store ptr %3164, ptr %7, align 8
  %3165 = extractvalue { ptr, i32 } %3163, 1
  store i32 %3165, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %455) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %454) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %453) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %452) #14
  br label %3166

3166:                                             ; preds = %3162, %3158
  call void @llvm.lifetime.end.p0(i64 8, ptr %451) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %450) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %448) #14
  br label %3185

3167:                                             ; preds = %2159
  %3168 = landingpad { ptr, i32 }
          cleanup
  %3169 = extractvalue { ptr, i32 } %3168, 0
  store ptr %3169, ptr %7, align 8
  %3170 = extractvalue { ptr, i32 } %3168, 1
  store i32 %3170, ptr %8, align 4
  br label %3175

3171:                                             ; preds = %2161, %2160
  %3172 = landingpad { ptr, i32 }
          cleanup
  %3173 = extractvalue { ptr, i32 } %3172, 0
  store ptr %3173, ptr %7, align 8
  %3174 = extractvalue { ptr, i32 } %3172, 1
  store i32 %3174, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %463) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %462) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %461) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %460) #14
  br label %3175

3175:                                             ; preds = %3171, %3167
  call void @llvm.lifetime.end.p0(i64 8, ptr %459) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %458) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %457) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %456) #14
  br label %3185

3176:                                             ; preds = %2166
  %3177 = landingpad { ptr, i32 }
          cleanup
  %3178 = extractvalue { ptr, i32 } %3177, 0
  store ptr %3178, ptr %7, align 8
  %3179 = extractvalue { ptr, i32 } %3177, 1
  store i32 %3179, ptr %8, align 4
  br label %3184

3180:                                             ; preds = %2168, %2167
  %3181 = landingpad { ptr, i32 }
          cleanup
  %3182 = extractvalue { ptr, i32 } %3181, 0
  store ptr %3182, ptr %7, align 8
  %3183 = extractvalue { ptr, i32 } %3181, 1
  store i32 %3183, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %471) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %470) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %469) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %468) #14
  br label %3184

3184:                                             ; preds = %3180, %3176
  call void @llvm.lifetime.end.p0(i64 8, ptr %467) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %466) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %465) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %464) #14
  br label %3185

3185:                                             ; preds = %3184, %3175, %3166, %3157, %3148, %3123
  call void @llvm.lifetime.end.p0(i64 8, ptr %432) #14
  br label %3186

3186:                                             ; preds = %3185, %3122, %3097
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #14
  br label %3187

3187:                                             ; preds = %3186, %3096, %3071
  call void @llvm.lifetime.end.p0(i64 8, ptr %416) #14
  br label %3188

3188:                                             ; preds = %3187, %3070, %3045
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #14
  br label %3189

3189:                                             ; preds = %3188, %3044, %3019
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #14
  br label %4004

3190:                                             ; preds = %2175
  %3191 = landingpad { ptr, i32 }
          cleanup
  %3192 = extractvalue { ptr, i32 } %3191, 0
  store ptr %3192, ptr %7, align 8
  %3193 = extractvalue { ptr, i32 } %3191, 1
  store i32 %3193, ptr %8, align 4
  br label %3376

3194:                                             ; preds = %2182
  %3195 = landingpad { ptr, i32 }
          cleanup
  %3196 = extractvalue { ptr, i32 } %3195, 0
  store ptr %3196, ptr %7, align 8
  %3197 = extractvalue { ptr, i32 } %3195, 1
  store i32 %3197, ptr %8, align 4
  br label %3212

3198:                                             ; preds = %2183
  %3199 = landingpad { ptr, i32 }
          cleanup
  %3200 = extractvalue { ptr, i32 } %3199, 0
  store ptr %3200, ptr %7, align 8
  %3201 = extractvalue { ptr, i32 } %3199, 1
  store i32 %3201, ptr %8, align 4
  br label %3211

3202:                                             ; preds = %2184
  %3203 = landingpad { ptr, i32 }
          cleanup
  %3204 = extractvalue { ptr, i32 } %3203, 0
  store ptr %3204, ptr %7, align 8
  %3205 = extractvalue { ptr, i32 } %3203, 1
  store i32 %3205, ptr %8, align 4
  br label %3210

3206:                                             ; preds = %2185
  %3207 = landingpad { ptr, i32 }
          cleanup
  %3208 = extractvalue { ptr, i32 } %3207, 0
  store ptr %3208, ptr %7, align 8
  %3209 = extractvalue { ptr, i32 } %3207, 1
  store i32 %3209, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %478) #14
  br label %3210

3210:                                             ; preds = %3206, %3202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %479) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %479) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %478) #14
  br label %3211

3211:                                             ; preds = %3210, %3198
  call void @llvm.lifetime.end.p0(i64 96, ptr %477) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %476) #14
  br label %3212

3212:                                             ; preds = %3211, %3194
  call void @llvm.lifetime.end.p0(i64 32, ptr %476) #14
  %3213 = load i1, ptr %480, align 1
  br i1 %3213, label %3214, label %3215

3214:                                             ; preds = %3212
  call void @_ZdlPvm(ptr noundef %2181, i64 noundef 208) #16
  br label %3215

3215:                                             ; preds = %3214, %3212
  br label %3376

3216:                                             ; preds = %2186
  %3217 = landingpad { ptr, i32 }
          cleanup
  %3218 = extractvalue { ptr, i32 } %3217, 0
  store ptr %3218, ptr %7, align 8
  %3219 = extractvalue { ptr, i32 } %3217, 1
  store i32 %3219, ptr %8, align 4
  br label %3375

3220:                                             ; preds = %2188
  %3221 = landingpad { ptr, i32 }
          cleanup
  %3222 = extractvalue { ptr, i32 } %3221, 0
  store ptr %3222, ptr %7, align 8
  %3223 = extractvalue { ptr, i32 } %3221, 1
  store i32 %3223, ptr %8, align 4
  br label %3238

3224:                                             ; preds = %2189
  %3225 = landingpad { ptr, i32 }
          cleanup
  %3226 = extractvalue { ptr, i32 } %3225, 0
  store ptr %3226, ptr %7, align 8
  %3227 = extractvalue { ptr, i32 } %3225, 1
  store i32 %3227, ptr %8, align 4
  br label %3237

3228:                                             ; preds = %2190
  %3229 = landingpad { ptr, i32 }
          cleanup
  %3230 = extractvalue { ptr, i32 } %3229, 0
  store ptr %3230, ptr %7, align 8
  %3231 = extractvalue { ptr, i32 } %3229, 1
  store i32 %3231, ptr %8, align 4
  br label %3236

3232:                                             ; preds = %2191
  %3233 = landingpad { ptr, i32 }
          cleanup
  %3234 = extractvalue { ptr, i32 } %3233, 0
  store ptr %3234, ptr %7, align 8
  %3235 = extractvalue { ptr, i32 } %3233, 1
  store i32 %3235, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %484) #14
  br label %3236

3236:                                             ; preds = %3232, %3228
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %485) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %485) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %484) #14
  br label %3237

3237:                                             ; preds = %3236, %3224
  call void @llvm.lifetime.end.p0(i64 96, ptr %483) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %482) #14
  br label %3238

3238:                                             ; preds = %3237, %3220
  call void @llvm.lifetime.end.p0(i64 32, ptr %482) #14
  %3239 = load i1, ptr %486, align 1
  br i1 %3239, label %3240, label %3241

3240:                                             ; preds = %3238
  call void @_ZdlPvm(ptr noundef %2187, i64 noundef 208) #16
  br label %3241

3241:                                             ; preds = %3240, %3238
  br label %3375

3242:                                             ; preds = %2192
  %3243 = landingpad { ptr, i32 }
          cleanup
  %3244 = extractvalue { ptr, i32 } %3243, 0
  store ptr %3244, ptr %7, align 8
  %3245 = extractvalue { ptr, i32 } %3243, 1
  store i32 %3245, ptr %8, align 4
  br label %3374

3246:                                             ; preds = %2194
  %3247 = landingpad { ptr, i32 }
          cleanup
  %3248 = extractvalue { ptr, i32 } %3247, 0
  store ptr %3248, ptr %7, align 8
  %3249 = extractvalue { ptr, i32 } %3247, 1
  store i32 %3249, ptr %8, align 4
  br label %3264

3250:                                             ; preds = %2195
  %3251 = landingpad { ptr, i32 }
          cleanup
  %3252 = extractvalue { ptr, i32 } %3251, 0
  store ptr %3252, ptr %7, align 8
  %3253 = extractvalue { ptr, i32 } %3251, 1
  store i32 %3253, ptr %8, align 4
  br label %3263

3254:                                             ; preds = %2196
  %3255 = landingpad { ptr, i32 }
          cleanup
  %3256 = extractvalue { ptr, i32 } %3255, 0
  store ptr %3256, ptr %7, align 8
  %3257 = extractvalue { ptr, i32 } %3255, 1
  store i32 %3257, ptr %8, align 4
  br label %3262

3258:                                             ; preds = %2197
  %3259 = landingpad { ptr, i32 }
          cleanup
  %3260 = extractvalue { ptr, i32 } %3259, 0
  store ptr %3260, ptr %7, align 8
  %3261 = extractvalue { ptr, i32 } %3259, 1
  store i32 %3261, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %490) #14
  br label %3262

3262:                                             ; preds = %3258, %3254
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %491) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %491) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %490) #14
  br label %3263

3263:                                             ; preds = %3262, %3250
  call void @llvm.lifetime.end.p0(i64 96, ptr %489) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %488) #14
  br label %3264

3264:                                             ; preds = %3263, %3246
  call void @llvm.lifetime.end.p0(i64 32, ptr %488) #14
  %3265 = load i1, ptr %492, align 1
  br i1 %3265, label %3266, label %3267

3266:                                             ; preds = %3264
  call void @_ZdlPvm(ptr noundef %2193, i64 noundef 208) #16
  br label %3267

3267:                                             ; preds = %3266, %3264
  br label %3374

3268:                                             ; preds = %2198
  %3269 = landingpad { ptr, i32 }
          cleanup
  %3270 = extractvalue { ptr, i32 } %3269, 0
  store ptr %3270, ptr %7, align 8
  %3271 = extractvalue { ptr, i32 } %3269, 1
  store i32 %3271, ptr %8, align 4
  br label %3373

3272:                                             ; preds = %2200
  %3273 = landingpad { ptr, i32 }
          cleanup
  %3274 = extractvalue { ptr, i32 } %3273, 0
  store ptr %3274, ptr %7, align 8
  %3275 = extractvalue { ptr, i32 } %3273, 1
  store i32 %3275, ptr %8, align 4
  br label %3290

3276:                                             ; preds = %2201
  %3277 = landingpad { ptr, i32 }
          cleanup
  %3278 = extractvalue { ptr, i32 } %3277, 0
  store ptr %3278, ptr %7, align 8
  %3279 = extractvalue { ptr, i32 } %3277, 1
  store i32 %3279, ptr %8, align 4
  br label %3289

3280:                                             ; preds = %2202
  %3281 = landingpad { ptr, i32 }
          cleanup
  %3282 = extractvalue { ptr, i32 } %3281, 0
  store ptr %3282, ptr %7, align 8
  %3283 = extractvalue { ptr, i32 } %3281, 1
  store i32 %3283, ptr %8, align 4
  br label %3288

3284:                                             ; preds = %2203
  %3285 = landingpad { ptr, i32 }
          cleanup
  %3286 = extractvalue { ptr, i32 } %3285, 0
  store ptr %3286, ptr %7, align 8
  %3287 = extractvalue { ptr, i32 } %3285, 1
  store i32 %3287, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %496) #14
  br label %3288

3288:                                             ; preds = %3284, %3280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %497) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %497) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %496) #14
  br label %3289

3289:                                             ; preds = %3288, %3276
  call void @llvm.lifetime.end.p0(i64 96, ptr %495) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %494) #14
  br label %3290

3290:                                             ; preds = %3289, %3272
  call void @llvm.lifetime.end.p0(i64 32, ptr %494) #14
  %3291 = load i1, ptr %498, align 1
  br i1 %3291, label %3292, label %3293

3292:                                             ; preds = %3290
  call void @_ZdlPvm(ptr noundef %2199, i64 noundef 208) #16
  br label %3293

3293:                                             ; preds = %3292, %3290
  br label %3373

3294:                                             ; preds = %2248, %2238, %2228, %2219, %2210, %2204
  %3295 = landingpad { ptr, i32 }
          cleanup
  %3296 = extractvalue { ptr, i32 } %3295, 0
  store ptr %3296, ptr %7, align 8
  %3297 = extractvalue { ptr, i32 } %3295, 1
  store i32 %3297, ptr %8, align 4
  br label %3372

3298:                                             ; preds = %2206
  %3299 = landingpad { ptr, i32 }
          cleanup
  %3300 = extractvalue { ptr, i32 } %3299, 0
  store ptr %3300, ptr %7, align 8
  %3301 = extractvalue { ptr, i32 } %3299, 1
  store i32 %3301, ptr %8, align 4
  br label %3316

3302:                                             ; preds = %2207
  %3303 = landingpad { ptr, i32 }
          cleanup
  %3304 = extractvalue { ptr, i32 } %3303, 0
  store ptr %3304, ptr %7, align 8
  %3305 = extractvalue { ptr, i32 } %3303, 1
  store i32 %3305, ptr %8, align 4
  br label %3315

3306:                                             ; preds = %2208
  %3307 = landingpad { ptr, i32 }
          cleanup
  %3308 = extractvalue { ptr, i32 } %3307, 0
  store ptr %3308, ptr %7, align 8
  %3309 = extractvalue { ptr, i32 } %3307, 1
  store i32 %3309, ptr %8, align 4
  br label %3314

3310:                                             ; preds = %2209
  %3311 = landingpad { ptr, i32 }
          cleanup
  %3312 = extractvalue { ptr, i32 } %3311, 0
  store ptr %3312, ptr %7, align 8
  %3313 = extractvalue { ptr, i32 } %3311, 1
  store i32 %3313, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %502) #14
  br label %3314

3314:                                             ; preds = %3310, %3306
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %503) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %503) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %502) #14
  br label %3315

3315:                                             ; preds = %3314, %3302
  call void @llvm.lifetime.end.p0(i64 96, ptr %501) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %500) #14
  br label %3316

3316:                                             ; preds = %3315, %3298
  call void @llvm.lifetime.end.p0(i64 32, ptr %500) #14
  %3317 = load i1, ptr %504, align 1
  br i1 %3317, label %3318, label %3319

3318:                                             ; preds = %3316
  call void @_ZdlPvm(ptr noundef %2205, i64 noundef 208) #16
  br label %3319

3319:                                             ; preds = %3318, %3316
  br label %3372

3320:                                             ; preds = %2214
  %3321 = landingpad { ptr, i32 }
          cleanup
  %3322 = extractvalue { ptr, i32 } %3321, 0
  store ptr %3322, ptr %7, align 8
  %3323 = extractvalue { ptr, i32 } %3321, 1
  store i32 %3323, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2213, i64 noundef 32) #16
  br label %3372

3324:                                             ; preds = %2216
  %3325 = landingpad { ptr, i32 }
          cleanup
  %3326 = extractvalue { ptr, i32 } %3325, 0
  store ptr %3326, ptr %7, align 8
  %3327 = extractvalue { ptr, i32 } %3325, 1
  store i32 %3327, ptr %8, align 4
  br label %3332

3328:                                             ; preds = %2218, %2217
  %3329 = landingpad { ptr, i32 }
          cleanup
  %3330 = extractvalue { ptr, i32 } %3329, 0
  store ptr %3330, ptr %7, align 8
  %3331 = extractvalue { ptr, i32 } %3329, 1
  store i32 %3331, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %508) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %507) #14
  br label %3332

3332:                                             ; preds = %3328, %3324
  call void @llvm.lifetime.end.p0(i64 24, ptr %506) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %505) #14
  br label %3372

3333:                                             ; preds = %2223
  %3334 = landingpad { ptr, i32 }
          cleanup
  %3335 = extractvalue { ptr, i32 } %3334, 0
  store ptr %3335, ptr %7, align 8
  %3336 = extractvalue { ptr, i32 } %3334, 1
  store i32 %3336, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2222, i64 noundef 32) #16
  br label %3372

3337:                                             ; preds = %2225
  %3338 = landingpad { ptr, i32 }
          cleanup
  %3339 = extractvalue { ptr, i32 } %3338, 0
  store ptr %3339, ptr %7, align 8
  %3340 = extractvalue { ptr, i32 } %3338, 1
  store i32 %3340, ptr %8, align 4
  br label %3345

3341:                                             ; preds = %2227, %2226
  %3342 = landingpad { ptr, i32 }
          cleanup
  %3343 = extractvalue { ptr, i32 } %3342, 0
  store ptr %3343, ptr %7, align 8
  %3344 = extractvalue { ptr, i32 } %3342, 1
  store i32 %3344, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %512) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %511) #14
  br label %3345

3345:                                             ; preds = %3341, %3337
  call void @llvm.lifetime.end.p0(i64 24, ptr %510) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %509) #14
  br label %3372

3346:                                             ; preds = %2232
  %3347 = landingpad { ptr, i32 }
          cleanup
  %3348 = extractvalue { ptr, i32 } %3347, 0
  store ptr %3348, ptr %7, align 8
  %3349 = extractvalue { ptr, i32 } %3347, 1
  store i32 %3349, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2231, i64 noundef 32) #16
  br label %3372

3350:                                             ; preds = %2235
  %3351 = landingpad { ptr, i32 }
          cleanup
  %3352 = extractvalue { ptr, i32 } %3351, 0
  store ptr %3352, ptr %7, align 8
  %3353 = extractvalue { ptr, i32 } %3351, 1
  store i32 %3353, ptr %8, align 4
  br label %3358

3354:                                             ; preds = %2237, %2236
  %3355 = landingpad { ptr, i32 }
          cleanup
  %3356 = extractvalue { ptr, i32 } %3355, 0
  store ptr %3356, ptr %7, align 8
  %3357 = extractvalue { ptr, i32 } %3355, 1
  store i32 %3357, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %516) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %515) #14
  br label %3358

3358:                                             ; preds = %3354, %3350
  call void @llvm.lifetime.end.p0(i64 24, ptr %514) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %513) #14
  br label %3372

3359:                                             ; preds = %2242
  %3360 = landingpad { ptr, i32 }
          cleanup
  %3361 = extractvalue { ptr, i32 } %3360, 0
  store ptr %3361, ptr %7, align 8
  %3362 = extractvalue { ptr, i32 } %3360, 1
  store i32 %3362, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2241, i64 noundef 32) #16
  br label %3372

3363:                                             ; preds = %2245
  %3364 = landingpad { ptr, i32 }
          cleanup
  %3365 = extractvalue { ptr, i32 } %3364, 0
  store ptr %3365, ptr %7, align 8
  %3366 = extractvalue { ptr, i32 } %3364, 1
  store i32 %3366, ptr %8, align 4
  br label %3371

3367:                                             ; preds = %2247, %2246
  %3368 = landingpad { ptr, i32 }
          cleanup
  %3369 = extractvalue { ptr, i32 } %3368, 0
  store ptr %3369, ptr %7, align 8
  %3370 = extractvalue { ptr, i32 } %3368, 1
  store i32 %3370, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %520) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %519) #14
  br label %3371

3371:                                             ; preds = %3367, %3363
  call void @llvm.lifetime.end.p0(i64 24, ptr %518) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %517) #14
  br label %3372

3372:                                             ; preds = %3371, %3359, %3358, %3346, %3345, %3333, %3332, %3320, %3319, %3294
  call void @llvm.lifetime.end.p0(i64 8, ptr %499) #14
  br label %3373

3373:                                             ; preds = %3372, %3293, %3268
  call void @llvm.lifetime.end.p0(i64 8, ptr %493) #14
  br label %3374

3374:                                             ; preds = %3373, %3267, %3242
  call void @llvm.lifetime.end.p0(i64 8, ptr %487) #14
  br label %3375

3375:                                             ; preds = %3374, %3241, %3216
  call void @llvm.lifetime.end.p0(i64 8, ptr %481) #14
  br label %3376

3376:                                             ; preds = %3375, %3215, %3190
  call void @llvm.lifetime.end.p0(i64 8, ptr %475) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %472) #14
  br label %4004

3377:                                             ; preds = %2254
  %3378 = landingpad { ptr, i32 }
          cleanup
  %3379 = extractvalue { ptr, i32 } %3378, 0
  store ptr %3379, ptr %7, align 8
  %3380 = extractvalue { ptr, i32 } %3378, 1
  store i32 %3380, ptr %8, align 4
  br label %3443

3381:                                             ; preds = %2256
  %3382 = landingpad { ptr, i32 }
          cleanup
  %3383 = extractvalue { ptr, i32 } %3382, 0
  store ptr %3383, ptr %7, align 8
  %3384 = extractvalue { ptr, i32 } %3382, 1
  store i32 %3384, ptr %8, align 4
  br label %3399

3385:                                             ; preds = %2257
  %3386 = landingpad { ptr, i32 }
          cleanup
  %3387 = extractvalue { ptr, i32 } %3386, 0
  store ptr %3387, ptr %7, align 8
  %3388 = extractvalue { ptr, i32 } %3386, 1
  store i32 %3388, ptr %8, align 4
  br label %3398

3389:                                             ; preds = %2258
  %3390 = landingpad { ptr, i32 }
          cleanup
  %3391 = extractvalue { ptr, i32 } %3390, 0
  store ptr %3391, ptr %7, align 8
  %3392 = extractvalue { ptr, i32 } %3390, 1
  store i32 %3392, ptr %8, align 4
  br label %3397

3393:                                             ; preds = %2259
  %3394 = landingpad { ptr, i32 }
          cleanup
  %3395 = extractvalue { ptr, i32 } %3394, 0
  store ptr %3395, ptr %7, align 8
  %3396 = extractvalue { ptr, i32 } %3394, 1
  store i32 %3396, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %526) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #14
  br label %3397

3397:                                             ; preds = %3393, %3389
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %525) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %525) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %524) #14
  br label %3398

3398:                                             ; preds = %3397, %3385
  call void @llvm.lifetime.end.p0(i64 96, ptr %523) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %522) #14
  br label %3399

3399:                                             ; preds = %3398, %3381
  call void @llvm.lifetime.end.p0(i64 32, ptr %522) #14
  %3400 = load i1, ptr %527, align 1
  br i1 %3400, label %3401, label %3402

3401:                                             ; preds = %3399
  call void @_ZdlPvm(ptr noundef %2255, i64 noundef 208) #16
  br label %3402

3402:                                             ; preds = %3401, %3399
  br label %3443

3403:                                             ; preds = %2274, %2266, %2260
  %3404 = landingpad { ptr, i32 }
          cleanup
  %3405 = extractvalue { ptr, i32 } %3404, 0
  store ptr %3405, ptr %7, align 8
  %3406 = extractvalue { ptr, i32 } %3404, 1
  store i32 %3406, ptr %8, align 4
  br label %3442

3407:                                             ; preds = %2262
  %3408 = landingpad { ptr, i32 }
          cleanup
  %3409 = extractvalue { ptr, i32 } %3408, 0
  store ptr %3409, ptr %7, align 8
  %3410 = extractvalue { ptr, i32 } %3408, 1
  store i32 %3410, ptr %8, align 4
  br label %3425

3411:                                             ; preds = %2263
  %3412 = landingpad { ptr, i32 }
          cleanup
  %3413 = extractvalue { ptr, i32 } %3412, 0
  store ptr %3413, ptr %7, align 8
  %3414 = extractvalue { ptr, i32 } %3412, 1
  store i32 %3414, ptr %8, align 4
  br label %3424

3415:                                             ; preds = %2264
  %3416 = landingpad { ptr, i32 }
          cleanup
  %3417 = extractvalue { ptr, i32 } %3416, 0
  store ptr %3417, ptr %7, align 8
  %3418 = extractvalue { ptr, i32 } %3416, 1
  store i32 %3418, ptr %8, align 4
  br label %3423

3419:                                             ; preds = %2265
  %3420 = landingpad { ptr, i32 }
          cleanup
  %3421 = extractvalue { ptr, i32 } %3420, 0
  store ptr %3421, ptr %7, align 8
  %3422 = extractvalue { ptr, i32 } %3420, 1
  store i32 %3422, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %533) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %531) #14
  br label %3423

3423:                                             ; preds = %3419, %3415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %532) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %532) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %531) #14
  br label %3424

3424:                                             ; preds = %3423, %3411
  call void @llvm.lifetime.end.p0(i64 96, ptr %530) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %529) #14
  br label %3425

3425:                                             ; preds = %3424, %3407
  call void @llvm.lifetime.end.p0(i64 32, ptr %529) #14
  %3426 = load i1, ptr %534, align 1
  br i1 %3426, label %3427, label %3428

3427:                                             ; preds = %3425
  call void @_ZdlPvm(ptr noundef %2261, i64 noundef 208) #16
  br label %3428

3428:                                             ; preds = %3427, %3425
  br label %3442

3429:                                             ; preds = %2270
  %3430 = landingpad { ptr, i32 }
          cleanup
  %3431 = extractvalue { ptr, i32 } %3430, 0
  store ptr %3431, ptr %7, align 8
  %3432 = extractvalue { ptr, i32 } %3430, 1
  store i32 %3432, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2269, i64 noundef 32) #16
  br label %3442

3433:                                             ; preds = %2271
  %3434 = landingpad { ptr, i32 }
          cleanup
  %3435 = extractvalue { ptr, i32 } %3434, 0
  store ptr %3435, ptr %7, align 8
  %3436 = extractvalue { ptr, i32 } %3434, 1
  store i32 %3436, ptr %8, align 4
  br label %3441

3437:                                             ; preds = %2273, %2272
  %3438 = landingpad { ptr, i32 }
          cleanup
  %3439 = extractvalue { ptr, i32 } %3438, 0
  store ptr %3439, ptr %7, align 8
  %3440 = extractvalue { ptr, i32 } %3438, 1
  store i32 %3440, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %538) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %537) #14
  br label %3441

3441:                                             ; preds = %3437, %3433
  call void @llvm.lifetime.end.p0(i64 24, ptr %536) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %535) #14
  br label %3442

3442:                                             ; preds = %3441, %3429, %3428, %3403
  call void @llvm.lifetime.end.p0(i64 8, ptr %528) #14
  br label %3443

3443:                                             ; preds = %3442, %3402, %3377
  call void @llvm.lifetime.end.p0(i64 8, ptr %521) #14
  br label %4004

3444:                                             ; preds = %2280
  %3445 = landingpad { ptr, i32 }
          cleanup
  %3446 = extractvalue { ptr, i32 } %3445, 0
  store ptr %3446, ptr %7, align 8
  %3447 = extractvalue { ptr, i32 } %3445, 1
  store i32 %3447, ptr %8, align 4
  br label %3510

3448:                                             ; preds = %2282
  %3449 = landingpad { ptr, i32 }
          cleanup
  %3450 = extractvalue { ptr, i32 } %3449, 0
  store ptr %3450, ptr %7, align 8
  %3451 = extractvalue { ptr, i32 } %3449, 1
  store i32 %3451, ptr %8, align 4
  br label %3466

3452:                                             ; preds = %2283
  %3453 = landingpad { ptr, i32 }
          cleanup
  %3454 = extractvalue { ptr, i32 } %3453, 0
  store ptr %3454, ptr %7, align 8
  %3455 = extractvalue { ptr, i32 } %3453, 1
  store i32 %3455, ptr %8, align 4
  br label %3465

3456:                                             ; preds = %2284
  %3457 = landingpad { ptr, i32 }
          cleanup
  %3458 = extractvalue { ptr, i32 } %3457, 0
  store ptr %3458, ptr %7, align 8
  %3459 = extractvalue { ptr, i32 } %3457, 1
  store i32 %3459, ptr %8, align 4
  br label %3464

3460:                                             ; preds = %2285
  %3461 = landingpad { ptr, i32 }
          cleanup
  %3462 = extractvalue { ptr, i32 } %3461, 0
  store ptr %3462, ptr %7, align 8
  %3463 = extractvalue { ptr, i32 } %3461, 1
  store i32 %3463, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %544) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %542) #14
  br label %3464

3464:                                             ; preds = %3460, %3456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %543) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %543) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %542) #14
  br label %3465

3465:                                             ; preds = %3464, %3452
  call void @llvm.lifetime.end.p0(i64 96, ptr %541) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %540) #14
  br label %3466

3466:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 32, ptr %540) #14
  %3467 = load i1, ptr %545, align 1
  br i1 %3467, label %3468, label %3469

3468:                                             ; preds = %3466
  call void @_ZdlPvm(ptr noundef %2281, i64 noundef 208) #16
  br label %3469

3469:                                             ; preds = %3468, %3466
  br label %3510

3470:                                             ; preds = %2300, %2292, %2286
  %3471 = landingpad { ptr, i32 }
          cleanup
  %3472 = extractvalue { ptr, i32 } %3471, 0
  store ptr %3472, ptr %7, align 8
  %3473 = extractvalue { ptr, i32 } %3471, 1
  store i32 %3473, ptr %8, align 4
  br label %3509

3474:                                             ; preds = %2288
  %3475 = landingpad { ptr, i32 }
          cleanup
  %3476 = extractvalue { ptr, i32 } %3475, 0
  store ptr %3476, ptr %7, align 8
  %3477 = extractvalue { ptr, i32 } %3475, 1
  store i32 %3477, ptr %8, align 4
  br label %3492

3478:                                             ; preds = %2289
  %3479 = landingpad { ptr, i32 }
          cleanup
  %3480 = extractvalue { ptr, i32 } %3479, 0
  store ptr %3480, ptr %7, align 8
  %3481 = extractvalue { ptr, i32 } %3479, 1
  store i32 %3481, ptr %8, align 4
  br label %3491

3482:                                             ; preds = %2290
  %3483 = landingpad { ptr, i32 }
          cleanup
  %3484 = extractvalue { ptr, i32 } %3483, 0
  store ptr %3484, ptr %7, align 8
  %3485 = extractvalue { ptr, i32 } %3483, 1
  store i32 %3485, ptr %8, align 4
  br label %3490

3486:                                             ; preds = %2291
  %3487 = landingpad { ptr, i32 }
          cleanup
  %3488 = extractvalue { ptr, i32 } %3487, 0
  store ptr %3488, ptr %7, align 8
  %3489 = extractvalue { ptr, i32 } %3487, 1
  store i32 %3489, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %551) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %549) #14
  br label %3490

3490:                                             ; preds = %3486, %3482
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %550) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %550) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %549) #14
  br label %3491

3491:                                             ; preds = %3490, %3478
  call void @llvm.lifetime.end.p0(i64 96, ptr %548) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #14
  br label %3492

3492:                                             ; preds = %3491, %3474
  call void @llvm.lifetime.end.p0(i64 32, ptr %547) #14
  %3493 = load i1, ptr %552, align 1
  br i1 %3493, label %3494, label %3495

3494:                                             ; preds = %3492
  call void @_ZdlPvm(ptr noundef %2287, i64 noundef 208) #16
  br label %3495

3495:                                             ; preds = %3494, %3492
  br label %3509

3496:                                             ; preds = %2296
  %3497 = landingpad { ptr, i32 }
          cleanup
  %3498 = extractvalue { ptr, i32 } %3497, 0
  store ptr %3498, ptr %7, align 8
  %3499 = extractvalue { ptr, i32 } %3497, 1
  store i32 %3499, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2295, i64 noundef 48) #16
  br label %3509

3500:                                             ; preds = %2297
  %3501 = landingpad { ptr, i32 }
          cleanup
  %3502 = extractvalue { ptr, i32 } %3501, 0
  store ptr %3502, ptr %7, align 8
  %3503 = extractvalue { ptr, i32 } %3501, 1
  store i32 %3503, ptr %8, align 4
  br label %3508

3504:                                             ; preds = %2299, %2298
  %3505 = landingpad { ptr, i32 }
          cleanup
  %3506 = extractvalue { ptr, i32 } %3505, 0
  store ptr %3506, ptr %7, align 8
  %3507 = extractvalue { ptr, i32 } %3505, 1
  store i32 %3507, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %556) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %555) #14
  br label %3508

3508:                                             ; preds = %3504, %3500
  call void @llvm.lifetime.end.p0(i64 24, ptr %554) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %553) #14
  br label %3509

3509:                                             ; preds = %3508, %3496, %3495, %3470
  call void @llvm.lifetime.end.p0(i64 8, ptr %546) #14
  br label %3510

3510:                                             ; preds = %3509, %3469, %3444
  call void @llvm.lifetime.end.p0(i64 8, ptr %539) #14
  br label %4004

3511:                                             ; preds = %2306
  %3512 = landingpad { ptr, i32 }
          cleanup
  %3513 = extractvalue { ptr, i32 } %3512, 0
  store ptr %3513, ptr %7, align 8
  %3514 = extractvalue { ptr, i32 } %3512, 1
  store i32 %3514, ptr %8, align 4
  br label %3701

3515:                                             ; preds = %2308
  %3516 = landingpad { ptr, i32 }
          cleanup
  %3517 = extractvalue { ptr, i32 } %3516, 0
  store ptr %3517, ptr %7, align 8
  %3518 = extractvalue { ptr, i32 } %3516, 1
  store i32 %3518, ptr %8, align 4
  br label %3533

3519:                                             ; preds = %2309
  %3520 = landingpad { ptr, i32 }
          cleanup
  %3521 = extractvalue { ptr, i32 } %3520, 0
  store ptr %3521, ptr %7, align 8
  %3522 = extractvalue { ptr, i32 } %3520, 1
  store i32 %3522, ptr %8, align 4
  br label %3532

3523:                                             ; preds = %2310
  %3524 = landingpad { ptr, i32 }
          cleanup
  %3525 = extractvalue { ptr, i32 } %3524, 0
  store ptr %3525, ptr %7, align 8
  %3526 = extractvalue { ptr, i32 } %3524, 1
  store i32 %3526, ptr %8, align 4
  br label %3531

3527:                                             ; preds = %2311
  %3528 = landingpad { ptr, i32 }
          cleanup
  %3529 = extractvalue { ptr, i32 } %3528, 0
  store ptr %3529, ptr %7, align 8
  %3530 = extractvalue { ptr, i32 } %3528, 1
  store i32 %3530, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %562) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %560) #14
  br label %3531

3531:                                             ; preds = %3527, %3523
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %561) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %561) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %560) #14
  br label %3532

3532:                                             ; preds = %3531, %3519
  call void @llvm.lifetime.end.p0(i64 96, ptr %559) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %558) #14
  br label %3533

3533:                                             ; preds = %3532, %3515
  call void @llvm.lifetime.end.p0(i64 32, ptr %558) #14
  %3534 = load i1, ptr %563, align 1
  br i1 %3534, label %3535, label %3536

3535:                                             ; preds = %3533
  call void @_ZdlPvm(ptr noundef %2307, i64 noundef 208) #16
  br label %3536

3536:                                             ; preds = %3535, %3533
  br label %3701

3537:                                             ; preds = %2312
  %3538 = landingpad { ptr, i32 }
          cleanup
  %3539 = extractvalue { ptr, i32 } %3538, 0
  store ptr %3539, ptr %7, align 8
  %3540 = extractvalue { ptr, i32 } %3538, 1
  store i32 %3540, ptr %8, align 4
  br label %3700

3541:                                             ; preds = %2314
  %3542 = landingpad { ptr, i32 }
          cleanup
  %3543 = extractvalue { ptr, i32 } %3542, 0
  store ptr %3543, ptr %7, align 8
  %3544 = extractvalue { ptr, i32 } %3542, 1
  store i32 %3544, ptr %8, align 4
  br label %3559

3545:                                             ; preds = %2315
  %3546 = landingpad { ptr, i32 }
          cleanup
  %3547 = extractvalue { ptr, i32 } %3546, 0
  store ptr %3547, ptr %7, align 8
  %3548 = extractvalue { ptr, i32 } %3546, 1
  store i32 %3548, ptr %8, align 4
  br label %3558

3549:                                             ; preds = %2316
  %3550 = landingpad { ptr, i32 }
          cleanup
  %3551 = extractvalue { ptr, i32 } %3550, 0
  store ptr %3551, ptr %7, align 8
  %3552 = extractvalue { ptr, i32 } %3550, 1
  store i32 %3552, ptr %8, align 4
  br label %3557

3553:                                             ; preds = %2317
  %3554 = landingpad { ptr, i32 }
          cleanup
  %3555 = extractvalue { ptr, i32 } %3554, 0
  store ptr %3555, ptr %7, align 8
  %3556 = extractvalue { ptr, i32 } %3554, 1
  store i32 %3556, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %569) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %567) #14
  br label %3557

3557:                                             ; preds = %3553, %3549
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %568) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %568) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %567) #14
  br label %3558

3558:                                             ; preds = %3557, %3545
  call void @llvm.lifetime.end.p0(i64 96, ptr %566) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %565) #14
  br label %3559

3559:                                             ; preds = %3558, %3541
  call void @llvm.lifetime.end.p0(i64 32, ptr %565) #14
  %3560 = load i1, ptr %570, align 1
  br i1 %3560, label %3561, label %3562

3561:                                             ; preds = %3559
  call void @_ZdlPvm(ptr noundef %2313, i64 noundef 208) #16
  br label %3562

3562:                                             ; preds = %3561, %3559
  br label %3700

3563:                                             ; preds = %2318
  %3564 = landingpad { ptr, i32 }
          cleanup
  %3565 = extractvalue { ptr, i32 } %3564, 0
  store ptr %3565, ptr %7, align 8
  %3566 = extractvalue { ptr, i32 } %3564, 1
  store i32 %3566, ptr %8, align 4
  br label %3699

3567:                                             ; preds = %2320
  %3568 = landingpad { ptr, i32 }
          cleanup
  %3569 = extractvalue { ptr, i32 } %3568, 0
  store ptr %3569, ptr %7, align 8
  %3570 = extractvalue { ptr, i32 } %3568, 1
  store i32 %3570, ptr %8, align 4
  br label %3585

3571:                                             ; preds = %2321
  %3572 = landingpad { ptr, i32 }
          cleanup
  %3573 = extractvalue { ptr, i32 } %3572, 0
  store ptr %3573, ptr %7, align 8
  %3574 = extractvalue { ptr, i32 } %3572, 1
  store i32 %3574, ptr %8, align 4
  br label %3584

3575:                                             ; preds = %2322
  %3576 = landingpad { ptr, i32 }
          cleanup
  %3577 = extractvalue { ptr, i32 } %3576, 0
  store ptr %3577, ptr %7, align 8
  %3578 = extractvalue { ptr, i32 } %3576, 1
  store i32 %3578, ptr %8, align 4
  br label %3583

3579:                                             ; preds = %2323
  %3580 = landingpad { ptr, i32 }
          cleanup
  %3581 = extractvalue { ptr, i32 } %3580, 0
  store ptr %3581, ptr %7, align 8
  %3582 = extractvalue { ptr, i32 } %3580, 1
  store i32 %3582, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %576) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #14
  br label %3583

3583:                                             ; preds = %3579, %3575
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %575) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %575) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %574) #14
  br label %3584

3584:                                             ; preds = %3583, %3571
  call void @llvm.lifetime.end.p0(i64 96, ptr %573) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %572) #14
  br label %3585

3585:                                             ; preds = %3584, %3567
  call void @llvm.lifetime.end.p0(i64 32, ptr %572) #14
  %3586 = load i1, ptr %577, align 1
  br i1 %3586, label %3587, label %3588

3587:                                             ; preds = %3585
  call void @_ZdlPvm(ptr noundef %2319, i64 noundef 208) #16
  br label %3588

3588:                                             ; preds = %3587, %3585
  br label %3699

3589:                                             ; preds = %2324
  %3590 = landingpad { ptr, i32 }
          cleanup
  %3591 = extractvalue { ptr, i32 } %3590, 0
  store ptr %3591, ptr %7, align 8
  %3592 = extractvalue { ptr, i32 } %3590, 1
  store i32 %3592, ptr %8, align 4
  br label %3698

3593:                                             ; preds = %2326
  %3594 = landingpad { ptr, i32 }
          cleanup
  %3595 = extractvalue { ptr, i32 } %3594, 0
  store ptr %3595, ptr %7, align 8
  %3596 = extractvalue { ptr, i32 } %3594, 1
  store i32 %3596, ptr %8, align 4
  br label %3611

3597:                                             ; preds = %2327
  %3598 = landingpad { ptr, i32 }
          cleanup
  %3599 = extractvalue { ptr, i32 } %3598, 0
  store ptr %3599, ptr %7, align 8
  %3600 = extractvalue { ptr, i32 } %3598, 1
  store i32 %3600, ptr %8, align 4
  br label %3610

3601:                                             ; preds = %2328
  %3602 = landingpad { ptr, i32 }
          cleanup
  %3603 = extractvalue { ptr, i32 } %3602, 0
  store ptr %3603, ptr %7, align 8
  %3604 = extractvalue { ptr, i32 } %3602, 1
  store i32 %3604, ptr %8, align 4
  br label %3609

3605:                                             ; preds = %2329
  %3606 = landingpad { ptr, i32 }
          cleanup
  %3607 = extractvalue { ptr, i32 } %3606, 0
  store ptr %3607, ptr %7, align 8
  %3608 = extractvalue { ptr, i32 } %3606, 1
  store i32 %3608, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %583) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %581) #14
  br label %3609

3609:                                             ; preds = %3605, %3601
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %582) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %582) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %581) #14
  br label %3610

3610:                                             ; preds = %3609, %3597
  call void @llvm.lifetime.end.p0(i64 96, ptr %580) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %579) #14
  br label %3611

3611:                                             ; preds = %3610, %3593
  call void @llvm.lifetime.end.p0(i64 32, ptr %579) #14
  %3612 = load i1, ptr %584, align 1
  br i1 %3612, label %3613, label %3614

3613:                                             ; preds = %3611
  call void @_ZdlPvm(ptr noundef %2325, i64 noundef 208) #16
  br label %3614

3614:                                             ; preds = %3613, %3611
  br label %3698

3615:                                             ; preds = %2368, %2360, %2352, %2344, %2336, %2330
  %3616 = landingpad { ptr, i32 }
          cleanup
  %3617 = extractvalue { ptr, i32 } %3616, 0
  store ptr %3617, ptr %7, align 8
  %3618 = extractvalue { ptr, i32 } %3616, 1
  store i32 %3618, ptr %8, align 4
  br label %3697

3619:                                             ; preds = %2332
  %3620 = landingpad { ptr, i32 }
          cleanup
  %3621 = extractvalue { ptr, i32 } %3620, 0
  store ptr %3621, ptr %7, align 8
  %3622 = extractvalue { ptr, i32 } %3620, 1
  store i32 %3622, ptr %8, align 4
  br label %3637

3623:                                             ; preds = %2333
  %3624 = landingpad { ptr, i32 }
          cleanup
  %3625 = extractvalue { ptr, i32 } %3624, 0
  store ptr %3625, ptr %7, align 8
  %3626 = extractvalue { ptr, i32 } %3624, 1
  store i32 %3626, ptr %8, align 4
  br label %3636

3627:                                             ; preds = %2334
  %3628 = landingpad { ptr, i32 }
          cleanup
  %3629 = extractvalue { ptr, i32 } %3628, 0
  store ptr %3629, ptr %7, align 8
  %3630 = extractvalue { ptr, i32 } %3628, 1
  store i32 %3630, ptr %8, align 4
  br label %3635

3631:                                             ; preds = %2335
  %3632 = landingpad { ptr, i32 }
          cleanup
  %3633 = extractvalue { ptr, i32 } %3632, 0
  store ptr %3633, ptr %7, align 8
  %3634 = extractvalue { ptr, i32 } %3632, 1
  store i32 %3634, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %590) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %588) #14
  br label %3635

3635:                                             ; preds = %3631, %3627
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %589) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %589) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %588) #14
  br label %3636

3636:                                             ; preds = %3635, %3623
  call void @llvm.lifetime.end.p0(i64 96, ptr %587) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #14
  br label %3637

3637:                                             ; preds = %3636, %3619
  call void @llvm.lifetime.end.p0(i64 32, ptr %586) #14
  %3638 = load i1, ptr %591, align 1
  br i1 %3638, label %3639, label %3640

3639:                                             ; preds = %3637
  call void @_ZdlPvm(ptr noundef %2331, i64 noundef 208) #16
  br label %3640

3640:                                             ; preds = %3639, %3637
  br label %3697

3641:                                             ; preds = %2340
  %3642 = landingpad { ptr, i32 }
          cleanup
  %3643 = extractvalue { ptr, i32 } %3642, 0
  store ptr %3643, ptr %7, align 8
  %3644 = extractvalue { ptr, i32 } %3642, 1
  store i32 %3644, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2339, i64 noundef 48) #16
  br label %3697

3645:                                             ; preds = %2341
  %3646 = landingpad { ptr, i32 }
          cleanup
  %3647 = extractvalue { ptr, i32 } %3646, 0
  store ptr %3647, ptr %7, align 8
  %3648 = extractvalue { ptr, i32 } %3646, 1
  store i32 %3648, ptr %8, align 4
  br label %3653

3649:                                             ; preds = %2343, %2342
  %3650 = landingpad { ptr, i32 }
          cleanup
  %3651 = extractvalue { ptr, i32 } %3650, 0
  store ptr %3651, ptr %7, align 8
  %3652 = extractvalue { ptr, i32 } %3650, 1
  store i32 %3652, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %599) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %598) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %597) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %596) #14
  br label %3653

3653:                                             ; preds = %3649, %3645
  call void @llvm.lifetime.end.p0(i64 8, ptr %595) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %594) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %593) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %592) #14
  br label %3697

3654:                                             ; preds = %2348
  %3655 = landingpad { ptr, i32 }
          cleanup
  %3656 = extractvalue { ptr, i32 } %3655, 0
  store ptr %3656, ptr %7, align 8
  %3657 = extractvalue { ptr, i32 } %3655, 1
  store i32 %3657, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2347, i64 noundef 48) #16
  br label %3697

3658:                                             ; preds = %2349
  %3659 = landingpad { ptr, i32 }
          cleanup
  %3660 = extractvalue { ptr, i32 } %3659, 0
  store ptr %3660, ptr %7, align 8
  %3661 = extractvalue { ptr, i32 } %3659, 1
  store i32 %3661, ptr %8, align 4
  br label %3666

3662:                                             ; preds = %2351, %2350
  %3663 = landingpad { ptr, i32 }
          cleanup
  %3664 = extractvalue { ptr, i32 } %3663, 0
  store ptr %3664, ptr %7, align 8
  %3665 = extractvalue { ptr, i32 } %3663, 1
  store i32 %3665, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %607) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %606) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %605) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %604) #14
  br label %3666

3666:                                             ; preds = %3662, %3658
  call void @llvm.lifetime.end.p0(i64 8, ptr %603) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %602) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %601) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %600) #14
  br label %3697

3667:                                             ; preds = %2356
  %3668 = landingpad { ptr, i32 }
          cleanup
  %3669 = extractvalue { ptr, i32 } %3668, 0
  store ptr %3669, ptr %7, align 8
  %3670 = extractvalue { ptr, i32 } %3668, 1
  store i32 %3670, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2355, i64 noundef 32) #16
  br label %3697

3671:                                             ; preds = %2357
  %3672 = landingpad { ptr, i32 }
          cleanup
  %3673 = extractvalue { ptr, i32 } %3672, 0
  store ptr %3673, ptr %7, align 8
  %3674 = extractvalue { ptr, i32 } %3672, 1
  store i32 %3674, ptr %8, align 4
  br label %3679

3675:                                             ; preds = %2359, %2358
  %3676 = landingpad { ptr, i32 }
          cleanup
  %3677 = extractvalue { ptr, i32 } %3676, 0
  store ptr %3677, ptr %7, align 8
  %3678 = extractvalue { ptr, i32 } %3676, 1
  store i32 %3678, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %615) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %614) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %613) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %612) #14
  br label %3679

3679:                                             ; preds = %3675, %3671
  call void @llvm.lifetime.end.p0(i64 8, ptr %611) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %610) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %609) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %608) #14
  br label %3697

3680:                                             ; preds = %2364
  %3681 = landingpad { ptr, i32 }
          cleanup
  %3682 = extractvalue { ptr, i32 } %3681, 0
  store ptr %3682, ptr %7, align 8
  %3683 = extractvalue { ptr, i32 } %3681, 1
  store i32 %3683, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2363, i64 noundef 48) #16
  br label %3697

3684:                                             ; preds = %2365
  %3685 = landingpad { ptr, i32 }
          cleanup
  %3686 = extractvalue { ptr, i32 } %3685, 0
  store ptr %3686, ptr %7, align 8
  %3687 = extractvalue { ptr, i32 } %3685, 1
  store i32 %3687, ptr %8, align 4
  br label %3692

3688:                                             ; preds = %2367, %2366
  %3689 = landingpad { ptr, i32 }
          cleanup
  %3690 = extractvalue { ptr, i32 } %3689, 0
  store ptr %3690, ptr %7, align 8
  %3691 = extractvalue { ptr, i32 } %3689, 1
  store i32 %3691, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %623) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %622) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %621) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %620) #14
  br label %3692

3692:                                             ; preds = %3688, %3684
  call void @llvm.lifetime.end.p0(i64 8, ptr %619) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %618) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr %617) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %616) #14
  br label %3697

3693:                                             ; preds = %2377, %2374
  %3694 = landingpad { ptr, i32 }
          cleanup
  %3695 = extractvalue { ptr, i32 } %3694, 0
  store ptr %3695, ptr %7, align 8
  %3696 = extractvalue { ptr, i32 } %3694, 1
  store i32 %3696, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %624) #14
  br label %3697

3697:                                             ; preds = %3693, %3692, %3680, %3679, %3667, %3666, %3654, %3653, %3641, %3640, %3615
  call void @llvm.lifetime.end.p0(i64 8, ptr %585) #14
  br label %3698

3698:                                             ; preds = %3697, %3614, %3589
  call void @llvm.lifetime.end.p0(i64 8, ptr %578) #14
  br label %3699

3699:                                             ; preds = %3698, %3588, %3563
  call void @llvm.lifetime.end.p0(i64 8, ptr %571) #14
  br label %3700

3700:                                             ; preds = %3699, %3562, %3537
  call void @llvm.lifetime.end.p0(i64 8, ptr %564) #14
  br label %3701

3701:                                             ; preds = %3700, %3536, %3511
  call void @llvm.lifetime.end.p0(i64 8, ptr %557) #14
  br label %4004

3702:                                             ; preds = %2382
  %3703 = landingpad { ptr, i32 }
          cleanup
  %3704 = extractvalue { ptr, i32 } %3703, 0
  store ptr %3704, ptr %7, align 8
  %3705 = extractvalue { ptr, i32 } %3703, 1
  store i32 %3705, ptr %8, align 4
  br label %3795

3706:                                             ; preds = %2384
  %3707 = landingpad { ptr, i32 }
          cleanup
  %3708 = extractvalue { ptr, i32 } %3707, 0
  store ptr %3708, ptr %7, align 8
  %3709 = extractvalue { ptr, i32 } %3707, 1
  store i32 %3709, ptr %8, align 4
  br label %3724

3710:                                             ; preds = %2385
  %3711 = landingpad { ptr, i32 }
          cleanup
  %3712 = extractvalue { ptr, i32 } %3711, 0
  store ptr %3712, ptr %7, align 8
  %3713 = extractvalue { ptr, i32 } %3711, 1
  store i32 %3713, ptr %8, align 4
  br label %3723

3714:                                             ; preds = %2386
  %3715 = landingpad { ptr, i32 }
          cleanup
  %3716 = extractvalue { ptr, i32 } %3715, 0
  store ptr %3716, ptr %7, align 8
  %3717 = extractvalue { ptr, i32 } %3715, 1
  store i32 %3717, ptr %8, align 4
  br label %3722

3718:                                             ; preds = %2387
  %3719 = landingpad { ptr, i32 }
          cleanup
  %3720 = extractvalue { ptr, i32 } %3719, 0
  store ptr %3720, ptr %7, align 8
  %3721 = extractvalue { ptr, i32 } %3719, 1
  store i32 %3721, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %630) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %628) #14
  br label %3722

3722:                                             ; preds = %3718, %3714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %629) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %629) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %628) #14
  br label %3723

3723:                                             ; preds = %3722, %3710
  call void @llvm.lifetime.end.p0(i64 96, ptr %627) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %626) #14
  br label %3724

3724:                                             ; preds = %3723, %3706
  call void @llvm.lifetime.end.p0(i64 32, ptr %626) #14
  %3725 = load i1, ptr %631, align 1
  br i1 %3725, label %3726, label %3727

3726:                                             ; preds = %3724
  call void @_ZdlPvm(ptr noundef %2383, i64 noundef 208) #16
  br label %3727

3727:                                             ; preds = %3726, %3724
  br label %3795

3728:                                             ; preds = %2388
  %3729 = landingpad { ptr, i32 }
          cleanup
  %3730 = extractvalue { ptr, i32 } %3729, 0
  store ptr %3730, ptr %7, align 8
  %3731 = extractvalue { ptr, i32 } %3729, 1
  store i32 %3731, ptr %8, align 4
  br label %3794

3732:                                             ; preds = %2390
  %3733 = landingpad { ptr, i32 }
          cleanup
  %3734 = extractvalue { ptr, i32 } %3733, 0
  store ptr %3734, ptr %7, align 8
  %3735 = extractvalue { ptr, i32 } %3733, 1
  store i32 %3735, ptr %8, align 4
  br label %3750

3736:                                             ; preds = %2392, %2391
  %3737 = landingpad { ptr, i32 }
          cleanup
  %3738 = extractvalue { ptr, i32 } %3737, 0
  store ptr %3738, ptr %7, align 8
  %3739 = extractvalue { ptr, i32 } %3737, 1
  store i32 %3739, ptr %8, align 4
  br label %3749

3740:                                             ; preds = %2393
  %3741 = landingpad { ptr, i32 }
          cleanup
  %3742 = extractvalue { ptr, i32 } %3741, 0
  store ptr %3742, ptr %7, align 8
  %3743 = extractvalue { ptr, i32 } %3741, 1
  store i32 %3743, ptr %8, align 4
  br label %3748

3744:                                             ; preds = %2394
  %3745 = landingpad { ptr, i32 }
          cleanup
  %3746 = extractvalue { ptr, i32 } %3745, 0
  store ptr %3746, ptr %7, align 8
  %3747 = extractvalue { ptr, i32 } %3745, 1
  store i32 %3747, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %638) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %636) #14
  br label %3748

3748:                                             ; preds = %3744, %3740
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %637) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %637) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %636) #14
  br label %3749

3749:                                             ; preds = %3748, %3736
  call void @llvm.lifetime.end.p0(i64 72, ptr %635) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %634) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %633) #14
  br label %3750

3750:                                             ; preds = %3749, %3732
  call void @llvm.lifetime.end.p0(i64 32, ptr %633) #14
  %3751 = load i1, ptr %639, align 1
  br i1 %3751, label %3752, label %3753

3752:                                             ; preds = %3750
  call void @_ZdlPvm(ptr noundef %2389, i64 noundef 208) #16
  br label %3753

3753:                                             ; preds = %3752, %3750
  br label %3794

3754:                                             ; preds = %2414, %2408, %2402, %2395
  %3755 = landingpad { ptr, i32 }
          cleanup
  %3756 = extractvalue { ptr, i32 } %3755, 0
  store ptr %3756, ptr %7, align 8
  %3757 = extractvalue { ptr, i32 } %3755, 1
  store i32 %3757, ptr %8, align 4
  br label %3793

3758:                                             ; preds = %2397
  %3759 = landingpad { ptr, i32 }
          cleanup
  %3760 = extractvalue { ptr, i32 } %3759, 0
  store ptr %3760, ptr %7, align 8
  %3761 = extractvalue { ptr, i32 } %3759, 1
  store i32 %3761, ptr %8, align 4
  br label %3776

3762:                                             ; preds = %2399, %2398
  %3763 = landingpad { ptr, i32 }
          cleanup
  %3764 = extractvalue { ptr, i32 } %3763, 0
  store ptr %3764, ptr %7, align 8
  %3765 = extractvalue { ptr, i32 } %3763, 1
  store i32 %3765, ptr %8, align 4
  br label %3775

3766:                                             ; preds = %2400
  %3767 = landingpad { ptr, i32 }
          cleanup
  %3768 = extractvalue { ptr, i32 } %3767, 0
  store ptr %3768, ptr %7, align 8
  %3769 = extractvalue { ptr, i32 } %3767, 1
  store i32 %3769, ptr %8, align 4
  br label %3774

3770:                                             ; preds = %2401
  %3771 = landingpad { ptr, i32 }
          cleanup
  %3772 = extractvalue { ptr, i32 } %3771, 0
  store ptr %3772, ptr %7, align 8
  %3773 = extractvalue { ptr, i32 } %3771, 1
  store i32 %3773, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %646) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %644) #14
  br label %3774

3774:                                             ; preds = %3770, %3766
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %645) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %645) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %644) #14
  br label %3775

3775:                                             ; preds = %3774, %3762
  call void @llvm.lifetime.end.p0(i64 72, ptr %643) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %642) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %641) #14
  br label %3776

3776:                                             ; preds = %3775, %3758
  call void @llvm.lifetime.end.p0(i64 32, ptr %641) #14
  %3777 = load i1, ptr %647, align 1
  br i1 %3777, label %3778, label %3779

3778:                                             ; preds = %3776
  call void @_ZdlPvm(ptr noundef %2396, i64 noundef 208) #16
  br label %3779

3779:                                             ; preds = %3778, %3776
  br label %3793

3780:                                             ; preds = %2432, %2431, %2426, %2425, %2420
  %3781 = landingpad { ptr, i32 }
          cleanup
  %3782 = extractvalue { ptr, i32 } %3781, 0
  store ptr %3782, ptr %7, align 8
  %3783 = extractvalue { ptr, i32 } %3781, 1
  store i32 %3783, ptr %8, align 4
  br label %3792

3784:                                             ; preds = %2424
  %3785 = landingpad { ptr, i32 }
          cleanup
  %3786 = extractvalue { ptr, i32 } %3785, 0
  store ptr %3786, ptr %7, align 8
  %3787 = extractvalue { ptr, i32 } %3785, 1
  store i32 %3787, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2423, i64 noundef 104) #16
  br label %3792

3788:                                             ; preds = %2430
  %3789 = landingpad { ptr, i32 }
          cleanup
  %3790 = extractvalue { ptr, i32 } %3789, 0
  store ptr %3790, ptr %7, align 8
  %3791 = extractvalue { ptr, i32 } %3789, 1
  store i32 %3791, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2429, i64 noundef 104) #16
  br label %3792

3792:                                             ; preds = %3788, %3784, %3780
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %648) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %648) #14
  br label %3793

3793:                                             ; preds = %3792, %3779, %3754
  call void @llvm.lifetime.end.p0(i64 8, ptr %640) #14
  br label %3794

3794:                                             ; preds = %3793, %3753, %3728
  call void @llvm.lifetime.end.p0(i64 8, ptr %632) #14
  br label %3795

3795:                                             ; preds = %3794, %3727, %3702
  call void @llvm.lifetime.end.p0(i64 8, ptr %625) #14
  br label %4004

3796:                                             ; preds = %2435
  %3797 = landingpad { ptr, i32 }
          cleanup
  %3798 = extractvalue { ptr, i32 } %3797, 0
  store ptr %3798, ptr %7, align 8
  %3799 = extractvalue { ptr, i32 } %3797, 1
  store i32 %3799, ptr %8, align 4
  br label %3893

3800:                                             ; preds = %2437
  %3801 = landingpad { ptr, i32 }
          cleanup
  %3802 = extractvalue { ptr, i32 } %3801, 0
  store ptr %3802, ptr %7, align 8
  %3803 = extractvalue { ptr, i32 } %3801, 1
  store i32 %3803, ptr %8, align 4
  br label %3818

3804:                                             ; preds = %2438
  %3805 = landingpad { ptr, i32 }
          cleanup
  %3806 = extractvalue { ptr, i32 } %3805, 0
  store ptr %3806, ptr %7, align 8
  %3807 = extractvalue { ptr, i32 } %3805, 1
  store i32 %3807, ptr %8, align 4
  br label %3817

3808:                                             ; preds = %2439
  %3809 = landingpad { ptr, i32 }
          cleanup
  %3810 = extractvalue { ptr, i32 } %3809, 0
  store ptr %3810, ptr %7, align 8
  %3811 = extractvalue { ptr, i32 } %3809, 1
  store i32 %3811, ptr %8, align 4
  br label %3816

3812:                                             ; preds = %2440
  %3813 = landingpad { ptr, i32 }
          cleanup
  %3814 = extractvalue { ptr, i32 } %3813, 0
  store ptr %3814, ptr %7, align 8
  %3815 = extractvalue { ptr, i32 } %3813, 1
  store i32 %3815, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %662) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %660) #14
  br label %3816

3816:                                             ; preds = %3812, %3808
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %661) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %661) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %660) #14
  br label %3817

3817:                                             ; preds = %3816, %3804
  call void @llvm.lifetime.end.p0(i64 96, ptr %659) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %658) #14
  br label %3818

3818:                                             ; preds = %3817, %3800
  call void @llvm.lifetime.end.p0(i64 32, ptr %658) #14
  %3819 = load i1, ptr %663, align 1
  br i1 %3819, label %3820, label %3821

3820:                                             ; preds = %3818
  call void @_ZdlPvm(ptr noundef %2436, i64 noundef 208) #16
  br label %3821

3821:                                             ; preds = %3820, %3818
  br label %3893

3822:                                             ; preds = %2441
  %3823 = landingpad { ptr, i32 }
          cleanup
  %3824 = extractvalue { ptr, i32 } %3823, 0
  store ptr %3824, ptr %7, align 8
  %3825 = extractvalue { ptr, i32 } %3823, 1
  store i32 %3825, ptr %8, align 4
  br label %3892

3826:                                             ; preds = %2443
  %3827 = landingpad { ptr, i32 }
          cleanup
  %3828 = extractvalue { ptr, i32 } %3827, 0
  store ptr %3828, ptr %7, align 8
  %3829 = extractvalue { ptr, i32 } %3827, 1
  store i32 %3829, ptr %8, align 4
  br label %3844

3830:                                             ; preds = %2445, %2444
  %3831 = landingpad { ptr, i32 }
          cleanup
  %3832 = extractvalue { ptr, i32 } %3831, 0
  store ptr %3832, ptr %7, align 8
  %3833 = extractvalue { ptr, i32 } %3831, 1
  store i32 %3833, ptr %8, align 4
  br label %3843

3834:                                             ; preds = %2446
  %3835 = landingpad { ptr, i32 }
          cleanup
  %3836 = extractvalue { ptr, i32 } %3835, 0
  store ptr %3836, ptr %7, align 8
  %3837 = extractvalue { ptr, i32 } %3835, 1
  store i32 %3837, ptr %8, align 4
  br label %3842

3838:                                             ; preds = %2447
  %3839 = landingpad { ptr, i32 }
          cleanup
  %3840 = extractvalue { ptr, i32 } %3839, 0
  store ptr %3840, ptr %7, align 8
  %3841 = extractvalue { ptr, i32 } %3839, 1
  store i32 %3841, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %670) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %668) #14
  br label %3842

3842:                                             ; preds = %3838, %3834
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %669) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %669) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %668) #14
  br label %3843

3843:                                             ; preds = %3842, %3830
  call void @llvm.lifetime.end.p0(i64 72, ptr %667) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %666) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %665) #14
  br label %3844

3844:                                             ; preds = %3843, %3826
  call void @llvm.lifetime.end.p0(i64 32, ptr %665) #14
  %3845 = load i1, ptr %671, align 1
  br i1 %3845, label %3846, label %3847

3846:                                             ; preds = %3844
  call void @_ZdlPvm(ptr noundef %2442, i64 noundef 208) #16
  br label %3847

3847:                                             ; preds = %3846, %3844
  br label %3892

3848:                                             ; preds = %2467, %2461, %2455, %2448
  %3849 = landingpad { ptr, i32 }
          cleanup
  %3850 = extractvalue { ptr, i32 } %3849, 0
  store ptr %3850, ptr %7, align 8
  %3851 = extractvalue { ptr, i32 } %3849, 1
  store i32 %3851, ptr %8, align 4
  br label %3891

3852:                                             ; preds = %2450
  %3853 = landingpad { ptr, i32 }
          cleanup
  %3854 = extractvalue { ptr, i32 } %3853, 0
  store ptr %3854, ptr %7, align 8
  %3855 = extractvalue { ptr, i32 } %3853, 1
  store i32 %3855, ptr %8, align 4
  br label %3870

3856:                                             ; preds = %2452, %2451
  %3857 = landingpad { ptr, i32 }
          cleanup
  %3858 = extractvalue { ptr, i32 } %3857, 0
  store ptr %3858, ptr %7, align 8
  %3859 = extractvalue { ptr, i32 } %3857, 1
  store i32 %3859, ptr %8, align 4
  br label %3869

3860:                                             ; preds = %2453
  %3861 = landingpad { ptr, i32 }
          cleanup
  %3862 = extractvalue { ptr, i32 } %3861, 0
  store ptr %3862, ptr %7, align 8
  %3863 = extractvalue { ptr, i32 } %3861, 1
  store i32 %3863, ptr %8, align 4
  br label %3868

3864:                                             ; preds = %2454
  %3865 = landingpad { ptr, i32 }
          cleanup
  %3866 = extractvalue { ptr, i32 } %3865, 0
  store ptr %3866, ptr %7, align 8
  %3867 = extractvalue { ptr, i32 } %3865, 1
  store i32 %3867, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %678) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %676) #14
  br label %3868

3868:                                             ; preds = %3864, %3860
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %677) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %677) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %676) #14
  br label %3869

3869:                                             ; preds = %3868, %3856
  call void @llvm.lifetime.end.p0(i64 72, ptr %675) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %674) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %673) #14
  br label %3870

3870:                                             ; preds = %3869, %3852
  call void @llvm.lifetime.end.p0(i64 32, ptr %673) #14
  %3871 = load i1, ptr %679, align 1
  br i1 %3871, label %3872, label %3873

3872:                                             ; preds = %3870
  call void @_ZdlPvm(ptr noundef %2449, i64 noundef 208) #16
  br label %3873

3873:                                             ; preds = %3872, %3870
  br label %3891

3874:                                             ; preds = %2491, %2490, %2485, %2484, %2479, %2478, %2473
  %3875 = landingpad { ptr, i32 }
          cleanup
  %3876 = extractvalue { ptr, i32 } %3875, 0
  store ptr %3876, ptr %7, align 8
  %3877 = extractvalue { ptr, i32 } %3875, 1
  store i32 %3877, ptr %8, align 4
  br label %3890

3878:                                             ; preds = %2477
  %3879 = landingpad { ptr, i32 }
          cleanup
  %3880 = extractvalue { ptr, i32 } %3879, 0
  store ptr %3880, ptr %7, align 8
  %3881 = extractvalue { ptr, i32 } %3879, 1
  store i32 %3881, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2476, i64 noundef 56) #16
  br label %3890

3882:                                             ; preds = %2483
  %3883 = landingpad { ptr, i32 }
          cleanup
  %3884 = extractvalue { ptr, i32 } %3883, 0
  store ptr %3884, ptr %7, align 8
  %3885 = extractvalue { ptr, i32 } %3883, 1
  store i32 %3885, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2482, i64 noundef 56) #16
  br label %3890

3886:                                             ; preds = %2489
  %3887 = landingpad { ptr, i32 }
          cleanup
  %3888 = extractvalue { ptr, i32 } %3887, 0
  store ptr %3888, ptr %7, align 8
  %3889 = extractvalue { ptr, i32 } %3887, 1
  store i32 %3889, ptr %8, align 4
  call void @_ZdlPvm(ptr noundef %2488, i64 noundef 56) #16
  br label %3890

3890:                                             ; preds = %3886, %3882, %3878, %3874
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %680) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %680) #14
  br label %3891

3891:                                             ; preds = %3890, %3873, %3848
  call void @llvm.lifetime.end.p0(i64 8, ptr %672) #14
  br label %3892

3892:                                             ; preds = %3891, %3847, %3822
  call void @llvm.lifetime.end.p0(i64 8, ptr %664) #14
  br label %3893

3893:                                             ; preds = %3892, %3821, %3796
  call void @llvm.lifetime.end.p0(i64 8, ptr %657) #14
  br label %4004

3894:                                             ; preds = %2494
  %3895 = landingpad { ptr, i32 }
          cleanup
  %3896 = extractvalue { ptr, i32 } %3895, 0
  store ptr %3896, ptr %7, align 8
  %3897 = extractvalue { ptr, i32 } %3895, 1
  store i32 %3897, ptr %8, align 4
  br label %3902

3898:                                             ; preds = %2495
  %3899 = landingpad { ptr, i32 }
          cleanup
  %3900 = extractvalue { ptr, i32 } %3899, 0
  store ptr %3900, ptr %7, align 8
  %3901 = extractvalue { ptr, i32 } %3899, 1
  store i32 %3901, ptr %8, align 4
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %688) #14
  br label %3902

3902:                                             ; preds = %3898, %3894
  call void @llvm.lifetime.end.p0(i64 24, ptr %688) #14
  br label %4003

3903:                                             ; preds = %2496
  %3904 = landingpad { ptr, i32 }
          cleanup
  %3905 = extractvalue { ptr, i32 } %3904, 0
  store ptr %3905, ptr %7, align 8
  %3906 = extractvalue { ptr, i32 } %3904, 1
  store i32 %3906, ptr %8, align 4
  br label %3916

3907:                                             ; preds = %2504
  %3908 = landingpad { ptr, i32 }
          cleanup
  %3909 = extractvalue { ptr, i32 } %3908, 0
  store ptr %3909, ptr %7, align 8
  %3910 = extractvalue { ptr, i32 } %3908, 1
  store i32 %3910, ptr %8, align 4
  br label %3915

3911:                                             ; preds = %2505
  %3912 = landingpad { ptr, i32 }
          cleanup
  %3913 = extractvalue { ptr, i32 } %3912, 0
  store ptr %3913, ptr %7, align 8
  %3914 = extractvalue { ptr, i32 } %3912, 1
  store i32 %3914, ptr %8, align 4
  call void @_ZN3P3D8Graphics20ExtendedTriangleMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %690) #14
  br label %3915

3915:                                             ; preds = %3911, %3907
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %691) #14
  br label %3916

3916:                                             ; preds = %3915, %3903
  call void @llvm.lifetime.end.p0(i64 24, ptr %691) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr %690) #14
  br label %4002

3917:                                             ; preds = %2506
  %3918 = landingpad { ptr, i32 }
          cleanup
  %3919 = extractvalue { ptr, i32 } %3918, 0
  store ptr %3919, ptr %7, align 8
  %3920 = extractvalue { ptr, i32 } %3918, 1
  store i32 %3920, ptr %8, align 4
  br label %4002

3921:                                             ; preds = %2509
  %3922 = landingpad { ptr, i32 }
          cleanup
  %3923 = extractvalue { ptr, i32 } %3922, 0
  store ptr %3923, ptr %7, align 8
  %3924 = extractvalue { ptr, i32 } %3922, 1
  store i32 %3924, ptr %8, align 4
  br label %3934

3925:                                             ; preds = %2510
  %3926 = landingpad { ptr, i32 }
          cleanup
  %3927 = extractvalue { ptr, i32 } %3926, 0
  store ptr %3927, ptr %7, align 8
  %3928 = extractvalue { ptr, i32 } %3926, 1
  store i32 %3928, ptr %8, align 4
  br label %3933

3929:                                             ; preds = %2512, %2511
  %3930 = landingpad { ptr, i32 }
          cleanup
  %3931 = extractvalue { ptr, i32 } %3930, 0
  store ptr %3931, ptr %7, align 8
  %3932 = extractvalue { ptr, i32 } %3930, 1
  store i32 %3932, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %696) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %694) #14
  br label %3933

3933:                                             ; preds = %3929, %3925
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %695) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %695) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %694) #14
  br label %3934

3934:                                             ; preds = %3933, %3921
  call void @llvm.lifetime.end.p0(i64 24, ptr %693) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %692) #14
  %3935 = load i1, ptr %697, align 1
  br i1 %3935, label %3936, label %3937

3936:                                             ; preds = %3934
  call void @_ZdlPvm(ptr noundef %2508, i64 noundef 208) #16
  br label %3937

3937:                                             ; preds = %3936, %3934
  br label %4002

3938:                                             ; preds = %2516
  %3939 = landingpad { ptr, i32 }
          cleanup
  %3940 = extractvalue { ptr, i32 } %3939, 0
  store ptr %3940, ptr %7, align 8
  %3941 = extractvalue { ptr, i32 } %3939, 1
  store i32 %3941, ptr %8, align 4
  br label %3946

3942:                                             ; preds = %2518
  %3943 = landingpad { ptr, i32 }
          cleanup
  %3944 = extractvalue { ptr, i32 } %3943, 0
  store ptr %3944, ptr %7, align 8
  %3945 = extractvalue { ptr, i32 } %3943, 1
  store i32 %3945, ptr %8, align 4
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %700) #14
  br label %3946

3946:                                             ; preds = %3942, %3938
  call void @llvm.lifetime.end.p0(i64 24, ptr %700) #14
  br label %4001

3947:                                             ; preds = %2519
  %3948 = landingpad { ptr, i32 }
          cleanup
  %3949 = extractvalue { ptr, i32 } %3948, 0
  store ptr %3949, ptr %7, align 8
  %3950 = extractvalue { ptr, i32 } %3948, 1
  store i32 %3950, ptr %8, align 4
  br label %4000

3951:                                             ; preds = %2522
  %3952 = landingpad { ptr, i32 }
          cleanup
  %3953 = extractvalue { ptr, i32 } %3952, 0
  store ptr %3953, ptr %7, align 8
  %3954 = extractvalue { ptr, i32 } %3952, 1
  store i32 %3954, ptr %8, align 4
  br label %3964

3955:                                             ; preds = %2523
  %3956 = landingpad { ptr, i32 }
          cleanup
  %3957 = extractvalue { ptr, i32 } %3956, 0
  store ptr %3957, ptr %7, align 8
  %3958 = extractvalue { ptr, i32 } %3956, 1
  store i32 %3958, ptr %8, align 4
  br label %3963

3959:                                             ; preds = %2525, %2524
  %3960 = landingpad { ptr, i32 }
          cleanup
  %3961 = extractvalue { ptr, i32 } %3960, 0
  store ptr %3961, ptr %7, align 8
  %3962 = extractvalue { ptr, i32 } %3960, 1
  store i32 %3962, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %705) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %703) #14
  br label %3963

3963:                                             ; preds = %3959, %3955
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %704) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %704) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %703) #14
  br label %3964

3964:                                             ; preds = %3963, %3951
  call void @llvm.lifetime.end.p0(i64 24, ptr %702) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %701) #14
  %3965 = load i1, ptr %706, align 1
  br i1 %3965, label %3966, label %3967

3966:                                             ; preds = %3964
  call void @_ZdlPvm(ptr noundef %2521, i64 noundef 208) #16
  br label %3967

3967:                                             ; preds = %3966, %3964
  br label %4000

3968:                                             ; preds = %2529
  %3969 = landingpad { ptr, i32 }
          cleanup
  %3970 = extractvalue { ptr, i32 } %3969, 0
  store ptr %3970, ptr %7, align 8
  %3971 = extractvalue { ptr, i32 } %3969, 1
  store i32 %3971, ptr %8, align 4
  br label %3976

3972:                                             ; preds = %2531
  %3973 = landingpad { ptr, i32 }
          cleanup
  %3974 = extractvalue { ptr, i32 } %3973, 0
  store ptr %3974, ptr %7, align 8
  %3975 = extractvalue { ptr, i32 } %3973, 1
  store i32 %3975, ptr %8, align 4
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %709) #14
  br label %3976

3976:                                             ; preds = %3972, %3968
  call void @llvm.lifetime.end.p0(i64 24, ptr %709) #14
  br label %3999

3977:                                             ; preds = %2532
  %3978 = landingpad { ptr, i32 }
          cleanup
  %3979 = extractvalue { ptr, i32 } %3978, 0
  store ptr %3979, ptr %7, align 8
  %3980 = extractvalue { ptr, i32 } %3978, 1
  store i32 %3980, ptr %8, align 4
  br label %3998

3981:                                             ; preds = %2535
  %3982 = landingpad { ptr, i32 }
          cleanup
  %3983 = extractvalue { ptr, i32 } %3982, 0
  store ptr %3983, ptr %7, align 8
  %3984 = extractvalue { ptr, i32 } %3982, 1
  store i32 %3984, ptr %8, align 4
  br label %3994

3985:                                             ; preds = %2536
  %3986 = landingpad { ptr, i32 }
          cleanup
  %3987 = extractvalue { ptr, i32 } %3986, 0
  store ptr %3987, ptr %7, align 8
  %3988 = extractvalue { ptr, i32 } %3986, 1
  store i32 %3988, ptr %8, align 4
  br label %3993

3989:                                             ; preds = %2538, %2537
  %3990 = landingpad { ptr, i32 }
          cleanup
  %3991 = extractvalue { ptr, i32 } %3990, 0
  store ptr %3991, ptr %7, align 8
  %3992 = extractvalue { ptr, i32 } %3990, 1
  store i32 %3992, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %714) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %712) #14
  br label %3993

3993:                                             ; preds = %3989, %3985
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %713) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr %713) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr %712) #14
  br label %3994

3994:                                             ; preds = %3993, %3981
  call void @llvm.lifetime.end.p0(i64 24, ptr %711) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr %710) #14
  %3995 = load i1, ptr %715, align 1
  br i1 %3995, label %3996, label %3997

3996:                                             ; preds = %3994
  call void @_ZdlPvm(ptr noundef %2534, i64 noundef 208) #16
  br label %3997

3997:                                             ; preds = %3996, %3994
  br label %3998

3998:                                             ; preds = %3997, %3977
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %708) #14
  br label %3999

3999:                                             ; preds = %3998, %3976
  call void @llvm.lifetime.end.p0(i64 32, ptr %708) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %707) #14
  br label %4000

4000:                                             ; preds = %3999, %3967, %3947
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %699) #14
  br label %4001

4001:                                             ; preds = %4000, %3946
  call void @llvm.lifetime.end.p0(i64 32, ptr %699) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr %698) #14
  br label %4002

4002:                                             ; preds = %4001, %3937, %3917, %3916
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %687) #14
  br label %4003

4003:                                             ; preds = %4002, %3902
  call void @llvm.lifetime.end.p0(i64 32, ptr %687) #14
  br label %4004

4004:                                             ; preds = %4003, %3893, %3795, %3701, %3510, %3443, %3376, %3189, %3018, %2952, %2886, %2817, %2813, %2812, %2787
  call void @llvm.lifetime.end.p0(i64 8, ptr %310) #14
  br label %4005

4005:                                             ; preds = %4004, %2786, %2761
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #14
  br label %4006

4006:                                             ; preds = %4005, %2760, %2735
  call void @llvm.lifetime.end.p0(i64 8, ptr %291) #14
  br label %4007

4007:                                             ; preds = %4006, %2731, %2730, %2721, %2696
  call void @llvm.lifetime.end.p0(i64 8, ptr %272) #14
  br label %4008

4008:                                             ; preds = %4007, %2695, %2670
  call void @llvm.lifetime.end.p0(i64 8, ptr %264) #14
  br label %4009

4009:                                             ; preds = %4008, %2669, %2644
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #14
  br label %4010

4010:                                             ; preds = %4009, %2640, %2636, %2632
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %251) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr %251) #14
  br label %4011

4011:                                             ; preds = %4010, %2631, %2606
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #14
  br label %4012

4012:                                             ; preds = %4011, %2605, %2580
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #14
  br label %4013

4013:                                             ; preds = %4012, %2579, %2554
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #14
  br label %4014

4014:                                             ; preds = %4013, %2550
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #14
  br label %4015

4015:                                             ; preds = %4014, %1767, %1501
  call void @llvm.lifetime.end.p0(i64 96, ptr %188) #14
  br label %4016

4016:                                             ; preds = %4015, %1497
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #14
  br label %4017

4017:                                             ; preds = %4016, %1493
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #14
  br label %4018

4018:                                             ; preds = %4017, %1489
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #14
  br label %4019

4019:                                             ; preds = %4018, %1485
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #14
  br label %4020

4020:                                             ; preds = %4019, %1481
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #14
  br label %4021

4021:                                             ; preds = %4020, %1477, %1473, %1469, %1465, %1461, %1460, %1451, %1439
  call void @llvm.lifetime.end.p0(i64 48, ptr %155) #14
  br label %4022

4022:                                             ; preds = %4021, %1438, %1413, %1412, %1301, %1073
  %4023 = getelementptr inbounds [4 x %"struct.P3D::Application::WorldBuilder::SpiderFactory"], ptr %5, i32 0, i32 0
  %4024 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %4023, i64 4
  br label %4025

4025:                                             ; preds = %4025, %4022
  %4026 = phi ptr [ %4024, %4022 ], [ %4027, %4025 ]
  %4027 = getelementptr inbounds %"struct.P3D::Application::WorldBuilder::SpiderFactory", ptr %4026, i64 -1
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %4027) #14
  %4028 = icmp eq ptr %4027, %4023
  br i1 %4028, label %4029, label %4025

4029:                                             ; preds = %4025
  br label %4030

4030:                                             ; preds = %4029, %1005
  call void @llvm.lifetime.end.p0(i64 192, ptr %5) #14
  br label %4031

4031:                                             ; preds = %4030
  %4032 = load ptr, ptr %7, align 8
  %4033 = load i32, ptr %8, align 4
  %4034 = insertvalue { ptr, i32 } poison, ptr %4032, 0
  %4035 = insertvalue { ptr, i32 } %4034, i32 %4033, 1
  resume { ptr, i32 } %4035
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D11Application15buildFloorWorldERNS0_6ScreenERNS0_11PlayerWorldE(ptr noundef nonnull align 8 dereferenceable(1024), ptr noundef nonnull align 8 dereferenceable(224)) #1

declare void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44), double noundef, i32 noundef) unnamed_addr #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA11_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(11)) #2 align 2

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

declare void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #9 align 2

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

declare void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #4

declare void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5

declare void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef, double noundef) #4

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

declare void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) #4

declare noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200)) #4

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10

declare void @_ZN3P3D11Application12WorldBuilder14buildHollowBoxENS_14BoundsTemplateINS_3FixILl32EEEEEd(ptr dead_on_unwind writable sret(%"struct.P3D::Application::WorldBuilder::HollowBoxParts") align 8, ptr noundef byval(%"struct.P3D::BoundsTemplate") align 8, double noundef) #4

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

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

declare void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(172)) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172), <2 x float>, <2 x float>, float noundef, float noundef, float noundef) unnamed_addr #11 align 2

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

declare void @_ZN3P3D11Application12WorldBuilder8buildCarERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) #4

declare void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(96), double noundef, i32 noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(6)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(10)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: nounwind
declare i32 @rand() #5

declare void @_ZN3P3D11Application12WorldBuilder13SpiderFactory11buildSpiderERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #12

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

declare void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8) unnamed_addr #8 align 2

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

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

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

declare void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416), ptr noundef byval(%"struct.P3D::Vector") align 8) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind noalias writable sret(%"struct.P3D::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #2

declare void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeEPS1_RKNS_14CFrameTemplateIdEERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

declare void @_ZN3P3D4Part6attachEPS0_RKNS_14CFrameTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96)) #4

declare void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef) #4

declare void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(104), double noundef, double noundef) unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D6Engine8RegistryImE3addINS_11Application4Comp4NameEJRA12_KcEEENS_13intrusive_ptrIT_EERKjDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.P3D::intrusive_ptr.88") align 8, ptr noundef nonnull align 8 dereferenceable(212), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(12)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32), double noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D23MotorConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind noalias writable sret(%"class.P3D::MatrixRotationTemplate") align 8, double noundef) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8) unnamed_addr #8 align 2

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

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

declare void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #4

declare void @_ZN3P3D12ShapeLibrary11createTorusEffii(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8, float noundef, float noundef, i32 noundef, i32 noundef) #4

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

declare void @_ZN3P3D8Graphics12MeshRegistry18registerShapeClassEPKNS_10ShapeClassERKNS0_20ExtendedTriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::Comp::Mesh") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(88)) #4

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

declare void @_ZN3P3D8Graphics20ExtendedTriangleMesh26generateSmoothNormalsShapeERKNS_12TriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::ExtendedTriangleMesh") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

declare void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8, float noundef, ptr noundef, i32 noundef, float noundef, i32 noundef) #4

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN3P3D14PartPropertiesE", !11, i64 0, !11, i64 8, !11, i64 16, !12, i64 24}
!11 = !{!"double", !7, i64 0}
!12 = !{!"_ZTSN3P3D6VectorIdLm3EEE", !7, i64 0}
!13 = !{!10, !11, i64 8}
!14 = !{!10, !11, i64 16}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!18, !19, i64 0}
!18 = !{!"_ZTSN3P3D11Application4Comp5Light11AttenuationE", !19, i64 0, !19, i64 4, !19, i64 8}
!19 = !{!"float", !7, i64 0}
!20 = !{!18, !19, i64 4}
!21 = !{!18, !19, i64 8}
!22 = !{!23, !23, i64 0}
!23 = !{!"vtable pointer", !8, i64 0}
!24 = !{!11, !11, i64 0}
!25 = !{i64 0, i64 24, !26}
!26 = !{!7, !7, i64 0}
!27 = !{!28, !6, i64 32}
!28 = !{!"_ZTSN3P3D11Application12WorldBuilder14HollowBoxPartsE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!29 = !{!28, !6, i64 40}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = distinct !{!32, !31}
!33 = distinct !{!33, !31}
!34 = !{!35, !6, i64 96}
!35 = !{!"_ZTSN3P3D12AttachedPartE", !36, i64 0, !6, i64 96}
!36 = !{!"_ZTSN3P3D14CFrameTemplateIdEE", !12, i64 0, !37, i64 24}
!37 = !{!"_ZTSN3P3D22MatrixRotationTemplateIdEE", !38, i64 0}
!38 = !{!"_ZTSN3P3D6MatrixIdLm3ELm3EEE", !7, i64 0}
!39 = !{i64 0, i64 72, !26}


; 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"

%"struct.P3D::PartProperties" = type { double, double, double, %"struct.P3D::Vector" }
%"struct.P3D::Vector" = type { %union.anon }
%union.anon = type { [3 x double] }
%"class.P3D::MatrixRotationTemplate" = type { %"class.P3D::Matrix" }
%"class.P3D::Matrix" = type { [9 x double] }
%"class.P3D::Shape" = type { %"class.P3D::intrusive_ptr", %"class.P3D::DiagonalMatrix" }
%"class.P3D::intrusive_ptr" = type { ptr }
%"class.P3D::DiagonalMatrix" = type { [3 x double] }
%"struct.P3D::Vector.97" = type { %union.anon.98 }
%union.anon.98 = type { [2 x float] }
%"struct.P3D::Application::WorldBuilder::SpiderFactory" = type <{ %"class.P3D::Shape", double, i32, [4 x i8] }>
%"class.P3D::GlobalCFrame" = type { %"struct.P3D::PositionTemplate", %"class.P3D::MatrixRotationTemplate" }
%"struct.P3D::PositionTemplate" = type { %"struct.P3D::Fix", %"struct.P3D::Fix", %"struct.P3D::Fix" }
%"struct.P3D::Fix" = type { i64 }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.33 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.33 = type { i64, [8 x i8] }
%"class.std::allocator.30" = type { i8 }
%"class.P3D::Application::EntityBuilder" = type <{ ptr, i32, [4 x i8] }>
%"struct.P3D::Graphics::ColorTemplate" = type { %union.anon.64 }
%union.anon.64 = type { %struct.anon.65 }
%struct.anon.65 = type { float, float, float, float }
%"struct.P3D::Application::Comp::Light::Attenuation" = type { float, float, float }
%"class.P3D::Part" = type { %"class.P3D::GlobalCFrame", ptr, ptr, %"class.P3D::Shape", double, %"struct.P3D::PartProperties" }
%"struct.P3D::CFrameTemplate" = type { %"struct.P3D::Vector", %"class.P3D::MatrixRotationTemplate" }
%"struct.P3D::Application::WorldBuilder::HollowBoxParts" = type { ptr, ptr, ptr, ptr, ptr, ptr }
%"struct.P3D::BoundsTemplate" = type { %"struct.P3D::PositionTemplate", %"struct.P3D::PositionTemplate" }
%"struct.P3D::Graphics::Comp::Material" = type <{ %"struct.P3D::RC", [8 x %"class.std::shared_ptr.77"], %"struct.P3D::Graphics::ColorTemplate", float, float, float, [4 x i8] }>
%"struct.P3D::RC" = type { ptr, i64 }
%"class.std::shared_ptr.77" = type { %"class.std::__shared_ptr.78" }
%"class.std::__shared_ptr.78" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.P3D::Vector.80" = type { %union.anon.81 }
%union.anon.81 = type { [4 x float] }
%"class.P3D::ConstraintGroup" = type { %"class.std::vector.83" }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl" }
%"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl" = type { %"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl_data" }
%"struct.std::_Vector_base<P3D::PhysicalConstraint, std::allocator<P3D::PhysicalConstraint>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.P3D::AttachedPart" = type { %"struct.P3D::CFrameTemplate", ptr }
%"class.P3D::intrusive_ptr.88" = type { ptr }
%"class.P3D::Polyhedron" = type { %"class.P3D::TriangleMesh" }
%"class.P3D::TriangleMesh" = type { %"class.P3D::MeshPrototype" }
%"class.P3D::MeshPrototype" = type { %"class.P3D::UniqueAlignedPointer", %"class.P3D::UniqueAlignedPointer.90", i32, i32 }
%"class.P3D::UniqueAlignedPointer" = type { ptr }
%"class.P3D::UniqueAlignedPointer.90" = type { ptr }
%"struct.P3D::Graphics::Comp::Mesh" = type <{ %"struct.P3D::RC", i64, i32, i8, [3 x i8] }>
%"struct.P3D::Graphics::ExtendedTriangleMesh" = type { %"class.P3D::TriangleMesh", %"class.std::shared_ptr.91", %"class.std::shared_ptr.94", %"class.std::shared_ptr.91", %"class.std::shared_ptr.91" }
%"class.std::shared_ptr.94" = type { %"class.std::__shared_ptr.95" }
%"class.std::__shared_ptr.95" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.91" = type { %"class.std::__shared_ptr.92" }
%"class.std::__shared_ptr.92" = type { ptr, %"class.std::__shared_count" }

@_ZN3P3D11Application12WorldBuilder15basicPropertiesE = external global %"struct.P3D::PartProperties", align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined8IDENTITYE = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.5 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_180E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@_ZN3P3D11Application12WorldBuilder8triangleE = external global %"class.P3D::Shape", align 8
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZN3P3D6Engine8RegistryImE11null_entityE = external dso_local global i32, align 4
@.str.41 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E = external dso_local constant %"class.P3D::MatrixRotationTemplate", align 8
@.str.47 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [6 x i8], align 1
@constinit = external hidden local_unnamed_addr constant [9 x %"struct.P3D::Vector.97"], align 4
@.str.56 = external hidden unnamed_addr constant [10 x i8], align 1
@constinit.57 = external hidden local_unnamed_addr constant [3 x %"struct.P3D::Vector.97"], align 4
@.str.58 = external hidden unnamed_addr constant [12 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind noalias writable sret(%"class.P3D::MatrixRotationTemplate") align 8, double noundef, double noundef, double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), double noundef, double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

declare void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef, double noundef, double noundef) local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

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

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

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

declare void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3P3D11Application18buildShowcaseWorldERNS0_6ScreenERNS0_11PlayerWorldE(ptr noundef nonnull align 8 dereferenceable(1024) %0, ptr noundef nonnull align 8 dereferenceable(224) %1) local_unnamed_addr #7 personality ptr @__gxx_personality_v0 {
  %3 = alloca [4 x %"struct.P3D::Application::WorldBuilder::SpiderFactory"], align 16
  %4 = alloca %"class.P3D::Shape", align 8
  %5 = alloca %"class.P3D::GlobalCFrame", align 8
  %6 = alloca %"struct.P3D::PartProperties", align 16
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.30", align 1
  %9 = alloca i32, align 4
  %10 = alloca %"class.P3D::Shape", align 8
  %11 = alloca %"class.P3D::GlobalCFrame", align 8
  %12 = alloca %"struct.P3D::PartProperties", align 16
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.30", align 1
  %15 = alloca i32, align 4
  %16 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %17 = alloca %"struct.P3D::Graphics::ColorTemplate", align 4
  %18 = alloca i32, align 4
  %19 = alloca %"struct.P3D::Application::Comp::Light::Attenuation", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %22 = alloca %"class.P3D::Shape", align 8
  %23 = alloca %"class.P3D::GlobalCFrame", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.30", align 1
  %26 = alloca %"class.P3D::Shape", align 8
  %27 = alloca %"class.P3D::Part", align 8
  %28 = alloca %"struct.P3D::CFrameTemplate", align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca %"struct.P3D::CFrameTemplate", align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.30", align 1
  %38 = alloca %"class.P3D::Part", align 8
  %39 = alloca %"struct.P3D::CFrameTemplate", align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca %"struct.P3D::CFrameTemplate", align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.30", align 1
  %49 = alloca %"class.P3D::Part", align 8
  %50 = alloca %"struct.P3D::CFrameTemplate", align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca %"struct.P3D::CFrameTemplate", align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator.30", align 1
  %60 = alloca %"class.P3D::Part", align 8
  %61 = alloca %"struct.P3D::CFrameTemplate", align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca %"struct.P3D::CFrameTemplate", align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator.30", align 1
  %71 = alloca %"class.P3D::Part", align 8
  %72 = alloca %"struct.P3D::CFrameTemplate", align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca %"struct.P3D::CFrameTemplate", align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::allocator.30", align 1
  %82 = alloca %"class.P3D::Part", align 8
  %83 = alloca %"struct.P3D::CFrameTemplate", align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca %"struct.P3D::CFrameTemplate", align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator.30", align 1
  %93 = alloca %"class.P3D::Shape", align 8
  %94 = alloca %"class.P3D::GlobalCFrame", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator.30", align 1
  %97 = alloca i32, align 4
  %98 = alloca %"class.P3D::Shape", align 8
  %99 = alloca %"class.P3D::GlobalCFrame", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator.30", align 1
  %102 = alloca i32, align 4
  %103 = alloca %"class.P3D::Shape", align 8
  %104 = alloca %"class.P3D::GlobalCFrame", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator.30", align 1
  %107 = alloca i32, align 4
  %108 = alloca %"struct.P3D::CFrameTemplate", align 8
  %109 = alloca double, align 8
  %110 = alloca double, align 8
  %111 = alloca double, align 8
  %112 = alloca %"struct.P3D::CFrameTemplate", align 8
  %113 = alloca double, align 8
  %114 = alloca double, align 8
  %115 = alloca double, align 8
  %116 = alloca %"struct.P3D::CFrameTemplate", align 8
  %117 = alloca double, align 8
  %118 = alloca double, align 8
  %119 = alloca double, align 8
  %120 = alloca %"struct.P3D::CFrameTemplate", align 8
  %121 = alloca double, align 8
  %122 = alloca double, align 8
  %123 = alloca double, align 8
  %124 = alloca %"struct.P3D::Vector", align 8
  %125 = alloca %"class.P3D::Shape", align 8
  %126 = alloca %"class.P3D::GlobalCFrame", align 8
  %127 = alloca %"struct.P3D::PartProperties", align 16
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator.30", align 1
  %130 = alloca i32, align 4
  %131 = alloca %"struct.P3D::Application::WorldBuilder::HollowBoxParts", align 8
  %132 = alloca %"struct.P3D::BoundsTemplate", align 8
  %133 = alloca %"struct.P3D::PositionTemplate", align 8
  %134 = alloca %"struct.P3D::PositionTemplate", align 8
  %135 = alloca %"struct.P3D::Graphics::Comp::Material", align 8
  %136 = alloca %"struct.P3D::Graphics::ColorTemplate", align 8
  %137 = alloca %"struct.P3D::Graphics::Comp::Material", align 8
  %138 = alloca %"struct.P3D::Graphics::ColorTemplate", align 8
  %139 = alloca %"class.P3D::GlobalCFrame", align 8
  %140 = alloca %"class.P3D::GlobalCFrame", align 8
  %141 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %142 = alloca %"class.P3D::GlobalCFrame", align 8
  %143 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %144 = alloca %"class.P3D::GlobalCFrame", align 8
  %145 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %146 = alloca %"class.P3D::GlobalCFrame", align 8
  %147 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %148 = alloca i32, align 4
  %149 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %150 = alloca i32, align 4
  %151 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %152 = alloca i32, align 4
  %153 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %154 = alloca i32, align 4
  %155 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %156 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %157 = alloca %"class.P3D::GlobalCFrame", align 8
  %158 = alloca %"struct.P3D::PositionTemplate", align 8
  %159 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %160 = alloca %"class.P3D::Shape", align 8
  %161 = alloca %"class.P3D::GlobalCFrame", align 8
  %162 = alloca %"struct.P3D::PositionTemplate", align 8
  %163 = alloca %"struct.P3D::PartProperties", align 16
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::allocator.30", align 1
  %166 = alloca %"struct.P3D::Graphics::Comp::Material", align 8
  %167 = alloca %"struct.P3D::Graphics::ColorTemplate", align 8
  %168 = alloca %"struct.P3D::Vector.80", align 8
  %169 = alloca %"class.P3D::Shape", align 8
  %170 = alloca %"class.P3D::GlobalCFrame", align 8
  %171 = alloca %"struct.P3D::PositionTemplate", align 8
  %172 = alloca %"struct.P3D::PartProperties", align 16
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::allocator.30", align 1
  %175 = alloca %"class.P3D::GlobalCFrame", align 8
  %176 = alloca %"struct.P3D::PositionTemplate", align 8
  %177 = alloca %"class.P3D::GlobalCFrame", align 8
  %178 = alloca %"struct.P3D::PositionTemplate", align 8
  %179 = alloca %"struct.P3D::PartProperties", align 16
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::allocator.30", align 1
  %182 = alloca %"class.P3D::Shape", align 8
  %183 = alloca %"class.P3D::GlobalCFrame", align 8
  %184 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %185 = alloca %"struct.P3D::PartProperties", align 16
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::allocator.30", align 1
  %188 = alloca i32, align 4
  %189 = alloca %"class.P3D::Application::EntityBuilder", align 8
  %190 = alloca %"class.P3D::Shape", align 8
  %191 = alloca %"class.P3D::GlobalCFrame", align 8
  %192 = alloca %"struct.P3D::PartProperties", align 16
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.std::allocator.30", align 1
  %195 = alloca %"class.P3D::Shape", align 8
  %196 = alloca %"class.P3D::GlobalCFrame", align 8
  %197 = alloca %"struct.P3D::PartProperties", align 16
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator.30", align 1
  %200 = alloca %"class.P3D::Shape", align 8
  %201 = alloca %"class.P3D::GlobalCFrame", align 8
  %202 = alloca %"struct.P3D::PartProperties", align 16
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator.30", align 1
  %205 = alloca %"class.P3D::ConstraintGroup", align 8
  %206 = alloca %"struct.P3D::Vector", align 8
  %207 = alloca %"struct.P3D::Vector", align 8
  %208 = alloca %"struct.P3D::Vector", align 8
  %209 = alloca %"struct.P3D::Vector", align 8
  %210 = alloca %"class.P3D::Shape", align 8
  %211 = alloca %"class.P3D::GlobalCFrame", align 8
  %212 = alloca %"struct.P3D::PartProperties", align 16
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::allocator.30", align 1
  %215 = alloca i32, align 4
  %216 = alloca %"class.P3D::Shape", align 8
  %217 = alloca %"class.P3D::GlobalCFrame", align 8
  %218 = alloca %"struct.P3D::PartProperties", align 16
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator.30", align 1
  %221 = alloca i32, align 4
  %222 = alloca %"class.P3D::Shape", align 8
  %223 = alloca %"class.P3D::GlobalCFrame", align 8
  %224 = alloca %"struct.P3D::PartProperties", align 16
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::allocator.30", align 1
  %227 = alloca i32, align 4
  %228 = alloca %"struct.P3D::CFrameTemplate", align 8
  %229 = alloca double, align 8
  %230 = alloca double, align 8
  %231 = alloca double, align 8
  %232 = alloca %"struct.P3D::CFrameTemplate", align 8
  %233 = alloca double, align 8
  %234 = alloca double, align 8
  %235 = alloca double, align 8
  %236 = alloca %"struct.P3D::Vector", align 8
  %237 = alloca %"struct.P3D::Vector", align 8
  %238 = alloca i32, align 4
  %239 = alloca %"class.P3D::Shape", align 8
  %240 = alloca %"struct.P3D::CFrameTemplate", align 8
  %241 = alloca double, align 8
  %242 = alloca double, align 8
  %243 = alloca double, align 8
  %244 = alloca %"struct.P3D::PartProperties", align 16
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::allocator.30", align 1
  %247 = alloca i32, align 4
  %248 = alloca %"class.P3D::Shape", align 8
  %249 = alloca %"class.P3D::GlobalCFrame", align 8
  %250 = alloca %"struct.P3D::PartProperties", align 16
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::allocator.30", align 1
  %253 = alloca i32, align 4
  %254 = alloca %"class.P3D::Shape", align 8
  %255 = alloca %"class.P3D::GlobalCFrame", align 8
  %256 = alloca %"struct.P3D::PartProperties", align 16
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::allocator.30", align 1
  %259 = alloca i32, align 4
  %260 = alloca %"struct.P3D::CFrameTemplate", align 8
  %261 = alloca double, align 8
  %262 = alloca double, align 8
  %263 = alloca double, align 8
  %264 = alloca %"struct.P3D::Vector", align 8
  %265 = alloca %"struct.P3D::Vector", align 8
  %266 = alloca i32, align 4
  %267 = alloca %"class.P3D::Shape", align 8
  %268 = alloca %"class.P3D::GlobalCFrame", align 8
  %269 = alloca %"struct.P3D::PartProperties", align 16
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::allocator.30", align 1
  %272 = alloca i32, align 4
  %273 = alloca %"class.P3D::Shape", align 8
  %274 = alloca %"class.P3D::GlobalCFrame", align 8
  %275 = alloca %"struct.P3D::PartProperties", align 16
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator.30", align 1
  %278 = alloca i32, align 4
  %279 = alloca %"struct.P3D::AttachedPart", align 8
  %280 = alloca double, align 8
  %281 = alloca double, align 8
  %282 = alloca double, align 8
  %283 = alloca %"struct.P3D::AttachedPart", align 8
  %284 = alloca double, align 8
  %285 = alloca double, align 8
  %286 = alloca double, align 8
  %287 = alloca %"class.P3D::Shape", align 8
  %288 = alloca %"class.P3D::GlobalCFrame", align 8
  %289 = alloca %"struct.P3D::PartProperties", align 16
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::allocator.30", align 1
  %292 = alloca i32, align 4
  %293 = alloca %"class.P3D::Shape", align 8
  %294 = alloca %"class.P3D::GlobalCFrame", align 8
  %295 = alloca %"struct.P3D::PartProperties", align 16
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::allocator.30", align 1
  %298 = alloca i32, align 4
  %299 = alloca %"struct.P3D::AttachedPart", align 8
  %300 = alloca double, align 8
  %301 = alloca double, align 8
  %302 = alloca double, align 8
  %303 = alloca %"struct.P3D::AttachedPart", align 8
  %304 = alloca double, align 8
  %305 = alloca double, align 8
  %306 = alloca double, align 8
  %307 = alloca %"class.P3D::Shape", align 8
  %308 = alloca %"class.P3D::GlobalCFrame", align 8
  %309 = alloca %"struct.P3D::PartProperties", align 16
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator.30", align 1
  %312 = alloca i32, align 4
  %313 = alloca %"class.P3D::Shape", align 8
  %314 = alloca %"class.P3D::GlobalCFrame", align 8
  %315 = alloca %"struct.P3D::PartProperties", align 16
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::allocator.30", align 1
  %318 = alloca i32, align 4
  %319 = alloca %"struct.P3D::AttachedPart", align 8
  %320 = alloca double, align 8
  %321 = alloca double, align 8
  %322 = alloca double, align 8
  %323 = alloca %"struct.P3D::AttachedPart", align 8
  %324 = alloca double, align 8
  %325 = alloca double, align 8
  %326 = alloca double, align 8
  %327 = alloca %"class.P3D::Shape", align 8
  %328 = alloca %"class.P3D::GlobalCFrame", align 8
  %329 = alloca %"struct.P3D::PartProperties", align 16
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca %"class.std::allocator.30", align 1
  %332 = alloca i32, align 4
  %333 = alloca %"class.P3D::Shape", align 8
  %334 = alloca %"class.P3D::GlobalCFrame", align 8
  %335 = alloca %"struct.P3D::PartProperties", align 16
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca %"class.std::allocator.30", align 1
  %338 = alloca i32, align 4
  %339 = alloca %"class.P3D::Shape", align 8
  %340 = alloca %"class.P3D::GlobalCFrame", align 8
  %341 = alloca %"struct.P3D::PartProperties", align 16
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator.30", align 1
  %344 = alloca i32, align 4
  %345 = alloca %"class.P3D::Shape", align 8
  %346 = alloca %"class.P3D::GlobalCFrame", align 8
  %347 = alloca %"struct.P3D::PartProperties", align 16
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.std::allocator.30", align 1
  %350 = alloca i32, align 4
  %351 = alloca %"class.P3D::Shape", align 8
  %352 = alloca %"class.P3D::GlobalCFrame", align 8
  %353 = alloca %"struct.P3D::PartProperties", align 16
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::allocator.30", align 1
  %356 = alloca i32, align 4
  %357 = alloca %"struct.P3D::CFrameTemplate", align 8
  %358 = alloca double, align 8
  %359 = alloca double, align 8
  %360 = alloca double, align 8
  %361 = alloca %"struct.P3D::CFrameTemplate", align 8
  %362 = alloca double, align 8
  %363 = alloca double, align 8
  %364 = alloca double, align 8
  %365 = alloca %"struct.P3D::CFrameTemplate", align 8
  %366 = alloca double, align 8
  %367 = alloca double, align 8
  %368 = alloca double, align 8
  %369 = alloca %"struct.P3D::CFrameTemplate", align 8
  %370 = alloca double, align 8
  %371 = alloca double, align 8
  %372 = alloca double, align 8
  %373 = alloca %"struct.P3D::CFrameTemplate", align 8
  %374 = alloca double, align 8
  %375 = alloca double, align 8
  %376 = alloca double, align 8
  %377 = alloca %"struct.P3D::CFrameTemplate", align 8
  %378 = alloca double, align 8
  %379 = alloca double, align 8
  %380 = alloca double, align 8
  %381 = alloca %"struct.P3D::CFrameTemplate", align 8
  %382 = alloca double, align 8
  %383 = alloca double, align 8
  %384 = alloca double, align 8
  %385 = alloca %"struct.P3D::CFrameTemplate", align 8
  %386 = alloca double, align 8
  %387 = alloca double, align 8
  %388 = alloca double, align 8
  %389 = alloca i32, align 4
  %390 = alloca %"class.P3D::intrusive_ptr.88", align 8
  %391 = alloca %"class.P3D::Shape", align 8
  %392 = alloca %"class.P3D::GlobalCFrame", align 8
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator.30", align 1
  %395 = alloca %"class.P3D::Shape", align 8
  %396 = alloca %"class.P3D::GlobalCFrame", align 8
  %397 = alloca %"class.std::__cxx11::basic_string", align 8
  %398 = alloca %"class.std::allocator.30", align 1
  %399 = alloca %"class.P3D::Shape", align 8
  %400 = alloca %"class.P3D::GlobalCFrame", align 8
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::allocator.30", align 1
  %403 = alloca %"class.P3D::Shape", align 8
  %404 = alloca %"class.P3D::GlobalCFrame", align 8
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::allocator.30", align 1
  %407 = alloca %"class.P3D::Shape", align 8
  %408 = alloca %"class.P3D::GlobalCFrame", align 8
  %409 = alloca %"class.std::__cxx11::basic_string", align 8
  %410 = alloca %"class.std::allocator.30", align 1
  %411 = alloca %"struct.P3D::CFrameTemplate", align 8
  %412 = alloca %"struct.P3D::Vector", align 8
  %413 = alloca %"struct.P3D::CFrameTemplate", align 8
  %414 = alloca %"struct.P3D::Vector", align 8
  %415 = alloca %"struct.P3D::CFrameTemplate", align 8
  %416 = alloca %"struct.P3D::Vector", align 8
  %417 = alloca %"struct.P3D::CFrameTemplate", align 8
  %418 = alloca %"struct.P3D::Vector", align 8
  %419 = alloca %"struct.P3D::CFrameTemplate", align 8
  %420 = alloca %"struct.P3D::Vector", align 8
  %421 = alloca %"struct.P3D::CFrameTemplate", align 8
  %422 = alloca %"struct.P3D::Vector", align 8
  %423 = alloca %"struct.P3D::CFrameTemplate", align 8
  %424 = alloca %"struct.P3D::Vector", align 8
  %425 = alloca %"struct.P3D::CFrameTemplate", align 8
  %426 = alloca %"struct.P3D::Vector", align 8
  %427 = alloca %"class.P3D::Shape", align 8
  %428 = alloca %"class.P3D::GlobalCFrame", align 8
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.std::allocator.30", align 1
  %431 = alloca i32, align 4
  %432 = alloca %"class.P3D::Shape", align 8
  %433 = alloca %"class.P3D::GlobalCFrame", align 8
  %434 = alloca %"class.std::__cxx11::basic_string", align 8
  %435 = alloca %"class.std::allocator.30", align 1
  %436 = alloca i32, align 4
  %437 = alloca %"struct.P3D::CFrameTemplate", align 8
  %438 = alloca %"struct.P3D::Vector", align 8
  %439 = alloca %"struct.P3D::CFrameTemplate", align 8
  %440 = alloca %"struct.P3D::Vector", align 8
  %441 = alloca %"class.P3D::Shape", align 8
  %442 = alloca %"class.P3D::GlobalCFrame", align 8
  %443 = alloca %"class.std::__cxx11::basic_string", align 8
  %444 = alloca %"class.std::allocator.30", align 1
  %445 = alloca i32, align 4
  %446 = alloca %"class.P3D::Shape", align 8
  %447 = alloca %"class.P3D::GlobalCFrame", align 8
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::allocator.30", align 1
  %450 = alloca i32, align 4
  %451 = alloca %"struct.P3D::CFrameTemplate", align 8
  %452 = alloca %"struct.P3D::Vector", align 8
  %453 = alloca %"struct.P3D::CFrameTemplate", align 8
  %454 = alloca %"struct.P3D::Vector", align 8
  %455 = alloca %"class.P3D::Shape", align 8
  %456 = alloca %"class.P3D::GlobalCFrame", align 8
  %457 = alloca %"class.std::__cxx11::basic_string", align 8
  %458 = alloca %"class.std::allocator.30", align 1
  %459 = alloca i32, align 4
  %460 = alloca %"class.P3D::Shape", align 8
  %461 = alloca %"class.P3D::GlobalCFrame", align 8
  %462 = alloca %"class.std::__cxx11::basic_string", align 8
  %463 = alloca %"class.std::allocator.30", align 1
  %464 = alloca i32, align 4
  %465 = alloca %"class.P3D::Shape", align 8
  %466 = alloca %"class.P3D::GlobalCFrame", align 8
  %467 = alloca %"class.std::__cxx11::basic_string", align 8
  %468 = alloca %"class.std::allocator.30", align 1
  %469 = alloca i32, align 4
  %470 = alloca %"class.P3D::Shape", align 8
  %471 = alloca %"class.P3D::GlobalCFrame", align 8
  %472 = alloca %"class.std::__cxx11::basic_string", align 8
  %473 = alloca %"class.std::allocator.30", align 1
  %474 = alloca i32, align 4
  %475 = alloca %"class.P3D::Shape", align 8
  %476 = alloca %"class.P3D::GlobalCFrame", align 8
  %477 = alloca %"class.std::__cxx11::basic_string", align 8
  %478 = alloca %"class.std::allocator.30", align 1
  %479 = alloca i32, align 4
  %480 = alloca %"struct.P3D::CFrameTemplate", align 8
  %481 = alloca double, align 8
  %482 = alloca double, align 8
  %483 = alloca double, align 8
  %484 = alloca %"struct.P3D::CFrameTemplate", align 8
  %485 = alloca double, align 8
  %486 = alloca double, align 8
  %487 = alloca double, align 8
  %488 = alloca %"struct.P3D::CFrameTemplate", align 8
  %489 = alloca double, align 8
  %490 = alloca double, align 8
  %491 = alloca double, align 8
  %492 = alloca %"struct.P3D::CFrameTemplate", align 8
  %493 = alloca double, align 8
  %494 = alloca double, align 8
  %495 = alloca double, align 8
  %496 = alloca %"struct.P3D::CFrameTemplate", align 8
  %497 = alloca double, align 8
  %498 = alloca double, align 8
  %499 = alloca double, align 8
  %500 = alloca %"struct.P3D::CFrameTemplate", align 8
  %501 = alloca double, align 8
  %502 = alloca double, align 8
  %503 = alloca double, align 8
  %504 = alloca %"struct.P3D::CFrameTemplate", align 8
  %505 = alloca double, align 8
  %506 = alloca double, align 8
  %507 = alloca double, align 8
  %508 = alloca %"struct.P3D::CFrameTemplate", align 8
  %509 = alloca double, align 8
  %510 = alloca double, align 8
  %511 = alloca double, align 8
  %512 = alloca %"struct.P3D::Vector", align 8
  %513 = alloca %"class.P3D::Shape", align 8
  %514 = alloca %"class.P3D::GlobalCFrame", align 8
  %515 = alloca %"class.std::__cxx11::basic_string", align 8
  %516 = alloca %"class.std::allocator.30", align 1
  %517 = alloca i32, align 4
  %518 = alloca %"class.P3D::Shape", align 8
  %519 = alloca %"class.P3D::GlobalCFrame", align 8
  %520 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %521 = alloca %"class.std::__cxx11::basic_string", align 8
  %522 = alloca %"class.std::allocator.30", align 1
  %523 = alloca i32, align 4
  %524 = alloca %"class.P3D::Shape", align 8
  %525 = alloca %"class.P3D::GlobalCFrame", align 8
  %526 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %527 = alloca %"class.std::__cxx11::basic_string", align 8
  %528 = alloca %"class.std::allocator.30", align 1
  %529 = alloca i32, align 4
  %530 = alloca %"class.P3D::ConstraintGroup", align 8
  %531 = alloca %"struct.P3D::Vector", align 8
  %532 = alloca %"struct.P3D::Vector", align 8
  %533 = alloca %"struct.P3D::Vector", align 8
  %534 = alloca %"struct.P3D::Vector", align 8
  %535 = alloca %"struct.P3D::Vector", align 8
  %536 = alloca %"struct.P3D::Vector", align 8
  %537 = alloca %"struct.P3D::Vector", align 8
  %538 = alloca %"struct.P3D::Vector", align 8
  %539 = alloca %"class.P3D::Shape", align 8
  %540 = alloca %"class.P3D::GlobalCFrame", align 8
  %541 = alloca %"class.std::__cxx11::basic_string", align 8
  %542 = alloca %"class.std::allocator.30", align 1
  %543 = alloca i32, align 4
  %544 = alloca %"class.P3D::Shape", align 8
  %545 = alloca %"class.P3D::GlobalCFrame", align 8
  %546 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %547 = alloca %"class.std::__cxx11::basic_string", align 8
  %548 = alloca %"class.std::allocator.30", align 1
  %549 = alloca i32, align 4
  %550 = alloca %"class.P3D::Shape", align 8
  %551 = alloca %"class.P3D::GlobalCFrame", align 8
  %552 = alloca %"class.P3D::MatrixRotationTemplate", align 8
  %553 = alloca %"class.std::__cxx11::basic_string", align 8
  %554 = alloca %"class.std::allocator.30", align 1
  %555 = alloca i32, align 4
  %556 = alloca %"class.P3D::ConstraintGroup", align 8
  %557 = alloca %"struct.P3D::Vector", align 8
  %558 = alloca %"struct.P3D::Vector", align 8
  %559 = alloca %"struct.P3D::Vector", align 8
  %560 = alloca %"struct.P3D::Vector", align 8
  %561 = alloca %"struct.P3D::Vector", align 8
  %562 = alloca %"struct.P3D::Vector", align 8
  %563 = alloca %"class.P3D::Shape", align 8
  %564 = alloca %"class.P3D::Polyhedron", align 8
  %565 = alloca %"struct.P3D::Graphics::Comp::Mesh", align 8
  %566 = alloca %"struct.P3D::Graphics::ExtendedTriangleMesh", align 8
  %567 = alloca %"class.P3D::Polyhedron", align 8
  %568 = alloca %"class.P3D::GlobalCFrame", align 8
  %569 = alloca %"struct.P3D::PositionTemplate", align 8
  %570 = alloca %"class.std::__cxx11::basic_string", align 8
  %571 = alloca %"class.std::allocator.30", align 1
  %572 = alloca i32, align 4
  %573 = alloca [9 x %"struct.P3D::Vector.97"], align 16
  %574 = alloca %"class.P3D::Shape", align 8
  %575 = alloca %"class.P3D::Polyhedron", align 8
  %576 = alloca %"class.P3D::GlobalCFrame", align 8
  %577 = alloca %"struct.P3D::PositionTemplate", align 8
  %578 = alloca %"class.std::__cxx11::basic_string", align 8
  %579 = alloca %"class.std::allocator.30", align 1
  %580 = alloca i32, align 4
  %581 = alloca [3 x %"struct.P3D::Vector.97"], align 16
  %582 = alloca %"class.P3D::Shape", align 8
  %583 = alloca %"class.P3D::Polyhedron", align 8
  %584 = alloca %"class.P3D::GlobalCFrame", align 8
  %585 = alloca %"struct.P3D::PositionTemplate", align 8
  %586 = alloca %"class.std::__cxx11::basic_string", align 8
  %587 = alloca %"class.std::allocator.30", align 1
  %588 = alloca i32, align 4
  tail call void @_ZN3P3D11Application15buildFloorWorldERNS0_6ScreenERNS0_11PlayerWorldE(ptr noundef nonnull align 8 dereferenceable(1024) %0, ptr noundef nonnull align 8 dereferenceable(224) %1)
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %3) #14
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %3, double noundef 5.000000e-01, i32 noundef 4)
  %589 = getelementptr inbounds i8, ptr %3, i64 48
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %589, double noundef 5.000000e-01, i32 noundef 6)
          to label %590 unwind label %787

590:                                              ; preds = %2
  %591 = getelementptr inbounds i8, ptr %3, i64 96
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %591, double noundef 5.000000e-01, i32 noundef 8)
          to label %592 unwind label %787

592:                                              ; preds = %590
  %593 = getelementptr inbounds i8, ptr %3, i64 144
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44) %593, double noundef 5.000000e-01, i32 noundef 10)
          to label %594 unwind label %787

594:                                              ; preds = %592
  %595 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %596 unwind label %793

596:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %4, double noundef 1.000000e+00, double noundef 4.900000e-01, double noundef 3.000000e+00)
          to label %597 unwind label %795

597:                                              ; preds = %596
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %5) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %5, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %598 unwind label %797

598:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %6, align 16, !tbaa !5
  %599 = getelementptr inbounds i8, ptr %6, i64 16
  store double 1.000000e+00, ptr %599, align 16, !tbaa !9
  %600 = getelementptr inbounds i8, ptr %6, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %600, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %601 unwind label %799

601:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #14
  store i32 0, ptr %9, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %595, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(96) %5, ptr noundef nonnull align 8 dereferenceable(48) %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %602 unwind label %801

602:                                              ; preds = %601
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %5) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #14
  %603 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %604 unwind label %806

604:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %10, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 3.000000e+00)
          to label %605 unwind label %808

605:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %11) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %11, double noundef 2.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %606 unwind label %810

606:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %12) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %12, align 16, !tbaa !5
  %607 = getelementptr inbounds i8, ptr %12, i64 16
  store double 1.000000e+00, ptr %607, align 16, !tbaa !9
  %608 = getelementptr inbounds i8, ptr %12, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %608, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %609 unwind label %812

609:                                              ; preds = %606
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #14
  store i32 0, ptr %15, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %603, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(96) %11, ptr noundef nonnull align 8 dereferenceable(48) %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %610 unwind label %814

610:                                              ; preds = %609
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %11) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #14
  %611 = getelementptr inbounds i8, ptr %595, i64 200
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEERKj(ptr noundef nonnull align 8 dereferenceable(12) %16, ptr noundef nonnull align 8 dereferenceable(212) %0, ptr noundef nonnull align 4 dereferenceable(4) %611)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #14
  call void @_ZN3P3D8Graphics13ColorTemplateIfEC2Efff(ptr noundef nonnull align 4 dereferenceable(16) %17, float noundef 0x3FB99999A0000000, float noundef 0x3FEE147AE0000000, float noundef 0x3FDF5C2900000000)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #14
  store i32 500, ptr %18, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %19) #14
  store <2 x float> <float 0x3FE99999A0000000, float 5.000000e-01>, ptr %19, align 8, !tbaa !14
  %612 = getelementptr inbounds i8, ptr %19, i64 8
  store float 0x3FC99999A0000000, ptr %612, align 8, !tbaa !16
  %613 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder5lightIJNS_8Graphics13ColorTemplateIfEEiNS0_4Comp5Light11AttenuationEEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %16, ptr noundef nonnull align 4 dereferenceable(16) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(12) %19)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #14
  %614 = load ptr, ptr %1, align 8, !tbaa !18
  %615 = getelementptr inbounds i8, ptr %614, i64 32
  %616 = load ptr, ptr %615, align 8
  invoke void %616(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %595, i32 noundef 0)
          to label %617 unwind label %806

617:                                              ; preds = %610
  %618 = load ptr, ptr %1, align 8, !tbaa !18
  %619 = getelementptr inbounds i8, ptr %618, i64 32
  %620 = load ptr, ptr %619, align 8
  invoke void %620(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %603, i32 noundef 0)
          to label %621 unwind label %806

621:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %21, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %622 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA11_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %21, ptr noundef nonnull align 1 dereferenceable(11) @.str.2)
  %623 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %622)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #14
  store i32 %623, ptr %20, align 4, !tbaa !12
  %624 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %625 unwind label %819

625:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %22, double noundef 1.000000e+00)
          to label %626 unwind label %821

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %23) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %23, double noundef -1.500000e+01, double noundef 4.000000e+00, double noundef 1.300000e+01)
          to label %627 unwind label %823

627:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %628 unwind label %825

628:                                              ; preds = %627
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %624, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(96) %23, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %629 unwind label %827

629:                                              ; preds = %628
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %23) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %26, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %630 unwind label %832

630:                                              ; preds = %629
  %631 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %632 unwind label %834

632:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %27) #14
  %633 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %634 unwind label %836

634:                                              ; preds = %632
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %633, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %635 unwind label %838

635:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %28) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #14
  store double 0.000000e+00, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #14
  store double 0.000000e+00, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store double 0.000000e+00, ptr %31, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %28, ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined8IDENTITYE)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %32) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  store double 0.000000e+00, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #14
  store double 0.000000e+00, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  store double 0.000000e+00, ptr %35, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %32, ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %636 unwind label %840

636:                                              ; preds = %635
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %27, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %633, ptr noundef nonnull align 8 dereferenceable(96) %28, ptr noundef nonnull align 8 dereferenceable(96) %32, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %637 unwind label %840

637:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %638 unwind label %842

638:                                              ; preds = %637
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %631, ptr noundef nonnull align 8 dereferenceable(200) %27, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %639 unwind label %844

639:                                              ; preds = %638
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %27) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %32) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %27) #14
  %640 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %641 unwind label %834

641:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %38) #14
  %642 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %643 unwind label %849

643:                                              ; preds = %641
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %642, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %644 unwind label %851

644:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %39) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #14
  store double 0.000000e+00, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #14
  store double 0.000000e+00, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #14
  store double 0.000000e+00, ptr %42, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %39, ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %43) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #14
  store double 0.000000e+00, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #14
  store double 0.000000e+00, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #14
  store double 0.000000e+00, ptr %46, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %43, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %645 unwind label %853

645:                                              ; preds = %644
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %38, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %642, ptr noundef nonnull align 8 dereferenceable(96) %39, ptr noundef nonnull align 8 dereferenceable(96) %43, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %646 unwind label %853

646:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %647 unwind label %855

647:                                              ; preds = %646
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %640, ptr noundef nonnull align 8 dereferenceable(200) %38, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %648 unwind label %857

648:                                              ; preds = %647
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %38) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %38) #14
  %649 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %650 unwind label %834

650:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %49) #14
  %651 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %652 unwind label %862

652:                                              ; preds = %650
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %651, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %653 unwind label %864

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %50) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #14
  store double 0.000000e+00, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #14
  store double 0.000000e+00, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #14
  store double 0.000000e+00, ptr %53, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %50, ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %54) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  store double 0.000000e+00, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  store double 0.000000e+00, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #14
  store double 0.000000e+00, ptr %57, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %54, ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %654 unwind label %866

654:                                              ; preds = %653
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %49, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %651, ptr noundef nonnull align 8 dereferenceable(96) %50, ptr noundef nonnull align 8 dereferenceable(96) %54, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %655 unwind label %866

655:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %656 unwind label %868

656:                                              ; preds = %655
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %649, ptr noundef nonnull align 8 dereferenceable(200) %49, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %657 unwind label %870

657:                                              ; preds = %656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %49) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %49) #14
  %658 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %659 unwind label %834

659:                                              ; preds = %657
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %60) #14
  %660 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %661 unwind label %875

661:                                              ; preds = %659
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %660, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %662 unwind label %877

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %61) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #14
  store double 0.000000e+00, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #14
  store double 0.000000e+00, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #14
  store double 0.000000e+00, ptr %64, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %61, ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_180E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %65) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #14
  store double 0.000000e+00, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #14
  store double 0.000000e+00, ptr %67, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #14
  store double 0.000000e+00, ptr %68, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %65, ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %663 unwind label %879

663:                                              ; preds = %662
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %60, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %660, ptr noundef nonnull align 8 dereferenceable(96) %61, ptr noundef nonnull align 8 dereferenceable(96) %65, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %664 unwind label %879

664:                                              ; preds = %663
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %665 unwind label %881

665:                                              ; preds = %664
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %658, ptr noundef nonnull align 8 dereferenceable(200) %60, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %666 unwind label %883

666:                                              ; preds = %665
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %60) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %65) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %61) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %60) #14
  %667 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %668 unwind label %834

668:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %71) #14
  %669 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %670 unwind label %888

670:                                              ; preds = %668
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %669, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %671 unwind label %890

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %72) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #14
  store double 0.000000e+00, ptr %73, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #14
  store double 0.000000e+00, ptr %74, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #14
  store double 0.000000e+00, ptr %75, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %72, ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %76) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #14
  store double 0.000000e+00, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %78) #14
  store double 0.000000e+00, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #14
  store double 0.000000e+00, ptr %79, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %76, ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %672 unwind label %892

672:                                              ; preds = %671
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %71, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %669, ptr noundef nonnull align 8 dereferenceable(96) %72, ptr noundef nonnull align 8 dereferenceable(96) %76, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %673 unwind label %892

673:                                              ; preds = %672
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %81) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %81)
          to label %674 unwind label %894

674:                                              ; preds = %673
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %667, ptr noundef nonnull align 8 dereferenceable(200) %71, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %675 unwind label %896

675:                                              ; preds = %674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %71) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %76) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %72) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %71) #14
  %676 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %677 unwind label %834

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %82) #14
  %678 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %679 unwind label %901

679:                                              ; preds = %677
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %678, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %680 unwind label %903

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %83) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %84) #14
  store double 0.000000e+00, ptr %84, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #14
  store double 0.000000e+00, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #14
  store double 0.000000e+00, ptr %86, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %83, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %87) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #14
  store double 0.000000e+00, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #14
  store double 0.000000e+00, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %90) #14
  store double 0.000000e+00, ptr %90, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %87, ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %681 unwind label %905

681:                                              ; preds = %680
  invoke void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200) %82, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(200) %624, ptr noundef nonnull %678, ptr noundef nonnull align 8 dereferenceable(96) %83, ptr noundef nonnull align 8 dereferenceable(96) %87, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE)
          to label %682 unwind label %905

682:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.9, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %683 unwind label %907

683:                                              ; preds = %682
  invoke void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %676, ptr noundef nonnull align 8 dereferenceable(200) %82, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %684 unwind label %909

684:                                              ; preds = %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %82) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %87) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %83) #14
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %82) #14
  %685 = load ptr, ptr %1, align 8, !tbaa !18
  %686 = getelementptr inbounds i8, ptr %685, i64 32
  %687 = load ptr, ptr %686, align 8
  invoke void %687(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %624, i32 noundef 0)
          to label %688 unwind label %834

688:                                              ; preds = %684
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  %689 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %690 unwind label %917

690:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %93, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %691 unwind label %919

691:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %94) #14
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %94, double noundef 0.000000e+00, double noundef 7.000000e+00, double noundef 0.000000e+00, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4X_90E)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %692 unwind label %921

692:                                              ; preds = %691
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %97) #14
  store i32 0, ptr %97, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %689, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 8 dereferenceable(96) %94, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 4 dereferenceable(4) %97)
          to label %693 unwind label %923

693:                                              ; preds = %692
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %94) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #14
  %694 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %695 unwind label %927

695:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %98, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %696 unwind label %929

696:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %99) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %99)
          to label %697 unwind label %931

697:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %101) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %698 unwind label %933

698:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %102) #14
  store i32 0, ptr %102, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %694, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(96) %99, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 4 dereferenceable(4) %102)
          to label %699 unwind label %935

699:                                              ; preds = %698
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %102) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %99) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #14
  %700 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %701 unwind label %940

701:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %103, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %702 unwind label %942

702:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %104) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %104)
          to label %703 unwind label %944

703:                                              ; preds = %702
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %106) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %704 unwind label %946

704:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %107) #14
  store i32 0, ptr %107, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %700, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(96) %104, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %705 unwind label %948

705:                                              ; preds = %704
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %107) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %104) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #14
  %706 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %707 unwind label %940

707:                                              ; preds = %705
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %706, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+00)
          to label %708 unwind label %953

708:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %108) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #14
  store double 5.000000e-01, ptr %109, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #14
  store double 0.000000e+00, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %111) #14
  store double 0.000000e+00, ptr %111, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %108, ptr noundef nonnull align 8 dereferenceable(8) %109, ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %112) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %113) #14
  store double -5.000000e-01, ptr %113, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %114) #14
  store double 0.000000e+00, ptr %114, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %115) #14
  store double 0.000000e+00, ptr %115, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %112, ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %689, ptr noundef nonnull %694, ptr noundef nonnull %706, ptr noundef nonnull align 8 dereferenceable(96) %108, ptr noundef nonnull align 8 dereferenceable(96) %112)
          to label %709 unwind label %955

709:                                              ; preds = %708
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %112) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %108) #14
  %710 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %711 unwind label %940

711:                                              ; preds = %709
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %710, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+00)
          to label %712 unwind label %957

712:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %116) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %117) #14
  store double -5.000000e-01, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %118) #14
  store double 0.000000e+00, ptr %118, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %119) #14
  store double 0.000000e+00, ptr %119, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %116, ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %120) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %121) #14
  store double -5.000000e-01, ptr %121, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %122) #14
  store double 0.000000e+00, ptr %122, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #14
  store double 0.000000e+00, ptr %123, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %120, ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %689, ptr noundef nonnull %700, ptr noundef nonnull %710, ptr noundef nonnull align 8 dereferenceable(96) %116, ptr noundef nonnull align 8 dereferenceable(96) %120)
          to label %713 unwind label %959

713:                                              ; preds = %712
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %120) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %116) #14
  %714 = load ptr, ptr %1, align 8, !tbaa !18
  %715 = getelementptr inbounds i8, ptr %714, i64 32
  %716 = load ptr, ptr %715, align 8
  invoke void %716(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %689, i32 noundef 0)
          to label %717 unwind label %940

717:                                              ; preds = %713
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %124) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %124, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0.000000e+00) #14
  %718 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %689)
          to label %719 unwind label %961

719:                                              ; preds = %717
  %720 = getelementptr inbounds i8, ptr %718, i64 368
  %721 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3P3D15TaylorExpansionINS_6VectorIdLm3EEELm2EEixEm(ptr noundef nonnull align 8 dereferenceable(48) %720, i64 noundef 0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %721, ptr noundef nonnull align 8 dereferenceable(24) %124, i64 24, i1 false), !tbaa.struct !20
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %124) #14
  %722 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %723 unwind label %963

723:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %125, double noundef 2.000000e+00)
          to label %724 unwind label %.thread886

724:                                              ; preds = %723
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %126) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %126, double noundef 1.000000e+01, double noundef 3.000000e+00, double noundef 1.000000e+01)
          to label %725 unwind label %.thread890

725:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %127) #14
  store <2 x double> <double 1.000000e+00, double 3.000000e-01>, ptr %127, align 16, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %127, i64 16
  store double 0x3FE6666666666666, ptr %726, align 16, !tbaa !9
  %727 = getelementptr inbounds i8, ptr %127, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %727, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %728 unwind label %967

728:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %130) #14
  store i32 0, ptr %130, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %722, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(96) %126, ptr noundef nonnull align 8 dereferenceable(48) %127, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 4 dereferenceable(4) %130)
          to label %729 unwind label %969

729:                                              ; preds = %728
  %730 = load ptr, ptr %1, align 8, !tbaa !18
  %731 = getelementptr inbounds i8, ptr %730, i64 32
  %732 = load ptr, ptr %731, align 8
  invoke void %732(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %722, i32 noundef 0)
          to label %733 unwind label %969

733:                                              ; preds = %729
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %130) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %127) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %126) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #14
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %131) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %133) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %133, double noundef 1.200000e+01, double noundef 3.000000e+00, double noundef 1.400000e+01) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %134) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %134, double noundef 2.000000e+01, double noundef 8.000000e+00, double noundef 2.000000e+01) #14
  call void @_ZN3P3D14BoundsTemplateINS_3FixILl32EEEEC2ERKNS_16PositionTemplateIS2_EES7_(ptr noundef nonnull align 8 dereferenceable(48) %132, ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull align 8 dereferenceable(24) %134) #14
  invoke void @_ZN3P3D11Application12WorldBuilder14buildHollowBoxENS_14BoundsTemplateINS_3FixILl32EEEEEd(ptr dead_on_unwind nonnull writable sret(%"struct.P3D::Application::WorldBuilder::HollowBoxParts") align 8 %131, ptr noundef nonnull byval(%"struct.P3D::BoundsTemplate") align 8 %132, double noundef 3.000000e-01)
          to label %734 unwind label %973

734:                                              ; preds = %733
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %134) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %133) #14
  %735 = getelementptr inbounds i8, ptr %131, i64 32
  %736 = load ptr, ptr %735, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %135) #14
  call void @_ZN3P3D8Graphics13ColorTemplateIfEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %136, float noundef 0x3FD99999A0000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00, float noundef 0x3FD3333340000000)
  %737 = load <2 x float>, ptr %136, align 8
  %738 = getelementptr inbounds i8, ptr %136, i64 8
  %739 = load <2 x float>, ptr %738, align 8
  call void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %135, <2 x float> %737, <2 x float> %739, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %736, ptr noundef nonnull align 8 dereferenceable(172) %135)
          to label %740 unwind label %975

740:                                              ; preds = %734
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %135) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %135) #14
  %741 = getelementptr inbounds i8, ptr %131, i64 40
  %742 = load ptr, ptr %741, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %137) #14
  call void @_ZN3P3D8Graphics13ColorTemplateIfEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %138, float noundef 0x3FD99999A0000000, float noundef 0x3FE3333340000000, float noundef 1.000000e+00, float noundef 0x3FD3333340000000)
  %743 = load <2 x float>, ptr %138, align 8
  %744 = getelementptr inbounds i8, ptr %138, i64 8
  %745 = load <2 x float>, ptr %744, align 8
  call void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %137, <2 x float> %743, <2 x float> %745, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %742, ptr noundef nonnull align 8 dereferenceable(172) %137)
          to label %746 unwind label %977

746:                                              ; preds = %740
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %137) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %137) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %139) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %139, double noundef 5.000000e+00, double noundef 1.000000e+00, double noundef 5.000000e+00)
          to label %747 unwind label %979

747:                                              ; preds = %746
  invoke void @_ZN3P3D11Application12WorldBuilder8buildCarERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(96) %139, i32 noundef 0)
          to label %748 unwind label %979

748:                                              ; preds = %747
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %139) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %140) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %141) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %141, double noundef 1.500000e-01, double noundef 0.000000e+00, double noundef 0.000000e+00)
          to label %749 unwind label %981

749:                                              ; preds = %748
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %140, double noundef -1.000000e+01, double noundef 1.000000e+00, double noundef -1.000000e+01, ptr noundef nonnull align 8 dereferenceable(72) %141)
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %140, double noundef 1.500000e+00, i32 noundef 0)
          to label %750 unwind label %981

750:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %141) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %140) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %142) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %143) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %143, double noundef 0.000000e+00, double noundef 1.570750e+00, double noundef -1.500000e-01)
          to label %751 unwind label %983

751:                                              ; preds = %750
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %142, double noundef -1.250000e+01, double noundef 1.000000e+00, double noundef -1.400000e+01, ptr noundef nonnull align 8 dereferenceable(72) %143)
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %142, double noundef 1.500000e+00, i32 noundef 0)
          to label %752 unwind label %983

752:                                              ; preds = %751
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %143) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %142) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %144) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %145) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %145, double noundef -1.500000e-01, double noundef 0.000000e+00, double noundef -0.000000e+00)
          to label %753 unwind label %985

753:                                              ; preds = %752
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %144, double noundef -1.650000e+01, double noundef 1.000000e+00, double noundef -1.150000e+01, ptr noundef nonnull align 8 dereferenceable(72) %145)
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %144, double noundef -1.500000e+00, i32 noundef 0)
          to label %754 unwind label %985

754:                                              ; preds = %753
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %145) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %144) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %146) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %147) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %147, double noundef 0.000000e+00, double noundef 1.570750e+00, double noundef 1.500000e-01)
          to label %755 unwind label %987

755:                                              ; preds = %754
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %146, double noundef -1.400000e+01, double noundef 1.000000e+00, double noundef -7.500000e+00, ptr noundef nonnull align 8 dereferenceable(72) %147)
  invoke void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef 1.500000e+00, double noundef 7.000000e+00, ptr noundef nonnull align 8 dereferenceable(96) %146, double noundef -1.500000e+00, i32 noundef 0)
          to label %756 unwind label %987

756:                                              ; preds = %755
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %147) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %146) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %148) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %149) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %149, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %757 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %149, ptr noundef nonnull align 1 dereferenceable(6) @.str.14)
  %758 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %757)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %149) #14
  store i32 %758, ptr %148, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %150) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %151) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %151, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %759 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %151, ptr noundef nonnull align 1 dereferenceable(10) @.str.15)
  %760 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %759)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %151) #14
  store i32 %760, ptr %150, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %152) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %153) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %153, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %761 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %153, ptr noundef nonnull align 1 dereferenceable(10) @.str.16)
  %762 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %761)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %153) #14
  store i32 %762, ptr %152, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %154) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %155) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %155, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %763 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA8_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %155, ptr noundef nonnull align 1 dereferenceable(8) @.str.17)
  %764 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %763)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %155) #14
  store i32 %764, ptr %154, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %156) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %156, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %765 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA8_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %156, ptr noundef nonnull align 1 dereferenceable(8) @.str.18)
  %766 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %765)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %156) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %157) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %158) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %158, double noundef 0.000000e+00, double noundef 1.500000e+01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %159) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %159, double noundef 7.853750e-01, double noundef 7.853750e-01, double noundef 0.000000e+00)
          to label %767 unwind label %989

767:                                              ; preds = %756
  call void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %157, ptr noundef nonnull align 8 dereferenceable(24) %158, ptr noundef nonnull align 8 dereferenceable(72) %159)
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %159) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %158) #14
  %768 = getelementptr inbounds i8, ptr %163, i64 16
  %769 = getelementptr inbounds i8, ptr %163, i64 24
  %770 = getelementptr inbounds i8, ptr %168, i64 8
  %771 = getelementptr inbounds i8, ptr %167, i64 8
  %772 = getelementptr inbounds i8, ptr %172, i64 16
  %773 = getelementptr inbounds i8, ptr %172, i64 24
  %774 = getelementptr inbounds i8, ptr %179, i64 16
  %775 = getelementptr inbounds i8, ptr %179, i64 24
  %776 = getelementptr inbounds i8, ptr %185, i64 16
  %777 = getelementptr inbounds i8, ptr %185, i64 24
  br label %.preheader964

.preheader964:                                    ; preds = %767, %996
  %.05291007 = phi double [ 0.000000e+00, %767 ], [ %997, %996 ]
  %778 = fadd double %.05291007, -5.000000e+00
  %779 = fdiv double %.05291007, 3.000000e+00
  %780 = fptrunc double %779 to float
  %781 = fadd double %.05291007, 5.000000e+00
  %782 = fadd double %.05291007, -2.000000e+01
  br label %.preheader

783:                                              ; preds = %996
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %188) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %189) #14
  call void @_ZN3P3D11Application13EntityBuilderC2ERNS_6Engine8RegistryImEE(ptr noundef nonnull align 8 dereferenceable(12) %189, ptr noundef nonnull align 8 dereferenceable(212) %0)
  %784 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12) %189, ptr noundef nonnull align 1 dereferenceable(6) @.str.23)
  %785 = call noundef i32 @_ZNK3P3D11Application13EntityBuilder3getEv(ptr noundef nonnull align 8 dereferenceable(12) %784)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %189) #14
  store i32 %785, ptr %188, align 4, !tbaa !12
  %786 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1098 unwind label %1654

787:                                              ; preds = %592, %590, %2
  %.0270 = phi ptr [ %593, %592 ], [ %591, %590 ], [ %589, %2 ]
  %788 = landingpad { ptr, i32 }
          cleanup
  br label %789

789:                                              ; preds = %787, %789
  %790 = phi ptr [ %.0270, %787 ], [ %791, %789 ]
  %791 = getelementptr inbounds i8, ptr %790, i64 -48
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %791) #14
  %792 = icmp eq ptr %791, %3
  br i1 %792, label %.loopexit, label %789

793:                                              ; preds = %594
  %794 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

795:                                              ; preds = %596
  %796 = landingpad { ptr, i32 }
          cleanup
  br label %805

797:                                              ; preds = %597
  %798 = landingpad { ptr, i32 }
          cleanup
  br label %804

799:                                              ; preds = %598
  %800 = landingpad { ptr, i32 }
          cleanup
  br label %803

801:                                              ; preds = %601
  %802 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #14
  br label %803

803:                                              ; preds = %801, %799
  %.pn = phi { ptr, i32 } [ %802, %801 ], [ %800, %799 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #14
  br label %804

804:                                              ; preds = %803, %797
  %.pn.pn = phi { ptr, i32 } [ %.pn, %803 ], [ %798, %797 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %5) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #14
  br label %805

805:                                              ; preds = %804, %795
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %804 ], [ %796, %795 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #14
  call void @_ZdlPvm(ptr noundef nonnull %595, i64 noundef 208) #16
  br label %.loopexit.loopexit

806:                                              ; preds = %617, %610, %602
  %807 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

808:                                              ; preds = %604
  %809 = landingpad { ptr, i32 }
          cleanup
  br label %818

810:                                              ; preds = %605
  %811 = landingpad { ptr, i32 }
          cleanup
  br label %817

812:                                              ; preds = %606
  %813 = landingpad { ptr, i32 }
          cleanup
  br label %816

814:                                              ; preds = %609
  %815 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #14
  br label %816

816:                                              ; preds = %814, %812
  %.pn553 = phi { ptr, i32 } [ %815, %814 ], [ %813, %812 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %12) #14
  br label %817

817:                                              ; preds = %816, %810
  %.pn553.pn = phi { ptr, i32 } [ %.pn553, %816 ], [ %811, %810 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %11) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #14
  br label %818

818:                                              ; preds = %817, %808
  %.pn553.pn.pn = phi { ptr, i32 } [ %.pn553.pn, %817 ], [ %809, %808 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #14
  call void @_ZdlPvm(ptr noundef nonnull %603, i64 noundef 208) #16
  br label %.loopexit.loopexit

819:                                              ; preds = %621
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %916

821:                                              ; preds = %625
  %822 = landingpad { ptr, i32 }
          cleanup
  br label %831

823:                                              ; preds = %626
  %824 = landingpad { ptr, i32 }
          cleanup
  br label %830

825:                                              ; preds = %627
  %826 = landingpad { ptr, i32 }
          cleanup
  br label %829

827:                                              ; preds = %628
  %828 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #14
  br label %829

829:                                              ; preds = %827, %825
  %.pn560 = phi { ptr, i32 } [ %828, %827 ], [ %826, %825 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #14
  br label %830

830:                                              ; preds = %829, %823
  %.pn560.pn = phi { ptr, i32 } [ %.pn560, %829 ], [ %824, %823 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %23) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #14
  br label %831

831:                                              ; preds = %830, %821
  %.pn560.pn.pn = phi { ptr, i32 } [ %.pn560.pn, %830 ], [ %822, %821 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #14
  call void @_ZdlPvm(ptr noundef nonnull %624, i64 noundef 208) #16
  br label %916

832:                                              ; preds = %629
  %833 = landingpad { ptr, i32 }
          cleanup
  br label %915

834:                                              ; preds = %684, %675, %666, %657, %648, %639, %630
  %835 = landingpad { ptr, i32 }
          cleanup
  br label %914

836:                                              ; preds = %632
  %837 = landingpad { ptr, i32 }
          cleanup
  br label %848

838:                                              ; preds = %634
  %839 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %633, i64 noundef 48) #16
  br label %848

840:                                              ; preds = %636, %635
  %841 = landingpad { ptr, i32 }
          cleanup
  br label %847

842:                                              ; preds = %637
  %843 = landingpad { ptr, i32 }
          cleanup
  br label %846

844:                                              ; preds = %638
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #14
  br label %846

846:                                              ; preds = %844, %842
  %.pn564 = phi { ptr, i32 } [ %845, %844 ], [ %843, %842 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %27) #14
  br label %847

847:                                              ; preds = %846, %840
  %.pn564.pn = phi { ptr, i32 } [ %.pn564, %846 ], [ %841, %840 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %32) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %28) #14
  br label %848

848:                                              ; preds = %847, %838, %836
  %.pn564.pn.pn = phi { ptr, i32 } [ %.pn564.pn, %847 ], [ %839, %838 ], [ %837, %836 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %27) #14
  call void @_ZdlPvm(ptr noundef nonnull %631, i64 noundef 208) #16
  br label %914

849:                                              ; preds = %641
  %850 = landingpad { ptr, i32 }
          cleanup
  br label %861

851:                                              ; preds = %643
  %852 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %642, i64 noundef 48) #16
  br label %861

853:                                              ; preds = %645, %644
  %854 = landingpad { ptr, i32 }
          cleanup
  br label %860

855:                                              ; preds = %646
  %856 = landingpad { ptr, i32 }
          cleanup
  br label %859

857:                                              ; preds = %647
  %858 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  br label %859

859:                                              ; preds = %857, %855
  %.pn568 = phi { ptr, i32 } [ %858, %857 ], [ %856, %855 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %38) #14
  br label %860

860:                                              ; preds = %859, %853
  %.pn568.pn = phi { ptr, i32 } [ %.pn568, %859 ], [ %854, %853 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %39) #14
  br label %861

861:                                              ; preds = %860, %851, %849
  %.pn568.pn.pn = phi { ptr, i32 } [ %.pn568.pn, %860 ], [ %852, %851 ], [ %850, %849 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %38) #14
  call void @_ZdlPvm(ptr noundef nonnull %640, i64 noundef 208) #16
  br label %914

862:                                              ; preds = %650
  %863 = landingpad { ptr, i32 }
          cleanup
  br label %874

864:                                              ; preds = %652
  %865 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %651, i64 noundef 48) #16
  br label %874

866:                                              ; preds = %654, %653
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %873

868:                                              ; preds = %655
  %869 = landingpad { ptr, i32 }
          cleanup
  br label %872

870:                                              ; preds = %656
  %871 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #14
  br label %872

872:                                              ; preds = %870, %868
  %.pn572 = phi { ptr, i32 } [ %871, %870 ], [ %869, %868 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %49) #14
  br label %873

873:                                              ; preds = %872, %866
  %.pn572.pn = phi { ptr, i32 } [ %.pn572, %872 ], [ %867, %866 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %54) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %50) #14
  br label %874

874:                                              ; preds = %873, %864, %862
  %.pn572.pn.pn = phi { ptr, i32 } [ %.pn572.pn, %873 ], [ %865, %864 ], [ %863, %862 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %49) #14
  call void @_ZdlPvm(ptr noundef nonnull %649, i64 noundef 208) #16
  br label %914

875:                                              ; preds = %659
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %887

877:                                              ; preds = %661
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %660, i64 noundef 48) #16
  br label %887

879:                                              ; preds = %663, %662
  %880 = landingpad { ptr, i32 }
          cleanup
  br label %886

881:                                              ; preds = %664
  %882 = landingpad { ptr, i32 }
          cleanup
  br label %885

883:                                              ; preds = %665
  %884 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #14
  br label %885

885:                                              ; preds = %883, %881
  %.pn576 = phi { ptr, i32 } [ %884, %883 ], [ %882, %881 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %60) #14
  br label %886

886:                                              ; preds = %885, %879
  %.pn576.pn = phi { ptr, i32 } [ %.pn576, %885 ], [ %880, %879 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %65) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %61) #14
  br label %887

887:                                              ; preds = %886, %877, %875
  %.pn576.pn.pn = phi { ptr, i32 } [ %.pn576.pn, %886 ], [ %878, %877 ], [ %876, %875 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %60) #14
  call void @_ZdlPvm(ptr noundef nonnull %658, i64 noundef 208) #16
  br label %914

888:                                              ; preds = %668
  %889 = landingpad { ptr, i32 }
          cleanup
  br label %900

890:                                              ; preds = %670
  %891 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %669, i64 noundef 48) #16
  br label %900

892:                                              ; preds = %672, %671
  %893 = landingpad { ptr, i32 }
          cleanup
  br label %899

894:                                              ; preds = %673
  %895 = landingpad { ptr, i32 }
          cleanup
  br label %898

896:                                              ; preds = %674
  %897 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #14
  br label %898

898:                                              ; preds = %896, %894
  %.pn580 = phi { ptr, i32 } [ %897, %896 ], [ %895, %894 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %81) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %81) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %71) #14
  br label %899

899:                                              ; preds = %898, %892
  %.pn580.pn = phi { ptr, i32 } [ %.pn580, %898 ], [ %893, %892 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %78) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %76) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %72) #14
  br label %900

900:                                              ; preds = %899, %890, %888
  %.pn580.pn.pn = phi { ptr, i32 } [ %.pn580.pn, %899 ], [ %891, %890 ], [ %889, %888 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %71) #14
  call void @_ZdlPvm(ptr noundef nonnull %667, i64 noundef 208) #16
  br label %914

901:                                              ; preds = %677
  %902 = landingpad { ptr, i32 }
          cleanup
  br label %913

903:                                              ; preds = %679
  %904 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %678, i64 noundef 48) #16
  br label %913

905:                                              ; preds = %681, %680
  %906 = landingpad { ptr, i32 }
          cleanup
  br label %912

907:                                              ; preds = %682
  %908 = landingpad { ptr, i32 }
          cleanup
  br label %911

909:                                              ; preds = %683
  %910 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #14
  br label %911

911:                                              ; preds = %909, %907
  %.pn584 = phi { ptr, i32 } [ %910, %909 ], [ %908, %907 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #14
  call void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200) %82) #14
  br label %912

912:                                              ; preds = %911, %905
  %.pn584.pn = phi { ptr, i32 } [ %.pn584, %911 ], [ %906, %905 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %90) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %87) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %84) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %83) #14
  br label %913

913:                                              ; preds = %912, %903, %901
  %.pn584.pn.pn = phi { ptr, i32 } [ %.pn584.pn, %912 ], [ %904, %903 ], [ %902, %901 ]
  call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %82) #14
  call void @_ZdlPvm(ptr noundef nonnull %676, i64 noundef 208) #16
  br label %914

914:                                              ; preds = %913, %900, %887, %874, %861, %848, %834
  %.pn588 = phi { ptr, i32 } [ %835, %834 ], [ %.pn584.pn.pn, %913 ], [ %.pn580.pn.pn, %900 ], [ %.pn576.pn.pn, %887 ], [ %.pn572.pn.pn, %874 ], [ %.pn568.pn.pn, %861 ], [ %.pn564.pn.pn, %848 ]
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #14
  br label %915

915:                                              ; preds = %914, %832
  %.pn588.pn = phi { ptr, i32 } [ %.pn588, %914 ], [ %833, %832 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #14
  br label %916

916:                                              ; preds = %831, %915, %819
  %.pn588.pn.pn = phi { ptr, i32 } [ %.pn588.pn, %915 ], [ %.pn560.pn.pn, %831 ], [ %820, %819 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #14
  br label %.loopexit.loopexit

917:                                              ; preds = %688
  %918 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

919:                                              ; preds = %690
  %920 = landingpad { ptr, i32 }
          cleanup
  br label %926

921:                                              ; preds = %691
  %922 = landingpad { ptr, i32 }
          cleanup
  br label %925

923:                                              ; preds = %692
  %924 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #14
  br label %925

925:                                              ; preds = %923, %921
  %.pn592 = phi { ptr, i32 } [ %924, %923 ], [ %922, %921 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %94) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #14
  br label %926

926:                                              ; preds = %925, %919
  %.pn592.pn = phi { ptr, i32 } [ %.pn592, %925 ], [ %920, %919 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #14
  call void @_ZdlPvm(ptr noundef nonnull %689, i64 noundef 208) #16
  br label %.loopexit.loopexit

927:                                              ; preds = %693
  %928 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

929:                                              ; preds = %695
  %930 = landingpad { ptr, i32 }
          cleanup
  br label %939

931:                                              ; preds = %696
  %932 = landingpad { ptr, i32 }
          cleanup
  br label %938

933:                                              ; preds = %697
  %934 = landingpad { ptr, i32 }
          cleanup
  br label %937

935:                                              ; preds = %698
  %936 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %102) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #14
  br label %937

937:                                              ; preds = %935, %933
  %.pn595 = phi { ptr, i32 } [ %936, %935 ], [ %934, %933 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #14
  br label %938

938:                                              ; preds = %937, %931
  %.pn595.pn = phi { ptr, i32 } [ %.pn595, %937 ], [ %932, %931 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %99) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #14
  br label %939

939:                                              ; preds = %938, %929
  %.pn595.pn.pn = phi { ptr, i32 } [ %.pn595.pn, %938 ], [ %930, %929 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #14
  call void @_ZdlPvm(ptr noundef nonnull %694, i64 noundef 208) #16
  br label %.loopexit.loopexit

940:                                              ; preds = %713, %709, %705, %699
  %941 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

942:                                              ; preds = %701
  %943 = landingpad { ptr, i32 }
          cleanup
  br label %952

944:                                              ; preds = %702
  %945 = landingpad { ptr, i32 }
          cleanup
  br label %951

946:                                              ; preds = %703
  %947 = landingpad { ptr, i32 }
          cleanup
  br label %950

948:                                              ; preds = %704
  %949 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %107) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #14
  br label %950

950:                                              ; preds = %948, %946
  %.pn599 = phi { ptr, i32 } [ %949, %948 ], [ %947, %946 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %106) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #14
  br label %951

951:                                              ; preds = %950, %944
  %.pn599.pn = phi { ptr, i32 } [ %.pn599, %950 ], [ %945, %944 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %104) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #14
  br label %952

952:                                              ; preds = %951, %942
  %.pn599.pn.pn = phi { ptr, i32 } [ %.pn599.pn, %951 ], [ %943, %942 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #14
  call void @_ZdlPvm(ptr noundef nonnull %700, i64 noundef 208) #16
  br label %.loopexit.loopexit

953:                                              ; preds = %707
  %954 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %706, i64 noundef 48) #16
  br label %.loopexit.loopexit

955:                                              ; preds = %708
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %115) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %114) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %113) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %112) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %111) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %108) #14
  br label %.loopexit.loopexit

957:                                              ; preds = %711
  %958 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %710, i64 noundef 48) #16
  br label %.loopexit.loopexit

959:                                              ; preds = %712
  %960 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %122) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %121) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %120) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %119) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %118) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %117) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %116) #14
  br label %.loopexit.loopexit

961:                                              ; preds = %717
  %962 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %124) #14
  br label %.loopexit.loopexit

963:                                              ; preds = %719
  %964 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

.thread886:                                       ; preds = %723
  %965 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #14
  br label %972

.thread890:                                       ; preds = %724
  %966 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %126) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #14
  br label %972

967:                                              ; preds = %725
  %968 = landingpad { ptr, i32 }
          cleanup
  br label %971

969:                                              ; preds = %729, %728
  %.0525 = phi i1 [ false, %729 ], [ true, %728 ]
  %970 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %130) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #14
  br label %971

971:                                              ; preds = %967, %969
  %.1526 = phi i1 [ %.0525, %969 ], [ true, %967 ]
  %.pn607 = phi { ptr, i32 } [ %970, %969 ], [ %968, %967 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %127) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %126) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #14
  br i1 %.1526, label %972, label %.loopexit.loopexit

972:                                              ; preds = %.thread890, %.thread886, %971
  %.pn607.pn.pn889 = phi { ptr, i32 } [ %965, %.thread886 ], [ %.pn607, %971 ], [ %966, %.thread890 ]
  call void @_ZdlPvm(ptr noundef nonnull %722, i64 noundef 208) #16
  br label %.loopexit.loopexit

973:                                              ; preds = %733
  %974 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %134) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %133) #14
  br label %2325

975:                                              ; preds = %734
  %976 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %135) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %135) #14
  br label %2325

977:                                              ; preds = %740
  %978 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %137) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %137) #14
  br label %2325

979:                                              ; preds = %747, %746
  %980 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %139) #14
  br label %2325

981:                                              ; preds = %749, %748
  %982 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %141) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %140) #14
  br label %2325

983:                                              ; preds = %751, %750
  %984 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %143) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %142) #14
  br label %2325

985:                                              ; preds = %753, %752
  %986 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %145) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %144) #14
  br label %2325

987:                                              ; preds = %755, %754
  %988 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %147) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %146) #14
  br label %2325

989:                                              ; preds = %756
  %990 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %159) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %158) #14
  br label %2324

.preheader:                                       ; preds = %.preheader964, %999
  %.05301006 = phi double [ 0.000000e+00, %.preheader964 ], [ %1000, %999 ]
  %991 = fadd double %.05301006, 1.000000e+01
  %992 = fdiv double %.05301006, 3.000000e+00
  %993 = fptrunc double %992 to float
  %994 = fadd double %.05301006, 1.000000e+00
  %995 = call double @llvm.fmuladd.f64(double %.05301006, double 1.000000e-01, double %.05291007)
  br label %1002

996:                                              ; preds = %999
  %997 = fadd double %.05291007, 1.000010e+00
  %998 = fcmp olt double %997, 3.000000e+00
  br i1 %998, label %.preheader964, label %783, !llvm.loop !26

999:                                              ; preds = %1057
  %1000 = fadd double %.05301006, 1.000010e+00
  %1001 = fcmp olt double %1000, 3.000000e+00
  br i1 %1001, label %.preheader, label %996, !llvm.loop !28

1002:                                             ; preds = %.preheader, %1057
  %.05311005 = phi double [ 0.000000e+00, %.preheader ], [ %1058, %1057 ]
  %1003 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1004 unwind label %1060

1004:                                             ; preds = %1002
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %160, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1005 unwind label %1062

1005:                                             ; preds = %1004
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %161) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %162) #14
  %1006 = fadd double %.05311005, -5.000000e+00
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %162, double noundef %778, double noundef %991, double noundef %1006) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %161, ptr noundef nonnull align 8 dereferenceable(24) %162)
          to label %1007 unwind label %1064

1007:                                             ; preds = %1005
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %163) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %163, align 16, !tbaa !5
  store double 0.000000e+00, ptr %768, align 16, !tbaa !9
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %769, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %165) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %1008 unwind label %1066

1008:                                             ; preds = %1007
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1003, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(96) %161, ptr noundef nonnull align 8 dereferenceable(48) %163, ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 4 dereferenceable(4) %148)
          to label %1009 unwind label %1068

1009:                                             ; preds = %1008
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %165) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %163) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %162) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %161) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #14
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %166) #14
  %1010 = fdiv double %.05311005, 3.000000e+00
  %1011 = fptrunc double %1010 to float
  call void @_ZN3P3D6VectorIfLm4EEC2Effff(ptr noundef nonnull align 4 dereferenceable(16) %168, float noundef %780, float noundef %993, float noundef %1011, float noundef 1.000000e+00) #14
  %1012 = load <2 x float>, ptr %168, align 8
  %1013 = load <2 x float>, ptr %770, align 8
  call void @_ZN3P3D8Graphics13ColorTemplateIfEC2ENS_6VectorIfLm4EEE(ptr noundef nonnull align 4 dereferenceable(16) %167, <2 x float> %1012, <2 x float> %1013)
  %1014 = load <2 x float>, ptr %167, align 8
  %1015 = load <2 x float>, ptr %771, align 8
  call void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172) %166, <2 x float> %1014, <2 x float> %1015, float noundef 0.000000e+00, float noundef 1.000000e+00, float noundef 1.000000e+00)
  invoke void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204) %1003, ptr noundef nonnull align 8 dereferenceable(172) %166)
          to label %1016 unwind label %1073

1016:                                             ; preds = %1009
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %166) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %166) #14
  %1017 = load ptr, ptr %1, align 8, !tbaa !18
  %1018 = getelementptr inbounds i8, ptr %1017, i64 32
  %1019 = load ptr, ptr %1018, align 8
  invoke void %1019(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1003, i32 noundef 0)
          to label %1020 unwind label %1060

1020:                                             ; preds = %1016
  %1021 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1022 unwind label %1060

1022:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %169) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %169, double noundef 5.000000e-01)
          to label %1023 unwind label %.thread893

1023:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %170) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %171) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %171, double noundef %781, double noundef %994, double noundef %1006) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %170, ptr noundef nonnull align 8 dereferenceable(24) %171)
          to label %1024 unwind label %.thread897

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %172) #14
  store <2 x double> <double 1.000000e+00, double 2.000000e-01>, ptr %172, align 16, !tbaa !5
  store double 5.000000e-01, ptr %772, align 16, !tbaa !9
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %773, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %173) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %174) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %174)
          to label %1025 unwind label %1077

1025:                                             ; preds = %1024
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1021, ptr noundef nonnull align 8 dereferenceable(32) %169, ptr noundef nonnull align 8 dereferenceable(96) %170, ptr noundef nonnull align 8 dereferenceable(48) %172, ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef nonnull align 4 dereferenceable(4) %154)
          to label %1026 unwind label %1079

1026:                                             ; preds = %1025
  %1027 = load ptr, ptr %1, align 8, !tbaa !18
  %1028 = getelementptr inbounds i8, ptr %1027, i64 32
  %1029 = load ptr, ptr %1028, align 8
  invoke void %1029(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1021, i32 noundef 0)
          to label %1030 unwind label %1079

1030:                                             ; preds = %1026
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %172) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %171) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %170) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #14
  %1031 = call i32 @rand() #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %175) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %176) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %176, double noundef %995, double noundef %994, double noundef %.05311005) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %175, ptr noundef nonnull align 8 dereferenceable(24) %176)
          to label %1032 unwind label %1083

1032:                                             ; preds = %1030
  %1033 = and i32 %1031, 3
  %1034 = zext nneg i32 %1033 to i64
  %1035 = getelementptr inbounds [4 x %"struct.P3D::Application::WorldBuilder::SpiderFactory"], ptr %3, i64 0, i64 %1034
  invoke void @_ZN3P3D11Application12WorldBuilder13SpiderFactory11buildSpiderERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(44) %1035, ptr noundef nonnull align 8 dereferenceable(96) %175, i32 noundef %766)
          to label %1036 unwind label %1083

1036:                                             ; preds = %1032
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %176) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %175) #14
  %1037 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1038 unwind label %1060

1038:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %177) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %178) #14
  %1039 = fadd double %.05311005, 2.000000e+01
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %178, double noundef %782, double noundef %994, double noundef %1039) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %177, ptr noundef nonnull align 8 dereferenceable(24) %178)
          to label %1040 unwind label %.thread900

1040:                                             ; preds = %1038
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %179) #14
  store <2 x double> <double 1.000000e+00, double 2.000000e-01>, ptr %179, align 16, !tbaa !5
  store double 5.000000e-01, ptr %774, align 16, !tbaa !9
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %775, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %180) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %181) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %181)
          to label %1041 unwind label %.thread904

1041:                                             ; preds = %1040
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1037, ptr noundef nonnull align 8 dereferenceable(32) @_ZN3P3D11Application12WorldBuilder8triangleE, ptr noundef nonnull align 8 dereferenceable(96) %177, ptr noundef nonnull align 8 dereferenceable(48) %179, ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull align 4 dereferenceable(4) %152)
          to label %1042 unwind label %1087

1042:                                             ; preds = %1041
  %1043 = load ptr, ptr %1, align 8, !tbaa !18
  %1044 = getelementptr inbounds i8, ptr %1043, i64 32
  %1045 = load ptr, ptr %1044, align 8
  invoke void %1045(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1037, i32 noundef 0)
          to label %1046 unwind label %1087

1046:                                             ; preds = %1042
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %179) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %177) #14
  %1047 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1048 unwind label %1060

1048:                                             ; preds = %1046
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %182) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %182, double noundef 3.000000e-01, double noundef 1.200000e+00)
          to label %1049 unwind label %.thread907

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %183) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %184) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE15fromEulerAnglesEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %184, double noundef 7.853750e-01, double noundef 7.853750e-01, double noundef 0.000000e+00)
          to label %1050 unwind label %.thread911

1050:                                             ; preds = %1049
  %1051 = fadd double %.05311005, 5.000000e+00
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %183, double noundef %778, double noundef %994, double noundef %1051, ptr noundef nonnull align 8 dereferenceable(72) %184)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %185) #14
  store <2 x double> <double 1.000000e+00, double 2.000000e-01>, ptr %185, align 16, !tbaa !5
  store double 5.000000e-01, ptr %776, align 16, !tbaa !9
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %777, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %186) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %187) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull @.str.22, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %1052 unwind label %1092

1052:                                             ; preds = %1050
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1047, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(96) %183, ptr noundef nonnull align 8 dereferenceable(48) %185, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 4 dereferenceable(4) %150)
          to label %1053 unwind label %1094

1053:                                             ; preds = %1052
  %1054 = load ptr, ptr %1, align 8, !tbaa !18
  %1055 = getelementptr inbounds i8, ptr %1054, i64 32
  %1056 = load ptr, ptr %1055, align 8
  invoke void %1056(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1047, i32 noundef 0)
          to label %1057 unwind label %1094

1057:                                             ; preds = %1053
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %187) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %185) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %184) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %183) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #14
  %1058 = fadd double %.05311005, 1.000010e+00
  %1059 = fcmp olt double %1058, 3.000000e+00
  br i1 %1059, label %1002, label %999, !llvm.loop !29

1060:                                             ; preds = %1046, %1036, %1020, %1016, %1002
  %1061 = landingpad { ptr, i32 }
          cleanup
  br label %2324

1062:                                             ; preds = %1004
  %1063 = landingpad { ptr, i32 }
          cleanup
  br label %1072

1064:                                             ; preds = %1005
  %1065 = landingpad { ptr, i32 }
          cleanup
  br label %1071

1066:                                             ; preds = %1007
  %1067 = landingpad { ptr, i32 }
          cleanup
  br label %1070

1068:                                             ; preds = %1008
  %1069 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #14
  br label %1070

1070:                                             ; preds = %1068, %1066
  %.pn865 = phi { ptr, i32 } [ %1069, %1068 ], [ %1067, %1066 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %165) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %163) #14
  br label %1071

1071:                                             ; preds = %1070, %1064
  %.pn865.pn = phi { ptr, i32 } [ %.pn865, %1070 ], [ %1065, %1064 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %162) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %161) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #14
  br label %1072

1072:                                             ; preds = %1071, %1062
  %.pn865.pn.pn = phi { ptr, i32 } [ %.pn865.pn, %1071 ], [ %1063, %1062 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #14
  call void @_ZdlPvm(ptr noundef nonnull %1003, i64 noundef 208) #16
  br label %2324

1073:                                             ; preds = %1009
  %1074 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D8Graphics4Comp8MaterialD2Ev(ptr noundef nonnull align 8 dereferenceable(172) %166) #14
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %166) #14
  br label %2324

.thread893:                                       ; preds = %1022
  %1075 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #14
  br label %1082

.thread897:                                       ; preds = %1023
  %1076 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %171) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %170) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #14
  br label %1082

1077:                                             ; preds = %1024
  %1078 = landingpad { ptr, i32 }
          cleanup
  br label %1081

1079:                                             ; preds = %1026, %1025
  %.0532 = phi i1 [ false, %1026 ], [ true, %1025 ]
  %1080 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #14
  br label %1081

1081:                                             ; preds = %1077, %1079
  %.1533 = phi i1 [ %.0532, %1079 ], [ true, %1077 ]
  %.pn869 = phi { ptr, i32 } [ %1080, %1079 ], [ %1078, %1077 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %172) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %171) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %170) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %169) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %169) #14
  br i1 %.1533, label %1082, label %2324

1082:                                             ; preds = %.thread897, %.thread893, %1081
  %.pn869.pn.pn896 = phi { ptr, i32 } [ %1075, %.thread893 ], [ %.pn869, %1081 ], [ %1076, %.thread897 ]
  call void @_ZdlPvm(ptr noundef nonnull %1021, i64 noundef 208) #16
  br label %2324

1083:                                             ; preds = %1032, %1030
  %1084 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %176) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %175) #14
  br label %2324

.thread900:                                       ; preds = %1038
  %1085 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %177) #14
  br label %1089

.thread904:                                       ; preds = %1040
  %1086 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %179) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %177) #14
  br label %1089

1087:                                             ; preds = %1041, %1042
  %.0536 = phi i1 [ false, %1042 ], [ true, %1041 ]
  %1088 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %181) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %181) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %180) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %179) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %178) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %177) #14
  br i1 %.0536, label %1089, label %2324

1089:                                             ; preds = %.thread904, %.thread900, %1087
  %.pn873.pn903 = phi { ptr, i32 } [ %1085, %.thread900 ], [ %1088, %1087 ], [ %1086, %.thread904 ]
  call void @_ZdlPvm(ptr noundef nonnull %1037, i64 noundef 208) #16
  br label %2324

.thread907:                                       ; preds = %1048
  %1090 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #14
  br label %1097

.thread911:                                       ; preds = %1049
  %1091 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %184) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %183) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #14
  br label %1097

1092:                                             ; preds = %1050
  %1093 = landingpad { ptr, i32 }
          cleanup
  br label %1096

1094:                                             ; preds = %1053, %1052
  %.0539 = phi i1 [ false, %1053 ], [ true, %1052 ]
  %1095 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #14
  br label %1096

1096:                                             ; preds = %1092, %1094
  %.1540 = phi i1 [ %.0539, %1094 ], [ true, %1092 ]
  %.pn876 = phi { ptr, i32 } [ %1095, %1094 ], [ %1093, %1092 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %187) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %186) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %185) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %184) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %183) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #14
  br i1 %.1540, label %1097, label %2324

1097:                                             ; preds = %.thread911, %.thread907, %1096
  %.pn876.pn.pn910 = phi { ptr, i32 } [ %1090, %.thread907 ], [ %.pn876, %1096 ], [ %1091, %.thread911 ]
  call void @_ZdlPvm(ptr noundef nonnull %1047, i64 noundef 208) #16
  br label %2324

1098:                                             ; preds = %783
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %190) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %190, double noundef 2.000000e+00, double noundef 1.500000e+00, double noundef 0x3FE6666666666666)
          to label %1099 unwind label %1656

1099:                                             ; preds = %1098
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %191) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %191, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.000000e+01)
          to label %1100 unwind label %1658

1100:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %192) #14
  store <2 x double> <double 1.000000e+00, double 0x3FE6666666666666>, ptr %192, align 16, !tbaa !5
  %1101 = getelementptr inbounds i8, ptr %192, i64 16
  store double 3.000000e-01, ptr %1101, align 16, !tbaa !9
  %1102 = getelementptr inbounds i8, ptr %192, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1102, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %193) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %194) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %194)
          to label %1103 unwind label %1660

1103:                                             ; preds = %1100
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %786, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(96) %191, ptr noundef nonnull align 8 dereferenceable(48) %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 4 dereferenceable(4) %188)
          to label %1104 unwind label %1662

1104:                                             ; preds = %1103
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %194) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %192) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %191) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #14
  %1105 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1106 unwind label %1667

1106:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %195, double noundef 1.500000e+00, double noundef 1.200000e+00, double noundef 9.000000e-01)
          to label %1107 unwind label %1669

1107:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %196) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %196, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.400000e+01)
          to label %1108 unwind label %1671

1108:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %197) #14
  store <2 x double> <double 1.000000e+00, double 0x3FE6666666666666>, ptr %197, align 16, !tbaa !5
  %1109 = getelementptr inbounds i8, ptr %197, i64 16
  store double 3.000000e-01, ptr %1109, align 16, !tbaa !9
  %1110 = getelementptr inbounds i8, ptr %197, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1110, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1111 unwind label %1673

1111:                                             ; preds = %1108
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1105, ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull align 8 dereferenceable(96) %196, ptr noundef nonnull align 8 dereferenceable(48) %197, ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull align 4 dereferenceable(4) %188)
          to label %1112 unwind label %1675

1112:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %197) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %196) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #14
  %1113 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1114 unwind label %1680

1114:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %200, double noundef 2.000000e+00, double noundef 1.500000e+00, double noundef 0x3FE6666666666666)
          to label %1115 unwind label %1682

1115:                                             ; preds = %1114
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %201) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %201, double noundef 1.000000e+01, double noundef 2.000000e+00, double noundef -1.800000e+01)
          to label %1116 unwind label %1684

1116:                                             ; preds = %1115
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %202) #14
  store <2 x double> <double 1.000000e+00, double 0x3FE6666666666666>, ptr %202, align 16, !tbaa !5
  %1117 = getelementptr inbounds i8, ptr %202, i64 16
  store double 3.000000e-01, ptr %1117, align 16, !tbaa !9
  %1118 = getelementptr inbounds i8, ptr %202, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1118, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %204) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1119 unwind label %1686

1119:                                             ; preds = %1116
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1113, ptr noundef nonnull align 8 dereferenceable(32) %200, ptr noundef nonnull align 8 dereferenceable(96) %201, ptr noundef nonnull align 8 dereferenceable(48) %202, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 4 dereferenceable(4) %188)
          to label %1120 unwind label %1688

1120:                                             ; preds = %1119
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %202) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %201) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #14
  %1121 = load ptr, ptr %1, align 8, !tbaa !18
  %1122 = getelementptr inbounds i8, ptr %1121, i64 32
  %1123 = load ptr, ptr %1122, align 8
  invoke void %1123(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %786, i32 noundef 0)
          to label %1124 unwind label %1680

1124:                                             ; preds = %1120
  %1125 = load ptr, ptr %1, align 8, !tbaa !18
  %1126 = getelementptr inbounds i8, ptr %1125, i64 32
  %1127 = load ptr, ptr %1126, align 8
  invoke void %1127(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1105, i32 noundef 0)
          to label %1128 unwind label %1680

1128:                                             ; preds = %1124
  %1129 = load ptr, ptr %1, align 8, !tbaa !18
  %1130 = getelementptr inbounds i8, ptr %1129, i64 32
  %1131 = load ptr, ptr %1130, align 8
  invoke void %1131(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1113, i32 noundef 0)
          to label %1132 unwind label %1680

1132:                                             ; preds = %1128
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %205) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %205) #14
  %1133 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #15
          to label %1134 unwind label %1693

1134:                                             ; preds = %1132
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %206, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -2.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %207, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 2.000000e+00) #14
  call void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1133, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %206, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %207)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %205, ptr noundef nonnull %786, ptr noundef nonnull %1105, ptr noundef nonnull %1133)
          to label %1135 unwind label %1693

1135:                                             ; preds = %1134
  %1136 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #15
          to label %1137 unwind label %1693

1137:                                             ; preds = %1135
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %208, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -2.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %209, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 2.000000e+00) #14
  call void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1136, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %208, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %209)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %205, ptr noundef nonnull %1105, ptr noundef nonnull %1113, ptr noundef nonnull %1136)
          to label %1138 unwind label %1693

1138:                                             ; preds = %1137
  %1139 = getelementptr inbounds i8, ptr %1, i64 104
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1139, ptr noundef nonnull align 8 dereferenceable(24) %205)
          to label %1140 unwind label %1693

1140:                                             ; preds = %1138
  %1141 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1142 unwind label %1695

1142:                                             ; preds = %1140
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %210, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1143 unwind label %1697

1143:                                             ; preds = %1142
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %211) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %211, double noundef 7.000000e+00, double noundef 1.000000e+00, double noundef 5.000000e+00)
          to label %1144 unwind label %1699

1144:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %212) #14
  store <2 x double> <double 1.300000e+00, double 1.200000e+00>, ptr %212, align 16, !tbaa !5
  %1145 = getelementptr inbounds i8, ptr %212, i64 16
  store double 1.100000e+00, ptr %1145, align 16, !tbaa !9
  %1146 = getelementptr inbounds i8, ptr %212, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1146, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %213) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %214) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %214)
          to label %1147 unwind label %1701

1147:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %215) #14
  store i32 0, ptr %215, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1141, ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(96) %211, ptr noundef nonnull align 8 dereferenceable(48) %212, ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 4 dereferenceable(4) %215)
          to label %1148 unwind label %1703

1148:                                             ; preds = %1147
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %215) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %214) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %212) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %211) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #14
  %1149 = load ptr, ptr %1, align 8, !tbaa !18
  %1150 = getelementptr inbounds i8, ptr %1149, i64 32
  %1151 = load ptr, ptr %1150, align 8
  invoke void %1151(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1141, i32 noundef 0)
          to label %1152 unwind label %1695

1152:                                             ; preds = %1148
  %1153 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1154 unwind label %1708

1154:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %216, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1155 unwind label %1710

1155:                                             ; preds = %1154
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %217) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %217, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1156 unwind label %1712

1156:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %218) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %218, align 16, !tbaa !5
  %1157 = getelementptr inbounds i8, ptr %218, i64 16
  store double 1.000000e+00, ptr %1157, align 16, !tbaa !9
  %1158 = getelementptr inbounds i8, ptr %218, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1158, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %220) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %1159 unwind label %1714

1159:                                             ; preds = %1156
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %221) #14
  store i32 0, ptr %221, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1153, ptr noundef nonnull align 8 dereferenceable(32) %216, ptr noundef nonnull align 8 dereferenceable(96) %217, ptr noundef nonnull align 8 dereferenceable(48) %218, ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull align 4 dereferenceable(4) %221)
          to label %1160 unwind label %1716

1160:                                             ; preds = %1159
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %221) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %218) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %217) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #14
  %1161 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1162 unwind label %1721

1162:                                             ; preds = %1160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %222) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %222, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1163 unwind label %1723

1163:                                             ; preds = %1162
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %223) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %223)
          to label %1164 unwind label %1725

1164:                                             ; preds = %1163
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %224) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %224, align 16, !tbaa !5
  %1165 = getelementptr inbounds i8, ptr %224, i64 16
  store double 1.000000e+00, ptr %1165, align 16, !tbaa !9
  %1166 = getelementptr inbounds i8, ptr %224, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1166, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %225) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %226) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %226)
          to label %1167 unwind label %1727

1167:                                             ; preds = %1164
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %227) #14
  store i32 0, ptr %227, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1161, ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(96) %223, ptr noundef nonnull align 8 dereferenceable(48) %224, ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull align 4 dereferenceable(4) %227)
          to label %1168 unwind label %1729

1168:                                             ; preds = %1167
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %227) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %226) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %224) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %223) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #14
  %1169 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #15
          to label %1170 unwind label %1721

1170:                                             ; preds = %1168
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1169, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1169) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %228) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %229) #14
  store double 1.000000e+00, ptr %229, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %230) #14
  store double 0.000000e+00, ptr %230, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %231) #14
  store double 0.000000e+00, ptr %231, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %228, ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull align 8 dereferenceable(8) %231)
          to label %1171 unwind label %1734

1171:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %232) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %233) #14
  store double 0.000000e+00, ptr %233, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %234) #14
  store double 0.000000e+00, ptr %234, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %235) #14
  store double 0.000000e+00, ptr %235, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %232, ptr noundef nonnull align 8 dereferenceable(8) %233, ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef nonnull align 8 dereferenceable(8) %235)
          to label %1172 unwind label %1736

1172:                                             ; preds = %1171
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1153, ptr noundef nonnull %1161, ptr noundef nonnull %1169, ptr noundef nonnull align 8 dereferenceable(96) %228, ptr noundef nonnull align 8 dereferenceable(96) %232)
          to label %1173 unwind label %1736

1173:                                             ; preds = %1172
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %233) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %232) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %230) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %229) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %228) #14
  %1174 = load ptr, ptr %1, align 8, !tbaa !18
  %1175 = getelementptr inbounds i8, ptr %1174, i64 32
  %1176 = load ptr, ptr %1175, align 8
  invoke void %1176(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1153, i32 noundef 0)
          to label %1177 unwind label %1721

1177:                                             ; preds = %1173
  %1178 = load ptr, ptr %1, align 8, !tbaa !18
  %1179 = getelementptr inbounds i8, ptr %1178, i64 32
  %1180 = load ptr, ptr %1179, align 8
  invoke void %1180(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1161, i32 noundef 0)
          to label %1181 unwind label %1721

1181:                                             ; preds = %1177
  %1182 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %1153)
          to label %1183 unwind label %1721

1183:                                             ; preds = %1181
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %237) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %237, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %238) #14
  store i32 1, ptr %238, align 4, !tbaa !12
  call void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind nonnull writable sret(%"struct.P3D::Vector") align 8 %236, ptr noundef nonnull align 8 dereferenceable(24) %237, ptr noundef nonnull align 4 dereferenceable(4) %238) #14
  invoke void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416) %1182, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %236)
          to label %1184 unwind label %1739

1184:                                             ; preds = %1183
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %238) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %237) #14
  %1185 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1186 unwind label %1741

1186:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %239) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %239, double noundef 5.000000e-01, double noundef 5.000000e-01, double noundef 5.000000e-01)
          to label %1187 unwind label %1743

1187:                                             ; preds = %1186
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %240) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %241) #14
  store double -5.000000e-01, ptr %241, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %242) #14
  store double 5.000000e-01, ptr %242, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %243) #14
  store double 5.000000e-01, ptr %243, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %240, ptr noundef nonnull align 8 dereferenceable(8) %241, ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull align 8 dereferenceable(8) %243)
          to label %1188 unwind label %1745

1188:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %244) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %244, align 16, !tbaa !5
  %1189 = getelementptr inbounds i8, ptr %244, i64 16
  store double 1.000000e+00, ptr %1189, align 16, !tbaa !9
  %1190 = getelementptr inbounds i8, ptr %244, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1190, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %245) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %246) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %246)
          to label %1191 unwind label %1747

1191:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %247) #14
  store i32 0, ptr %247, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeEPS1_RKNS_14CFrameTemplateIdEERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1185, ptr noundef nonnull align 8 dereferenceable(32) %239, ptr noundef nonnull %1153, ptr noundef nonnull align 8 dereferenceable(96) %240, ptr noundef nonnull align 8 dereferenceable(48) %244, ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 4 dereferenceable(4) %247)
          to label %1192 unwind label %1749

1192:                                             ; preds = %1191
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %247) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %246) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %244) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %240) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #14
  %1193 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1194 unwind label %1754

1194:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %248, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1195 unwind label %1756

1195:                                             ; preds = %1194
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %249) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %249, double noundef -3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1196 unwind label %1758

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %250) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %250, align 16, !tbaa !5
  %1197 = getelementptr inbounds i8, ptr %250, i64 16
  store double 1.000000e+00, ptr %1197, align 16, !tbaa !9
  %1198 = getelementptr inbounds i8, ptr %250, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1198, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %251) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %252) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %252)
          to label %1199 unwind label %1760

1199:                                             ; preds = %1196
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %253) #14
  store i32 0, ptr %253, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1193, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef nonnull align 8 dereferenceable(96) %249, ptr noundef nonnull align 8 dereferenceable(48) %250, ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull align 4 dereferenceable(4) %253)
          to label %1200 unwind label %1762

1200:                                             ; preds = %1199
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %253) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %250) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %249) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #14
  %1201 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1202 unwind label %1767

1202:                                             ; preds = %1200
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %254) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %254, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1203 unwind label %1769

1203:                                             ; preds = %1202
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %255) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %255)
          to label %1204 unwind label %1771

1204:                                             ; preds = %1203
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %256) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %256, align 16, !tbaa !5
  %1205 = getelementptr inbounds i8, ptr %256, i64 16
  store double 1.000000e+00, ptr %1205, align 16, !tbaa !9
  %1206 = getelementptr inbounds i8, ptr %256, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1206, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %257) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %258) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %258)
          to label %1207 unwind label %1773

1207:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %259) #14
  store i32 0, ptr %259, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1201, ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef nonnull align 8 dereferenceable(96) %255, ptr noundef nonnull align 8 dereferenceable(48) %256, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull align 4 dereferenceable(4) %259)
          to label %1208 unwind label %1775

1208:                                             ; preds = %1207
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %259) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %258) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %256) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %255) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %254) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %260) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %261) #14
  store double 1.000000e+00, ptr %261, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %262) #14
  store double 0.000000e+00, ptr %262, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %263) #14
  store double 0.000000e+00, ptr %263, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %260, ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull align 8 dereferenceable(8) %262, ptr noundef nonnull align 8 dereferenceable(8) %263)
          to label %1209 unwind label %1780

1209:                                             ; preds = %1208
  invoke void @_ZN3P3D4Part6attachEPS0_RKNS_14CFrameTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(200) %1193, ptr noundef nonnull %1201, ptr noundef nonnull align 8 dereferenceable(96) %260)
          to label %1210 unwind label %1780

1210:                                             ; preds = %1209
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %262) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %261) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %260) #14
  %1211 = load ptr, ptr %1, align 8, !tbaa !18
  %1212 = getelementptr inbounds i8, ptr %1211, i64 32
  %1213 = load ptr, ptr %1212, align 8
  invoke void %1213(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1193, i32 noundef 0)
          to label %1214 unwind label %1767

1214:                                             ; preds = %1210
  %1215 = load ptr, ptr %1, align 8, !tbaa !18
  %1216 = getelementptr inbounds i8, ptr %1215, i64 32
  %1217 = load ptr, ptr %1216, align 8
  invoke void %1217(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1201, i32 noundef 0)
          to label %1218 unwind label %1767

1218:                                             ; preds = %1214
  %1219 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %1193)
          to label %1220 unwind label %1767

1220:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %265) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %265, double noundef 1.000000e+00, double noundef 5.000000e-01, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %266) #14
  store i32 1, ptr %266, align 4, !tbaa !12
  call void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind nonnull writable sret(%"struct.P3D::Vector") align 8 %264, ptr noundef nonnull align 8 dereferenceable(24) %265, ptr noundef nonnull align 4 dereferenceable(4) %266) #14
  invoke void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416) %1219, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %264)
          to label %1221 unwind label %1782

1221:                                             ; preds = %1220
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %266) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %265) #14
  %1222 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1223 unwind label %1784

1223:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %267) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %267, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1224 unwind label %1786

1224:                                             ; preds = %1223
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %268) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %268, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1225 unwind label %1788

1225:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %269) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %269, align 16, !tbaa !5
  %1226 = getelementptr inbounds i8, ptr %269, i64 16
  store double 1.000000e+00, ptr %1226, align 16, !tbaa !9
  %1227 = getelementptr inbounds i8, ptr %269, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1227, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %270) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %271) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %271)
          to label %1228 unwind label %1790

1228:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %272) #14
  store i32 0, ptr %272, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1222, ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef nonnull align 8 dereferenceable(96) %268, ptr noundef nonnull align 8 dereferenceable(48) %269, ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef nonnull align 4 dereferenceable(4) %272)
          to label %1229 unwind label %1792

1229:                                             ; preds = %1228
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %272) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %271) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %269) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %268) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #14
  %1230 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1231 unwind label %1797

1231:                                             ; preds = %1229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %273) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %273, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 1.000000e+00)
          to label %1232 unwind label %1799

1232:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %274) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %274)
          to label %1233 unwind label %1801

1233:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %275) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %275, align 16, !tbaa !5
  %1234 = getelementptr inbounds i8, ptr %275, i64 16
  store double 1.000000e+00, ptr %1234, align 16, !tbaa !9
  %1235 = getelementptr inbounds i8, ptr %275, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1235, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %276) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %277) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull @.str.32, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %1236 unwind label %1803

1236:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %278) #14
  store i32 0, ptr %278, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1230, ptr noundef nonnull align 8 dereferenceable(32) %273, ptr noundef nonnull align 8 dereferenceable(96) %274, ptr noundef nonnull align 8 dereferenceable(48) %275, ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull align 4 dereferenceable(4) %278)
          to label %1237 unwind label %1805

1237:                                             ; preds = %1236
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %278) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %275) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %274) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #14
  %1238 = load ptr, ptr %1, align 8, !tbaa !18
  %1239 = getelementptr inbounds i8, ptr %1238, i64 32
  %1240 = load ptr, ptr %1239, align 8
  invoke void %1240(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1222, i32 noundef 0)
          to label %1241 unwind label %1797

1241:                                             ; preds = %1237
  %1242 = load ptr, ptr %1, align 8, !tbaa !18
  %1243 = getelementptr inbounds i8, ptr %1242, i64 32
  %1244 = load ptr, ptr %1243, align 8
  invoke void %1244(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1230, i32 noundef 0)
          to label %1245 unwind label %1797

1245:                                             ; preds = %1241
  %1246 = invoke noalias noundef nonnull dereferenceable(232) ptr @_Znwm(i64 noundef 232) #15
          to label %1247 unwind label %1797

1247:                                             ; preds = %1245
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %279) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %280) #14
  store double 1.000000e+00, ptr %280, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %281) #14
  store double 0.000000e+00, ptr %281, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %282) #14
  store double 0.000000e+00, ptr %282, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %279, ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull align 8 dereferenceable(8) %282)
          to label %1248 unwind label %.thread914

1248:                                             ; preds = %1247
  %1249 = getelementptr inbounds i8, ptr %279, i64 96
  store ptr %1222, ptr %1249, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %283) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %284) #14
  store double 0.000000e+00, ptr %284, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %285) #14
  store double 0.000000e+00, ptr %285, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %286) #14
  store double 0.000000e+00, ptr %286, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %283, ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %286)
          to label %1250 unwind label %.thread918

1250:                                             ; preds = %1248
  %1251 = getelementptr inbounds i8, ptr %283, i64 96
  store ptr %1230, ptr %1251, align 8, !tbaa !30
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %1246, ptr noundef nonnull align 8 dereferenceable(104) %279, ptr noundef nonnull align 8 dereferenceable(104) %283, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %1252 unwind label %.thread918

1252:                                             ; preds = %1250
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1246)
          to label %1253 unwind label %1811

1253:                                             ; preds = %1252
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %286) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %283) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %281) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %279) #14
  %1254 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1255 unwind label %1813

1255:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %287, double noundef 2.000000e+00, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %1256 unwind label %1815

1256:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %288) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %288, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1257 unwind label %1817

1257:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %289) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %289, align 16, !tbaa !5
  %1258 = getelementptr inbounds i8, ptr %289, i64 16
  store double 1.000000e+00, ptr %1258, align 16, !tbaa !9
  %1259 = getelementptr inbounds i8, ptr %289, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1259, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %290) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %291) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull @.str.33, ptr noundef nonnull align 1 dereferenceable(1) %291)
          to label %1260 unwind label %1819

1260:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %292) #14
  store i32 0, ptr %292, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1254, ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull align 8 dereferenceable(96) %288, ptr noundef nonnull align 8 dereferenceable(48) %289, ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull align 4 dereferenceable(4) %292)
          to label %1261 unwind label %1821

1261:                                             ; preds = %1260
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %292) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %289) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %288) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #14
  %1262 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1263 unwind label %1826

1263:                                             ; preds = %1261
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %293) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %293, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1264 unwind label %1828

1264:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %294) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %294)
          to label %1265 unwind label %1830

1265:                                             ; preds = %1264
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %295) #14
  store <2 x double> <double 2.000000e+00, double 1.000000e+00>, ptr %295, align 16, !tbaa !5
  %1266 = getelementptr inbounds i8, ptr %295, i64 16
  store double 1.000000e+00, ptr %1266, align 16, !tbaa !9
  %1267 = getelementptr inbounds i8, ptr %295, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1267, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %296) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %297) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %297)
          to label %1268 unwind label %1832

1268:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %298) #14
  store i32 0, ptr %298, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1262, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef nonnull align 8 dereferenceable(96) %294, ptr noundef nonnull align 8 dereferenceable(48) %295, ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull align 4 dereferenceable(4) %298)
          to label %1269 unwind label %1834

1269:                                             ; preds = %1268
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %298) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %297) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %295) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %294) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #14
  %1270 = load ptr, ptr %1, align 8, !tbaa !18
  %1271 = getelementptr inbounds i8, ptr %1270, i64 32
  %1272 = load ptr, ptr %1271, align 8
  invoke void %1272(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1254, i32 noundef 0)
          to label %1273 unwind label %1826

1273:                                             ; preds = %1269
  %1274 = load ptr, ptr %1, align 8, !tbaa !18
  %1275 = getelementptr inbounds i8, ptr %1274, i64 32
  %1276 = load ptr, ptr %1275, align 8
  invoke void %1276(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1262, i32 noundef 0)
          to label %1277 unwind label %1826

1277:                                             ; preds = %1273
  %1278 = invoke noalias noundef nonnull dereferenceable(232) ptr @_Znwm(i64 noundef 232) #15
          to label %1279 unwind label %1826

1279:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %299) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %300) #14
  store double 1.000000e+00, ptr %300, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %301) #14
  store double 0.000000e+00, ptr %301, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %302) #14
  store double 0.000000e+00, ptr %302, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %299, ptr noundef nonnull align 8 dereferenceable(8) %300, ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull align 8 dereferenceable(8) %302)
          to label %1280 unwind label %.thread921

1280:                                             ; preds = %1279
  %1281 = getelementptr inbounds i8, ptr %299, i64 96
  store ptr %1254, ptr %1281, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %303) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %304) #14
  store double 0.000000e+00, ptr %304, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %305) #14
  store double 0.000000e+00, ptr %305, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %306) #14
  store double 0.000000e+00, ptr %306, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %303, ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull align 8 dereferenceable(8) %306)
          to label %1282 unwind label %.thread929

1282:                                             ; preds = %1280
  %1283 = getelementptr inbounds i8, ptr %303, i64 96
  store ptr %1262, ptr %1283, align 8, !tbaa !30
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %1278, ptr noundef nonnull align 8 dereferenceable(104) %299, ptr noundef nonnull align 8 dereferenceable(104) %303, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %1284 unwind label %.thread929

1284:                                             ; preds = %1282
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1278)
          to label %1285 unwind label %1840

1285:                                             ; preds = %1284
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %306) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %305) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %303) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %299) #14
  %1286 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1287 unwind label %1842

1287:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %307, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1288 unwind label %1844

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %308) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %308, double noundef 3.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00)
          to label %1289 unwind label %1846

1289:                                             ; preds = %1288
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %309) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %309, align 16, !tbaa !5
  %1290 = getelementptr inbounds i8, ptr %309, i64 16
  store double 1.000000e+00, ptr %1290, align 16, !tbaa !9
  %1291 = getelementptr inbounds i8, ptr %309, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1291, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %310) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %311) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef nonnull @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %1292 unwind label %1848

1292:                                             ; preds = %1289
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %312) #14
  store i32 0, ptr %312, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1286, ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull align 8 dereferenceable(96) %308, ptr noundef nonnull align 8 dereferenceable(48) %309, ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef nonnull align 4 dereferenceable(4) %312)
          to label %1293 unwind label %1850

1293:                                             ; preds = %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %312) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %311) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %309) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %308) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #14
  %1294 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1295 unwind label %1855

1295:                                             ; preds = %1293
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %313) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %313, double noundef 2.000000e+00, double noundef 2.000000e+00, double noundef 2.000000e+00)
          to label %1296 unwind label %1857

1296:                                             ; preds = %1295
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %314) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %314)
          to label %1297 unwind label %1859

1297:                                             ; preds = %1296
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %315) #14
  store <2 x double> <double 1.000000e+00, double 5.000000e-01>, ptr %315, align 16, !tbaa !5
  %1298 = getelementptr inbounds i8, ptr %315, i64 16
  store double 1.000000e+00, ptr %1298, align 16, !tbaa !9
  %1299 = getelementptr inbounds i8, ptr %315, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1299, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %316) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %317) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %317)
          to label %1300 unwind label %1861

1300:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %318) #14
  store i32 0, ptr %318, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1294, ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 8 dereferenceable(96) %314, ptr noundef nonnull align 8 dereferenceable(48) %315, ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull align 4 dereferenceable(4) %318)
          to label %1301 unwind label %1863

1301:                                             ; preds = %1300
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %318) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %317) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %315) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %314) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #14
  %1302 = load ptr, ptr %1, align 8, !tbaa !18
  %1303 = getelementptr inbounds i8, ptr %1302, i64 32
  %1304 = load ptr, ptr %1303, align 8
  invoke void %1304(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1286, i32 noundef 0)
          to label %1305 unwind label %1855

1305:                                             ; preds = %1301
  %1306 = load ptr, ptr %1, align 8, !tbaa !18
  %1307 = getelementptr inbounds i8, ptr %1306, i64 32
  %1308 = load ptr, ptr %1307, align 8
  invoke void %1308(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1294, i32 noundef 0)
          to label %1309 unwind label %1855

1309:                                             ; preds = %1305
  %1310 = invoke noalias noundef nonnull dereferenceable(232) ptr @_Znwm(i64 noundef 232) #15
          to label %1311 unwind label %1855

1311:                                             ; preds = %1309
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %319) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %320) #14
  store double 1.000000e+00, ptr %320, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %321) #14
  store double 0.000000e+00, ptr %321, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %322) #14
  store double 0.000000e+00, ptr %322, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %319, ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull align 8 dereferenceable(8) %322)
          to label %1312 unwind label %.thread932

1312:                                             ; preds = %1311
  %1313 = getelementptr inbounds i8, ptr %319, i64 96
  store ptr %1286, ptr %1313, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %323) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %324) #14
  store double 0.000000e+00, ptr %324, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %325) #14
  store double 0.000000e+00, ptr %325, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %326) #14
  store double 0.000000e+00, ptr %326, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %323, ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef nonnull align 8 dereferenceable(8) %326)
          to label %1314 unwind label %.thread940

1314:                                             ; preds = %1312
  %1315 = getelementptr inbounds i8, ptr %323, i64 96
  store ptr %1294, ptr %1315, align 8, !tbaa !30
  invoke void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232) %1310, ptr noundef nonnull align 8 dereferenceable(104) %319, ptr noundef nonnull align 8 dereferenceable(104) %323, double noundef 1.500000e+01, double noundef 5.000000e-01)
          to label %1316 unwind label %.thread940

1316:                                             ; preds = %1314
  invoke void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1310)
          to label %1317 unwind label %1869

1317:                                             ; preds = %1316
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %325) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %324) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %323) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %319) #14
  %1318 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1319 unwind label %1871

1319:                                             ; preds = %1317
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %327, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1320 unwind label %1873

1320:                                             ; preds = %1319
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %328) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %328, double noundef -3.000000e+00, double noundef 3.000000e+00, double noundef 7.000000e+00)
          to label %1321 unwind label %1875

1321:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %329) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %329, align 16, !tbaa !5
  %1322 = getelementptr inbounds i8, ptr %329, i64 16
  store double 1.000000e+00, ptr %1322, align 16, !tbaa !9
  %1323 = getelementptr inbounds i8, ptr %329, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1323, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %330) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %331) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %331) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %331)
          to label %1324 unwind label %1877

1324:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %332) #14
  store i32 0, ptr %332, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1318, ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull align 8 dereferenceable(96) %328, ptr noundef nonnull align 8 dereferenceable(48) %329, ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull align 4 dereferenceable(4) %332)
          to label %1325 unwind label %1879

1325:                                             ; preds = %1324
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %332) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %331) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %331) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %329) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %328) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #14
  %1326 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1327 unwind label %1884

1327:                                             ; preds = %1325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %333) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %333, double noundef 9.000000e-01, double noundef 9.000000e-01, double noundef 9.000000e-01)
          to label %1328 unwind label %1886

1328:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %334) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %334)
          to label %1329 unwind label %1888

1329:                                             ; preds = %1328
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %335) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %335, align 16, !tbaa !5
  %1330 = getelementptr inbounds i8, ptr %335, i64 16
  store double 1.000000e+00, ptr %1330, align 16, !tbaa !9
  %1331 = getelementptr inbounds i8, ptr %335, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1331, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %336) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %337) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %337)
          to label %1332 unwind label %1890

1332:                                             ; preds = %1329
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %338) #14
  store i32 0, ptr %338, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1326, ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull align 8 dereferenceable(96) %334, ptr noundef nonnull align 8 dereferenceable(48) %335, ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef nonnull align 4 dereferenceable(4) %338)
          to label %1333 unwind label %1892

1333:                                             ; preds = %1332
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %338) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %337) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %336) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %335) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %334) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #14
  %1334 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1335 unwind label %1897

1335:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %339) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %339, double noundef 8.000000e-01, double noundef 8.000000e-01, double noundef 8.000000e-01)
          to label %1336 unwind label %1899

1336:                                             ; preds = %1335
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %340) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %340)
          to label %1337 unwind label %1901

1337:                                             ; preds = %1336
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %341) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %341, align 16, !tbaa !5
  %1338 = getelementptr inbounds i8, ptr %341, i64 16
  store double 1.000000e+00, ptr %1338, align 16, !tbaa !9
  %1339 = getelementptr inbounds i8, ptr %341, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1339, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %343) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %1340 unwind label %1903

1340:                                             ; preds = %1337
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %344) #14
  store i32 0, ptr %344, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1334, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(96) %340, ptr noundef nonnull align 8 dereferenceable(48) %341, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull align 4 dereferenceable(4) %344)
          to label %1341 unwind label %1905

1341:                                             ; preds = %1340
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %344) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %341) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %340) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #14
  %1342 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1343 unwind label %1910

1343:                                             ; preds = %1341
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %345, double noundef 0x3FE6666666666666, double noundef 0x3FE6666666666666, double noundef 0x3FE6666666666666)
          to label %1344 unwind label %1912

1344:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %346) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %346)
          to label %1345 unwind label %1914

1345:                                             ; preds = %1344
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %347) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %347, align 16, !tbaa !5
  %1346 = getelementptr inbounds i8, ptr %347, i64 16
  store double 1.000000e+00, ptr %1346, align 16, !tbaa !9
  %1347 = getelementptr inbounds i8, ptr %347, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1347, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %348) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %349) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull @.str.39, ptr noundef nonnull align 1 dereferenceable(1) %349)
          to label %1348 unwind label %1916

1348:                                             ; preds = %1345
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %350) #14
  store i32 0, ptr %350, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1342, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull align 8 dereferenceable(96) %346, ptr noundef nonnull align 8 dereferenceable(48) %347, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull align 4 dereferenceable(4) %350)
          to label %1349 unwind label %1918

1349:                                             ; preds = %1348
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %350) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %349) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %347) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %346) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #14
  %1350 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1351 unwind label %1923

1351:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %351, double noundef 6.000000e-01, double noundef 6.000000e-01, double noundef 6.000000e-01)
          to label %1352 unwind label %1925

1352:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %352) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %352)
          to label %1353 unwind label %1927

1353:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %353) #14
  store <2 x double> <double 1.000000e+00, double 1.000000e+00>, ptr %353, align 16, !tbaa !5
  %1354 = getelementptr inbounds i8, ptr %353, i64 16
  store double 1.000000e+00, ptr %1354, align 16, !tbaa !9
  %1355 = getelementptr inbounds i8, ptr %353, i64 24
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %1355, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %354) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %355) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %355)
          to label %1356 unwind label %1929

1356:                                             ; preds = %1353
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %356) #14
  store i32 0, ptr %356, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1350, ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(96) %352, ptr noundef nonnull align 8 dereferenceable(48) %353, ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef nonnull align 4 dereferenceable(4) %356)
          to label %1357 unwind label %1931

1357:                                             ; preds = %1356
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %356) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %355) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %353) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %352) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #14
  %1358 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #15
          to label %1359 unwind label %1923

1359:                                             ; preds = %1357
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1358, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1358) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %357) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %358) #14
  store double 1.200000e+00, ptr %358, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %359) #14
  store double 0.000000e+00, ptr %359, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %360) #14
  store double 0.000000e+00, ptr %360, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %357, ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull align 8 dereferenceable(8) %360)
          to label %1360 unwind label %1936

1360:                                             ; preds = %1359
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %361) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %362) #14
  store double 0.000000e+00, ptr %362, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %363) #14
  store double 0.000000e+00, ptr %363, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %364) #14
  store double 0.000000e+00, ptr %364, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %361, ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull align 8 dereferenceable(8) %363, ptr noundef nonnull align 8 dereferenceable(8) %364)
          to label %1361 unwind label %1938

1361:                                             ; preds = %1360
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1326, ptr noundef nonnull %1334, ptr noundef nonnull %1358, ptr noundef nonnull align 8 dereferenceable(96) %357, ptr noundef nonnull align 8 dereferenceable(96) %361)
          to label %1362 unwind label %1938

1362:                                             ; preds = %1361
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %364) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %363) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %362) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %361) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %360) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %359) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %358) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %357) #14
  %1363 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #15
          to label %1364 unwind label %1923

1364:                                             ; preds = %1362
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1363, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1363) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %365) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %366) #14
  store double 1.200000e+00, ptr %366, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %367) #14
  store double 0.000000e+00, ptr %367, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %368) #14
  store double 0.000000e+00, ptr %368, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %365, ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull align 8 dereferenceable(8) %368)
          to label %1365 unwind label %1941

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %369) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %370) #14
  store double 0.000000e+00, ptr %370, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %371) #14
  store double 0.000000e+00, ptr %371, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %372) #14
  store double 0.000000e+00, ptr %372, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %369, ptr noundef nonnull align 8 dereferenceable(8) %370, ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef nonnull align 8 dereferenceable(8) %372)
          to label %1366 unwind label %1943

1366:                                             ; preds = %1365
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1318, ptr noundef nonnull %1326, ptr noundef nonnull %1363, ptr noundef nonnull align 8 dereferenceable(96) %365, ptr noundef nonnull align 8 dereferenceable(96) %369)
          to label %1367 unwind label %1943

1367:                                             ; preds = %1366
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %372) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %371) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %370) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %369) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %368) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %367) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %366) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %365) #14
  %1368 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #15
          to label %1369 unwind label %1923

1369:                                             ; preds = %1367
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1368, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1368) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %373) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %374) #14
  store double 1.200000e+00, ptr %374, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %375) #14
  store double 0.000000e+00, ptr %375, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %376) #14
  store double 0.000000e+00, ptr %376, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %373, ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull align 8 dereferenceable(8) %375, ptr noundef nonnull align 8 dereferenceable(8) %376)
          to label %1370 unwind label %1946

1370:                                             ; preds = %1369
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %377) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %378) #14
  store double 0.000000e+00, ptr %378, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %379) #14
  store double 0.000000e+00, ptr %379, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %380) #14
  store double 0.000000e+00, ptr %380, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %377, ptr noundef nonnull align 8 dereferenceable(8) %378, ptr noundef nonnull align 8 dereferenceable(8) %379, ptr noundef nonnull align 8 dereferenceable(8) %380)
          to label %1371 unwind label %1948

1371:                                             ; preds = %1370
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1334, ptr noundef nonnull %1342, ptr noundef nonnull %1368, ptr noundef nonnull align 8 dereferenceable(96) %373, ptr noundef nonnull align 8 dereferenceable(96) %377)
          to label %1372 unwind label %1948

1372:                                             ; preds = %1371
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %380) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %379) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %378) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %377) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %376) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %375) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %374) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %373) #14
  %1373 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #15
          to label %1374 unwind label %1923

1374:                                             ; preds = %1372
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1373, i8 0, i64 16, i1 false)
  call void @_ZN3P3D15FixedConstraintC2Ev(ptr noundef nonnull align 8 dereferenceable(9) %1373) #14
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %381) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %382) #14
  store double 1.200000e+00, ptr %382, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %383) #14
  store double 0.000000e+00, ptr %383, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %384) #14
  store double 0.000000e+00, ptr %384, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %381, ptr noundef nonnull align 8 dereferenceable(8) %382, ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %384)
          to label %1375 unwind label %1951

1375:                                             ; preds = %1374
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %385) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %386) #14
  store double 0.000000e+00, ptr %386, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %387) #14
  store double 0.000000e+00, ptr %387, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %388) #14
  store double 0.000000e+00, ptr %388, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %385, ptr noundef nonnull align 8 dereferenceable(8) %386, ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef nonnull align 8 dereferenceable(8) %388)
          to label %1376 unwind label %1953

1376:                                             ; preds = %1375
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1342, ptr noundef nonnull %1350, ptr noundef nonnull %1373, ptr noundef nonnull align 8 dereferenceable(96) %381, ptr noundef nonnull align 8 dereferenceable(96) %385)
          to label %1377 unwind label %1953

1377:                                             ; preds = %1376
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %388) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %387) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %386) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %385) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %383) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %382) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %381) #14
  %1378 = load ptr, ptr %1, align 8, !tbaa !18
  %1379 = getelementptr inbounds i8, ptr %1378, i64 32
  %1380 = load ptr, ptr %1379, align 8
  invoke void %1380(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1326, i32 noundef 0)
          to label %1381 unwind label %1923

1381:                                             ; preds = %1377
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %389) #14
  %1382 = call noundef i32 @_ZN3P3D6Engine8RegistryImE6createERKj(ptr noundef nonnull align 8 dereferenceable(212) %0, ptr noundef nonnull align 4 dereferenceable(4) @_ZN3P3D6Engine8RegistryImE11null_entityE) #14
  store i32 %1382, ptr %389, align 4, !tbaa !12
  call void @_ZN3P3D6Engine8RegistryImE3addINS_11Application4Comp4NameEJRA12_KcEEENS_13intrusive_ptrIT_EERKjDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.P3D::intrusive_ptr.88") align 8 %390, ptr noundef nonnull align 8 dereferenceable(212) %0, ptr noundef nonnull align 4 dereferenceable(4) %389, ptr noundef nonnull align 1 dereferenceable(12) @.str.41) #14
  call void @_ZN3P3D13intrusive_ptrINS_11Application4Comp4NameEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %390) #14
  %1383 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1384 unwind label %1956

1384:                                             ; preds = %1381
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %391) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %391, double noundef 1.000000e+00, double noundef 4.000000e-01, double noundef 2.000000e+00)
          to label %1385 unwind label %1958

1385:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %392) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %392, double noundef -6.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00)
          to label %1386 unwind label %1960

1386:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %393) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %394) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %1387 unwind label %1962

1387:                                             ; preds = %1386
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1383, ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef nonnull align 8 dereferenceable(96) %392, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %1388 unwind label %1964

1388:                                             ; preds = %1387
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %394) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %392) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %391) #14
  %1389 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1390 unwind label %1969

1390:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %395) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %395, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %1391 unwind label %1971

1391:                                             ; preds = %1390
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %396) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %396)
          to label %1392 unwind label %1973

1392:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %397) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %398) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %398)
          to label %1393 unwind label %1975

1393:                                             ; preds = %1392
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1389, ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef nonnull align 8 dereferenceable(96) %396, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %397, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %1394 unwind label %1977

1394:                                             ; preds = %1393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %398) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %397) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %396) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %395) #14
  %1395 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1396 unwind label %1982

1396:                                             ; preds = %1394
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %399) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %399, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %1397 unwind label %1984

1397:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %400) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %400)
          to label %1398 unwind label %1986

1398:                                             ; preds = %1397
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %401) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %402) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull @.str.44, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %1399 unwind label %1988

1399:                                             ; preds = %1398
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1395, ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull align 8 dereferenceable(96) %400, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %1400 unwind label %1990

1400:                                             ; preds = %1399
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %402) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %400) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #14
  %1401 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1402 unwind label %1995

1402:                                             ; preds = %1400
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %403) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %403, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %1403 unwind label %1997

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %404) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %404)
          to label %1404 unwind label %1999

1404:                                             ; preds = %1403
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %405) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %406) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull @.str.45, ptr noundef nonnull align 1 dereferenceable(1) %406)
          to label %1405 unwind label %2001

1405:                                             ; preds = %1404
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1401, ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef nonnull align 8 dereferenceable(96) %404, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %1406 unwind label %2003

1406:                                             ; preds = %1405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %406) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %405) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %404) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %403) #14
  %1407 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1408 unwind label %2008

1408:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %407) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %407, double noundef 5.000000e-01, double noundef 2.000000e-01)
          to label %1409 unwind label %2010

1409:                                             ; preds = %1408
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %408) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %408)
          to label %1410 unwind label %2012

1410:                                             ; preds = %1409
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %409) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %410) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull @.str.46, ptr noundef nonnull align 1 dereferenceable(1) %410)
          to label %1411 unwind label %2014

1411:                                             ; preds = %1410
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1407, ptr noundef nonnull align 8 dereferenceable(32) %407, ptr noundef nonnull align 8 dereferenceable(96) %408, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull align 4 dereferenceable(4) %389)
          to label %1412 unwind label %2016

1412:                                             ; preds = %1411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %410) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %409) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %408) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %407) #14
  %1413 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1414 unwind label %2008

1414:                                             ; preds = %1412
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1413, double noundef 1.000000e+01)
          to label %1415 unwind label %2021

1415:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %411) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %412) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %412, double noundef 5.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %411, ptr noundef nonnull align 8 dereferenceable(24) %412, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %413) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %414) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %414, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %413, ptr noundef nonnull align 8 dereferenceable(24) %414, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1383, ptr noundef nonnull %1389, ptr noundef nonnull %1413, ptr noundef nonnull align 8 dereferenceable(96) %411, ptr noundef nonnull align 8 dereferenceable(96) %413)
          to label %1416 unwind label %2023

1416:                                             ; preds = %1415
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %414) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %413) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %412) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %411) #14
  %1417 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1418 unwind label %2008

1418:                                             ; preds = %1416
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1417, double noundef 1.000000e+01)
          to label %1419 unwind label %2025

1419:                                             ; preds = %1418
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %415) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %416) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %416, double noundef 5.500000e-01, double noundef 0.000000e+00, double noundef -1.000000e+00) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %415, ptr noundef nonnull align 8 dereferenceable(24) %416, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %417) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %418) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %418, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %417, ptr noundef nonnull align 8 dereferenceable(24) %418, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1383, ptr noundef nonnull %1401, ptr noundef nonnull %1417, ptr noundef nonnull align 8 dereferenceable(96) %415, ptr noundef nonnull align 8 dereferenceable(96) %417)
          to label %1420 unwind label %2027

1420:                                             ; preds = %1419
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %418) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %417) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %416) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %415) #14
  %1421 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1422 unwind label %2008

1422:                                             ; preds = %1420
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1421, double noundef -1.000000e+01)
          to label %1423 unwind label %2029

1423:                                             ; preds = %1422
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %419) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %420) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %420, double noundef -5.500000e-01, double noundef 0.000000e+00, double noundef 1.000000e+00) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %419, ptr noundef nonnull align 8 dereferenceable(24) %420, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %421) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %422) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %422, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %421, ptr noundef nonnull align 8 dereferenceable(24) %422, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1383, ptr noundef nonnull %1395, ptr noundef nonnull %1421, ptr noundef nonnull align 8 dereferenceable(96) %419, ptr noundef nonnull align 8 dereferenceable(96) %421)
          to label %1424 unwind label %2031

1424:                                             ; preds = %1423
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %422) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %421) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %420) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %419) #14
  %1425 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1426 unwind label %2008

1426:                                             ; preds = %1424
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1425, double noundef -1.000000e+01)
          to label %1427 unwind label %2033

1427:                                             ; preds = %1426
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %423) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %424) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %424, double noundef -5.500000e-01, double noundef 0.000000e+00, double noundef -1.000000e+00) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %423, ptr noundef nonnull align 8 dereferenceable(24) %424, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %425) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %426) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %426, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 1.500000e-01) #14
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %425, ptr noundef nonnull align 8 dereferenceable(24) %426, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5Y_180E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1383, ptr noundef nonnull %1407, ptr noundef nonnull %1425, ptr noundef nonnull align 8 dereferenceable(96) %423, ptr noundef nonnull align 8 dereferenceable(96) %425)
          to label %1428 unwind label %2035

1428:                                             ; preds = %1427
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %426) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %425) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %424) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %423) #14
  %1429 = load ptr, ptr %1, align 8, !tbaa !18
  %1430 = getelementptr inbounds i8, ptr %1429, i64 32
  %1431 = load ptr, ptr %1430, align 8
  invoke void %1431(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1383, i32 noundef 0)
          to label %1432 unwind label %2008

1432:                                             ; preds = %1428
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %389) #14
  %1433 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1434 unwind label %2038

1434:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %427) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %427, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1435 unwind label %2040

1435:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %428) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %428, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 5.000000e+00)
          to label %1436 unwind label %2042

1436:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %429) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %430) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %430)
          to label %1437 unwind label %2044

1437:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %431) #14
  store i32 0, ptr %431, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1433, ptr noundef nonnull align 8 dereferenceable(32) %427, ptr noundef nonnull align 8 dereferenceable(96) %428, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull align 4 dereferenceable(4) %431)
          to label %1438 unwind label %2046

1438:                                             ; preds = %1437
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %431) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %430) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %429) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %428) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %427) #14
  %1439 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1440 unwind label %2051

1440:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %432) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %432, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1441 unwind label %2053

1441:                                             ; preds = %1440
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %433) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %433)
          to label %1442 unwind label %2055

1442:                                             ; preds = %1441
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %434) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %435) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %435)
          to label %1443 unwind label %2057

1443:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %436) #14
  store i32 0, ptr %436, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1439, ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef nonnull align 8 dereferenceable(96) %433, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 4 dereferenceable(4) %436)
          to label %1444 unwind label %2059

1444:                                             ; preds = %1443
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %436) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %435) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %434) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %433) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %432) #14
  %1445 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1446 unwind label %2051

1446:                                             ; preds = %1444
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1445, double noundef 1.000000e+00)
          to label %1447 unwind label %2064

1447:                                             ; preds = %1446
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %437) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %438) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %438, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %437, ptr noundef nonnull align 8 dereferenceable(24) %438)
          to label %1448 unwind label %2066

1448:                                             ; preds = %1447
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %439) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %440) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %440, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef -5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %439, ptr noundef nonnull align 8 dereferenceable(24) %440)
          to label %1449 unwind label %2068

1449:                                             ; preds = %1448
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1433, ptr noundef nonnull %1439, ptr noundef nonnull %1445, ptr noundef nonnull align 8 dereferenceable(96) %437, ptr noundef nonnull align 8 dereferenceable(96) %439)
          to label %1450 unwind label %2068

1450:                                             ; preds = %1449
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %440) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %439) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %438) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %437) #14
  %1451 = load ptr, ptr %1, align 8, !tbaa !18
  %1452 = getelementptr inbounds i8, ptr %1451, i64 32
  %1453 = load ptr, ptr %1452, align 8
  invoke void %1453(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1433, i32 noundef 0)
          to label %1454 unwind label %2051

1454:                                             ; preds = %1450
  %1455 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1456 unwind label %2071

1456:                                             ; preds = %1454
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %441) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %441, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1457 unwind label %2073

1457:                                             ; preds = %1456
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %442) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %442, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef -5.000000e+00)
          to label %1458 unwind label %2075

1458:                                             ; preds = %1457
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %443) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %444) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %444) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %443, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %444)
          to label %1459 unwind label %2077

1459:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %445) #14
  store i32 0, ptr %445, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1455, ptr noundef nonnull align 8 dereferenceable(32) %441, ptr noundef nonnull align 8 dereferenceable(96) %442, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %443, ptr noundef nonnull align 4 dereferenceable(4) %445)
          to label %1460 unwind label %2079

1460:                                             ; preds = %1459
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %445) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %444) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %444) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %443) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %442) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %441) #14
  %1461 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1462 unwind label %2084

1462:                                             ; preds = %1460
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %446) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %446, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1463 unwind label %2086

1463:                                             ; preds = %1462
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %447) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %447)
          to label %1464 unwind label %2088

1464:                                             ; preds = %1463
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %448) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %449) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %1465 unwind label %2090

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %450) #14
  store i32 0, ptr %450, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1461, ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull align 8 dereferenceable(96) %447, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef nonnull align 4 dereferenceable(4) %450)
          to label %1466 unwind label %2092

1466:                                             ; preds = %1465
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %450) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %449) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %447) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #14
  %1467 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %1468 unwind label %2084

1468:                                             ; preds = %1466
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %1467, double noundef 0.000000e+00, double noundef 6.283000e+00, double noundef 1.000000e+00)
          to label %1469 unwind label %2097

1469:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %451) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %452) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %452, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef 5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %451, ptr noundef nonnull align 8 dereferenceable(24) %452)
          to label %1470 unwind label %2099

1470:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %453) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %454) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %454, double noundef 0.000000e+00, double noundef 0.000000e+00, double noundef -5.000000e-01) #14
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(96) %453, ptr noundef nonnull align 8 dereferenceable(24) %454)
          to label %1471 unwind label %2101

1471:                                             ; preds = %1470
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1455, ptr noundef nonnull %1461, ptr noundef nonnull %1467, ptr noundef nonnull align 8 dereferenceable(96) %451, ptr noundef nonnull align 8 dereferenceable(96) %453)
          to label %1472 unwind label %2101

1472:                                             ; preds = %1471
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %454) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %453) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %452) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %451) #14
  %1473 = load ptr, ptr %1, align 8, !tbaa !18
  %1474 = getelementptr inbounds i8, ptr %1473, i64 32
  %1475 = load ptr, ptr %1474, align 8
  invoke void %1475(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1455, i32 noundef 0)
          to label %1476 unwind label %2084

1476:                                             ; preds = %1472
  %1477 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1478 unwind label %2104

1478:                                             ; preds = %1476
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %455) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %455, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1479 unwind label %2106

1479:                                             ; preds = %1478
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %456) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %456, double noundef 0.000000e+00, double noundef 5.000000e+00, double noundef 1.000000e+01)
          to label %1480 unwind label %2108

1480:                                             ; preds = %1479
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %457) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %458) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull @.str.47, ptr noundef nonnull align 1 dereferenceable(1) %458)
          to label %1481 unwind label %2110

1481:                                             ; preds = %1480
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %459) #14
  store i32 0, ptr %459, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1477, ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef nonnull align 8 dereferenceable(96) %456, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef nonnull align 4 dereferenceable(4) %459)
          to label %1482 unwind label %2112

1482:                                             ; preds = %1481
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %459) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %458) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %457) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %456) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %455) #14
  %1483 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1484 unwind label %2117

1484:                                             ; preds = %1482
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %460) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %460, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1485 unwind label %2119

1485:                                             ; preds = %1484
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %461) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %461)
          to label %1486 unwind label %2121

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %462) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %463) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull @.str.48, ptr noundef nonnull align 1 dereferenceable(1) %463)
          to label %1487 unwind label %2123

1487:                                             ; preds = %1486
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %464) #14
  store i32 0, ptr %464, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1483, ptr noundef nonnull align 8 dereferenceable(32) %460, ptr noundef nonnull align 8 dereferenceable(96) %461, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %462, ptr noundef nonnull align 4 dereferenceable(4) %464)
          to label %1488 unwind label %2125

1488:                                             ; preds = %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %464) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %463) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %462) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %461) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %460) #14
  %1489 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1490 unwind label %2130

1490:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %465) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %465, double noundef 1.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1491 unwind label %2132

1491:                                             ; preds = %1490
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %466) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %466)
          to label %1492 unwind label %2134

1492:                                             ; preds = %1491
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %467) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %468) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef nonnull @.str.49, ptr noundef nonnull align 1 dereferenceable(1) %468)
          to label %1493 unwind label %2136

1493:                                             ; preds = %1492
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %469) #14
  store i32 0, ptr %469, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1489, ptr noundef nonnull align 8 dereferenceable(32) %465, ptr noundef nonnull align 8 dereferenceable(96) %466, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %467, ptr noundef nonnull align 4 dereferenceable(4) %469)
          to label %1494 unwind label %2138

1494:                                             ; preds = %1493
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %469) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %468) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %467) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %466) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %465) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %465) #14
  %1495 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1496 unwind label %2143

1496:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %470) #14
  invoke void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %470, double noundef 5.000000e-01, double noundef 1.000000e+00)
          to label %1497 unwind label %2145

1497:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %471) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %471)
          to label %1498 unwind label %2147

1498:                                             ; preds = %1497
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %472) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %473) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %473)
          to label %1499 unwind label %2149

1499:                                             ; preds = %1498
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %474) #14
  store i32 0, ptr %474, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1495, ptr noundef nonnull align 8 dereferenceable(32) %470, ptr noundef nonnull align 8 dereferenceable(96) %471, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %472, ptr noundef nonnull align 4 dereferenceable(4) %474)
          to label %1500 unwind label %2151

1500:                                             ; preds = %1499
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %474) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %473) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %472) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %471) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %470) #14
  %1501 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1502 unwind label %2156

1502:                                             ; preds = %1500
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %475) #14
  invoke void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %475, double noundef 5.000000e-01)
          to label %1503 unwind label %2158

1503:                                             ; preds = %1502
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %476) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %476)
          to label %1504 unwind label %2160

1504:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %477) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %478) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %477, ptr noundef nonnull @.str.51, ptr noundef nonnull align 1 dereferenceable(1) %478)
          to label %1505 unwind label %2162

1505:                                             ; preds = %1504
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %479) #14
  store i32 0, ptr %479, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1501, ptr noundef nonnull align 8 dereferenceable(32) %475, ptr noundef nonnull align 8 dereferenceable(96) %476, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %477, ptr noundef nonnull align 4 dereferenceable(4) %479)
          to label %1506 unwind label %2164

1506:                                             ; preds = %1505
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %479) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %478) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %477) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %476) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %475) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %475) #14
  %1507 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %1508 unwind label %2156

1508:                                             ; preds = %1506
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %1507, double noundef 1.000000e+00, double noundef 3.000000e+00, double noundef 1.000000e+00)
          to label %1509 unwind label %2169

1509:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %480) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %481) #14
  store double 5.000000e-01, ptr %481, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %482) #14
  store double 0.000000e+00, ptr %482, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %483) #14
  store double 0.000000e+00, ptr %483, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %480, ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %484) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %485) #14
  store double -5.000000e-01, ptr %485, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %486) #14
  store double 0.000000e+00, ptr %486, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %487) #14
  store double 0.000000e+00, ptr %487, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %484, ptr noundef nonnull align 8 dereferenceable(8) %485, ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull align 8 dereferenceable(8) %487, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined4Y_90E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1477, ptr noundef nonnull %1483, ptr noundef nonnull %1507, ptr noundef nonnull align 8 dereferenceable(96) %480, ptr noundef nonnull align 8 dereferenceable(96) %484)
          to label %1510 unwind label %2171

1510:                                             ; preds = %1509
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %487) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %486) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %485) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %484) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %483) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %482) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %481) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %480) #14
  %1511 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %1512 unwind label %2156

1512:                                             ; preds = %1510
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %1511, double noundef 1.000000e+00, double noundef 2.000000e+00, double noundef 0x3FE6666666666666)
          to label %1513 unwind label %2173

1513:                                             ; preds = %1512
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %488) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %489) #14
  store double 0.000000e+00, ptr %489, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %490) #14
  store double 5.000000e-01, ptr %490, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %491) #14
  store double 0.000000e+00, ptr %491, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %488, ptr noundef nonnull align 8 dereferenceable(8) %489, ptr noundef nonnull align 8 dereferenceable(8) %490, ptr noundef nonnull align 8 dereferenceable(8) %491, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %492) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %493) #14
  store double 0.000000e+00, ptr %493, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %494) #14
  store double -5.000000e-01, ptr %494, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %495) #14
  store double 0.000000e+00, ptr %495, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %492, ptr noundef nonnull align 8 dereferenceable(8) %493, ptr noundef nonnull align 8 dereferenceable(8) %494, ptr noundef nonnull align 8 dereferenceable(8) %495, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1483, ptr noundef nonnull %1489, ptr noundef nonnull %1511, ptr noundef nonnull align 8 dereferenceable(96) %488, ptr noundef nonnull align 8 dereferenceable(96) %492)
          to label %1514 unwind label %2175

1514:                                             ; preds = %1513
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %495) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %493) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %492) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %491) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %490) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %489) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %488) #14
  %1515 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #15
          to label %1516 unwind label %2156

1516:                                             ; preds = %1514
  invoke void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32) %1515, double noundef 3.000000e+00)
          to label %1517 unwind label %2177

1517:                                             ; preds = %1516
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %496) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %497) #14
  store double 0.000000e+00, ptr %497, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %498) #14
  store double 0.000000e+00, ptr %498, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %499) #14
  store double 5.500000e-01, ptr %499, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %496, ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull align 8 dereferenceable(8) %499)
          to label %1518 unwind label %2179

1518:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %500) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %501) #14
  store double 0.000000e+00, ptr %501, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %502) #14
  store double 0.000000e+00, ptr %502, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %503) #14
  store double -5.500000e-01, ptr %503, align 8, !tbaa !5
  invoke void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_(ptr noundef nonnull align 8 dereferenceable(96) %500, ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef nonnull align 8 dereferenceable(8) %503)
          to label %1519 unwind label %2181

1519:                                             ; preds = %1518
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1483, ptr noundef nonnull %1495, ptr noundef nonnull %1515, ptr noundef nonnull align 8 dereferenceable(96) %496, ptr noundef nonnull align 8 dereferenceable(96) %500)
          to label %1520 unwind label %2181

1520:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %503) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %502) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %501) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %500) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %499) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %498) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %497) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %496) #14
  %1521 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #15
          to label %1522 unwind label %2156

1522:                                             ; preds = %1520
  invoke void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48) %1521, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0x3FE6666666666666)
          to label %1523 unwind label %2184

1523:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %504) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %505) #14
  store double 0.000000e+00, ptr %505, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %506) #14
  store double 5.000000e-01, ptr %506, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %507) #14
  store double 0.000000e+00, ptr %507, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %504, ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef nonnull align 8 dereferenceable(8) %506, ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %508) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %509) #14
  store double 0.000000e+00, ptr %509, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %510) #14
  store double -5.000000e-01, ptr %510, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %511) #14
  store double 0.000000e+00, ptr %511, align 8, !tbaa !5
  call void @_ZN3P3D14CFrameTemplateIdEC2ERKdS3_S3_RKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %508, ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef nonnull align 8 dereferenceable(8) %511, ptr noundef nonnull align 8 dereferenceable(72) @_ZN3P3D22MatrixRotationTemplateIdE10Predefined5X_270E)
  invoke void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200) %1495, ptr noundef nonnull %1501, ptr noundef nonnull %1521, ptr noundef nonnull align 8 dereferenceable(96) %504, ptr noundef nonnull align 8 dereferenceable(96) %508)
          to label %1524 unwind label %2186

1524:                                             ; preds = %1523
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %511) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %510) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %509) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %508) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %507) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %506) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %505) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %504) #14
  %1525 = load ptr, ptr %1, align 8, !tbaa !18
  %1526 = getelementptr inbounds i8, ptr %1525, i64 32
  %1527 = load ptr, ptr %1526, align 8
  invoke void %1527(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1477, i32 noundef 0)
          to label %1528 unwind label %2156

1528:                                             ; preds = %1524
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %512) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %512, double noundef 0.000000e+00, double noundef 2.000000e+00, double noundef 0.000000e+00) #14
  %1529 = invoke noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200) %1477)
          to label %1530 unwind label %2188

1530:                                             ; preds = %1528
  %1531 = getelementptr inbounds i8, ptr %1529, i64 368
  %1532 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3P3D15TaylorExpansionINS_6VectorIdLm3EEELm2EEixEm(ptr noundef nonnull align 8 dereferenceable(48) %1531, i64 noundef 0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1532, ptr noundef nonnull align 8 dereferenceable(24) %512, i64 24, i1 false), !tbaa.struct !20
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %512) #14
  %1533 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1534 unwind label %2190

1534:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %513) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %513, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1535 unwind label %2192

1535:                                             ; preds = %1534
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %514) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %514, double noundef -1.000000e+01, double noundef 5.000000e+00, double noundef -1.000000e+01)
          to label %1536 unwind label %2194

1536:                                             ; preds = %1535
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %515) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %516) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %516)
          to label %1537 unwind label %2196

1537:                                             ; preds = %1536
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %517) #14
  store i32 0, ptr %517, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1533, ptr noundef nonnull align 8 dereferenceable(32) %513, ptr noundef nonnull align 8 dereferenceable(96) %514, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %515, ptr noundef nonnull align 4 dereferenceable(4) %517)
          to label %1538 unwind label %2198

1538:                                             ; preds = %1537
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %517) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %516) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %514) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %513) #14
  %1539 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1540 unwind label %2203

1540:                                             ; preds = %1538
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %518) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %518, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1541 unwind label %2205

1541:                                             ; preds = %1540
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %519) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %520) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %520, double noundef 0x4000C131D5ACB6F5)
          to label %1542 unwind label %2207

1542:                                             ; preds = %1541
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %519, double noundef -1.110000e+01, double noundef 5.000000e+00, double noundef -8.100000e+00, ptr noundef nonnull align 8 dereferenceable(72) %520)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %521) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %522) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %522)
          to label %1543 unwind label %2209

1543:                                             ; preds = %1542
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %523) #14
  store i32 0, ptr %523, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1539, ptr noundef nonnull align 8 dereferenceable(32) %518, ptr noundef nonnull align 8 dereferenceable(96) %519, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull align 4 dereferenceable(4) %523)
          to label %1544 unwind label %2211

1544:                                             ; preds = %1543
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %523) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %521) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %522) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %521) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %520) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %519) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #14
  %1545 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1546 unwind label %2216

1546:                                             ; preds = %1544
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %524) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %524, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1547 unwind label %2218

1547:                                             ; preds = %1546
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %525) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %526) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %526, double noundef 0xC000C131D5ACB6F5)
          to label %1548 unwind label %2220

1548:                                             ; preds = %1547
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %525, double noundef -8.900000e+00, double noundef 5.000000e+00, double noundef -8.100000e+00, ptr noundef nonnull align 8 dereferenceable(72) %526)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %527) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %528) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %528) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %527, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %528)
          to label %1549 unwind label %2222

1549:                                             ; preds = %1548
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %529) #14
  store i32 0, ptr %529, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1545, ptr noundef nonnull align 8 dereferenceable(32) %524, ptr noundef nonnull align 8 dereferenceable(96) %525, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %527, ptr noundef nonnull align 4 dereferenceable(4) %529)
          to label %1550 unwind label %2224

1550:                                             ; preds = %1549
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %529) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %527) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %528) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %528) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %527) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %526) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %525) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %524) #14
  %1551 = load ptr, ptr %1, align 8, !tbaa !18
  %1552 = getelementptr inbounds i8, ptr %1551, i64 32
  %1553 = load ptr, ptr %1552, align 8
  invoke void %1553(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1533, i32 noundef 0)
          to label %1554 unwind label %2216

1554:                                             ; preds = %1550
  %1555 = load ptr, ptr %1, align 8, !tbaa !18
  %1556 = getelementptr inbounds i8, ptr %1555, i64 32
  %1557 = load ptr, ptr %1556, align 8
  invoke void %1557(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1539, i32 noundef 0)
          to label %1558 unwind label %2216

1558:                                             ; preds = %1554
  %1559 = load ptr, ptr %1, align 8, !tbaa !18
  %1560 = getelementptr inbounds i8, ptr %1559, i64 32
  %1561 = load ptr, ptr %1560, align 8
  invoke void %1561(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1545, i32 noundef 0)
          to label %1562 unwind label %2216

1562:                                             ; preds = %1558
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %530) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #14
  %1563 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #15
          to label %1564 unwind label %2229

1564:                                             ; preds = %1562
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %531, double noundef 1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %532, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %533, double noundef -1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %534, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104) %1563, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %531, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %532, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %533, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %534)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %530, ptr noundef nonnull %1533, ptr noundef nonnull %1545, ptr noundef nonnull %1563)
          to label %1565 unwind label %2229

1565:                                             ; preds = %1564
  %1566 = invoke noalias noundef nonnull dereferenceable(104) ptr @_Znwm(i64 noundef 104) #15
          to label %1567 unwind label %2229

1567:                                             ; preds = %1565
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %535, double noundef 1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %536, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %537, double noundef -1.500000e+00, double noundef 0.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %538, double noundef 0.000000e+00, double noundef 1.000000e+00, double noundef 0.000000e+00) #14
  call void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104) %1566, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %535, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %536, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %537, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %538)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %530, ptr noundef nonnull %1539, ptr noundef nonnull %1533, ptr noundef nonnull %1566)
          to label %1568 unwind label %2229

1568:                                             ; preds = %1567
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1139, ptr noundef nonnull align 8 dereferenceable(24) %530)
          to label %1569 unwind label %2229

1569:                                             ; preds = %1568
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %530) #14
  %1570 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1571 unwind label %2231

1571:                                             ; preds = %1569
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %539) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %539, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1572 unwind label %2233

1572:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %540) #14
  invoke void @_ZN3P3D12GlobalCFrameC2Eddd(ptr noundef nonnull align 8 dereferenceable(96) %540, double noundef -1.000000e+01, double noundef 5.000000e+00, double noundef 1.000000e+01)
          to label %1573 unwind label %2235

1573:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %541) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %542) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %541, ptr noundef nonnull @.str.52, ptr noundef nonnull align 1 dereferenceable(1) %542)
          to label %1574 unwind label %2237

1574:                                             ; preds = %1573
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %543) #14
  store i32 0, ptr %543, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1570, ptr noundef nonnull align 8 dereferenceable(32) %539, ptr noundef nonnull align 8 dereferenceable(96) %540, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %541, ptr noundef nonnull align 4 dereferenceable(4) %543)
          to label %1575 unwind label %2239

1575:                                             ; preds = %1574
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %543) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %541) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %542) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %541) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %540) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %539) #14
  %1576 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1577 unwind label %2244

1577:                                             ; preds = %1575
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %544) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %544, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1578 unwind label %2246

1578:                                             ; preds = %1577
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %545) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %546) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %546, double noundef 0x4000C131D5ACB6F5)
          to label %1579 unwind label %2248

1579:                                             ; preds = %1578
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %545, double noundef -1.110000e+01, double noundef 5.000000e+00, double noundef 1.190000e+01, ptr noundef nonnull align 8 dereferenceable(72) %546)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %547) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %548) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %547, ptr noundef nonnull @.str.53, ptr noundef nonnull align 1 dereferenceable(1) %548)
          to label %1580 unwind label %2250

1580:                                             ; preds = %1579
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %549) #14
  store i32 0, ptr %549, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1576, ptr noundef nonnull align 8 dereferenceable(32) %544, ptr noundef nonnull align 8 dereferenceable(96) %545, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %547, ptr noundef nonnull align 4 dereferenceable(4) %549)
          to label %1581 unwind label %2252

1581:                                             ; preds = %1580
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %549) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %548) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %547) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %546) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %545) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %544) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %544) #14
  %1582 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1583 unwind label %2257

1583:                                             ; preds = %1581
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %550) #14
  invoke void @_ZN3P3D8boxShapeEddd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %550, double noundef 2.000000e+00, double noundef 1.000000e+00, double noundef 1.000000e+00)
          to label %1584 unwind label %2259

1584:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %551) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %552) #14
  invoke void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind nonnull writable sret(%"class.P3D::MatrixRotationTemplate") align 8 %552, double noundef 0xC000C131D5ACB6F5)
          to label %1585 unwind label %2261

1585:                                             ; preds = %1584
  call void @_ZN3P3D12GlobalCFrameC2EdddRKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96) %551, double noundef -8.900000e+00, double noundef 5.000000e+00, double noundef 1.190000e+01, ptr noundef nonnull align 8 dereferenceable(72) %552)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %553) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %554) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %553, ptr noundef nonnull @.str.54, ptr noundef nonnull align 1 dereferenceable(1) %554)
          to label %1586 unwind label %2263

1586:                                             ; preds = %1585
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %555) #14
  store i32 0, ptr %555, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1582, ptr noundef nonnull align 8 dereferenceable(32) %550, ptr noundef nonnull align 8 dereferenceable(96) %551, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %553, ptr noundef nonnull align 4 dereferenceable(4) %555)
          to label %1587 unwind label %2265

1587:                                             ; preds = %1586
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %555) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %553) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %554) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %553) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %552) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %551) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %550) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %550) #14
  %1588 = load ptr, ptr %1, align 8, !tbaa !18
  %1589 = getelementptr inbounds i8, ptr %1588, i64 32
  %1590 = load ptr, ptr %1589, align 8
  invoke void %1590(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1570, i32 noundef 0)
          to label %1591 unwind label %2257

1591:                                             ; preds = %1587
  %1592 = load ptr, ptr %1, align 8, !tbaa !18
  %1593 = getelementptr inbounds i8, ptr %1592, i64 32
  %1594 = load ptr, ptr %1593, align 8
  invoke void %1594(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1576, i32 noundef 0)
          to label %1595 unwind label %2257

1595:                                             ; preds = %1591
  %1596 = load ptr, ptr %1, align 8, !tbaa !18
  %1597 = getelementptr inbounds i8, ptr %1596, i64 32
  %1598 = load ptr, ptr %1597, align 8
  invoke void %1598(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1582, i32 noundef 0)
          to label %1599 unwind label %2257

1599:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %556) #14
  call void @_ZN3P3D15ConstraintGroupC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #14
  %1600 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #15
          to label %1601 unwind label %2270

1601:                                             ; preds = %1599
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %557, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %558, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1600, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %557, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %558)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %556, ptr noundef nonnull %1570, ptr noundef nonnull %1582, ptr noundef nonnull %1600)
          to label %1602 unwind label %2270

1602:                                             ; preds = %1601
  %1603 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #15
          to label %1604 unwind label %2270

1604:                                             ; preds = %1602
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %559, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %560, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1603, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %559, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %560)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %556, ptr noundef nonnull %1576, ptr noundef nonnull %1570, ptr noundef nonnull %1603)
          to label %1605 unwind label %2270

1605:                                             ; preds = %1604
  %1606 = invoke noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #15
          to label %1607 unwind label %2270

1607:                                             ; preds = %1605
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %561, double noundef 1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D6VectorIdLm3EEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %562, double noundef -1.000000e+00, double noundef 0.000000e+00, double noundef 0x3FE6666666666666) #14
  call void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56) %1606, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %561, ptr noundef nonnull byval(%"struct.P3D::Vector") align 8 %562)
  invoke void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24) %556, ptr noundef nonnull %1582, ptr noundef nonnull %1576, ptr noundef nonnull %1606)
          to label %1608 unwind label %2270

1608:                                             ; preds = %1607
  invoke void @_ZNSt6vectorIN3P3D15ConstraintGroupESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1139, ptr noundef nonnull align 8 dereferenceable(24) %556)
          to label %1609 unwind label %2270

1609:                                             ; preds = %1608
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %556) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %563) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %564) #14
  invoke void @_ZN3P3D12ShapeLibrary11createTorusEffii(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Polyhedron") align 8 %564, float noundef 1.000000e+00, float noundef 0x3FE3333340000000, i32 noundef 80, i32 noundef 80)
          to label %1610 unwind label %2272

1610:                                             ; preds = %1609
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %563, ptr noundef nonnull align 8 dereferenceable(24) %564)
          to label %1611 unwind label %2274

1611:                                             ; preds = %1610
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %564) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %564) #14
  %1612 = call noundef ptr @_ZNK3P3D13intrusive_ptrIKNS_10ShapeClassEE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %563) #14
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %566) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %567) #14
  %1613 = call noundef ptr @_ZNK3P3D13intrusive_ptrIKNS_10ShapeClassEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %563) #14
  %1614 = load ptr, ptr %1613, align 8, !tbaa !18
  %1615 = getelementptr inbounds i8, ptr %1614, i64 64
  %1616 = load ptr, ptr %1615, align 8
  invoke void %1616(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Polyhedron") align 8 %567, ptr noundef nonnull align 8 dereferenceable(104) %1613)
          to label %1617 unwind label %2277

1617:                                             ; preds = %1611
  invoke void @_ZN3P3D8Graphics20ExtendedTriangleMesh26generateSmoothNormalsShapeERKNS_12TriangleMeshE(ptr dead_on_unwind nonnull writable sret(%"struct.P3D::Graphics::ExtendedTriangleMesh") align 8 %566, ptr noundef nonnull align 8 dereferenceable(24) %567)
          to label %1618 unwind label %2279

1618:                                             ; preds = %1617
  invoke void @_ZN3P3D8Graphics12MeshRegistry18registerShapeClassEPKNS_10ShapeClassERKNS0_20ExtendedTriangleMeshE(ptr dead_on_unwind nonnull writable sret(%"struct.P3D::Graphics::Comp::Mesh") align 8 %565, ptr noundef %1612, ptr noundef nonnull align 8 dereferenceable(88) %566)
          to label %1619 unwind label %2281

1619:                                             ; preds = %1618
  call void @_ZN3P3D2RCD2Ev(ptr noundef nonnull align 8 dereferenceable(29) %565) #14
  call void @_ZN3P3D8Graphics20ExtendedTriangleMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %566) #14
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %567) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %567) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %566) #14
  %1620 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1621 unwind label %2285

1621:                                             ; preds = %1619
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %568) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %569) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %569, double noundef -1.000000e+01, double noundef 3.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %568, ptr noundef nonnull align 8 dereferenceable(24) %569)
          to label %1622 unwind label %.thread943

1622:                                             ; preds = %1621
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %570) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %571) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull @.str.55, ptr noundef nonnull align 1 dereferenceable(1) %571)
          to label %1623 unwind label %.thread947

1623:                                             ; preds = %1622
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %572) #14
  store i32 0, ptr %572, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1620, ptr noundef nonnull align 8 dereferenceable(32) %563, ptr noundef nonnull align 8 dereferenceable(96) %568, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %570, ptr noundef nonnull align 4 dereferenceable(4) %572)
          to label %1624 unwind label %2289

1624:                                             ; preds = %1623
  %1625 = load ptr, ptr %1, align 8, !tbaa !18
  %1626 = getelementptr inbounds i8, ptr %1625, i64 32
  %1627 = load ptr, ptr %1626, align 8
  invoke void %1627(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1620, i32 noundef 0)
          to label %1628 unwind label %2289

1628:                                             ; preds = %1624
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %572) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %569) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %568) #14
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %573) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(72) %573, ptr noundef nonnull align 4 dereferenceable(72) @constinit, i64 72, i1 false), !tbaa.struct !35
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %574) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %575) #14
  invoke void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Polyhedron") align 8 %575, float noundef 0.000000e+00, ptr noundef nonnull %573, i32 noundef 9, float noundef 1.000000e+00, i32 noundef 10)
          to label %1629 unwind label %2292

1629:                                             ; preds = %1628
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %574, ptr noundef nonnull align 8 dereferenceable(24) %575)
          to label %1630 unwind label %2294

1630:                                             ; preds = %1629
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %575) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %575) #14
  %1631 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1632 unwind label %2297

1632:                                             ; preds = %1630
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %576) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %577) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %577, double noundef -1.000000e+01, double noundef 3.000000e+00, double noundef 3.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %576, ptr noundef nonnull align 8 dereferenceable(24) %577)
          to label %1633 unwind label %.thread950

1633:                                             ; preds = %1632
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %578) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %579) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull @.str.56, ptr noundef nonnull align 1 dereferenceable(1) %579)
          to label %1634 unwind label %.thread954

1634:                                             ; preds = %1633
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %580) #14
  store i32 0, ptr %580, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1631, ptr noundef nonnull align 8 dereferenceable(32) %574, ptr noundef nonnull align 8 dereferenceable(96) %576, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %578, ptr noundef nonnull align 4 dereferenceable(4) %580)
          to label %1635 unwind label %2301

1635:                                             ; preds = %1634
  %1636 = load ptr, ptr %1, align 8, !tbaa !18
  %1637 = getelementptr inbounds i8, ptr %1636, i64 32
  %1638 = load ptr, ptr %1637, align 8
  invoke void %1638(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1631, i32 noundef 0)
          to label %1639 unwind label %2301

1639:                                             ; preds = %1635
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %580) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %579) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %577) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %576) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %581) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %581, ptr noundef nonnull align 4 dereferenceable(24) @constinit.57, i64 24, i1 false), !tbaa.struct !20
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %582) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %583) #14
  invoke void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Polyhedron") align 8 %583, float noundef 0.000000e+00, ptr noundef nonnull %581, i32 noundef 3, float noundef 1.000000e+00, i32 noundef 40)
          to label %1640 unwind label %2304

1640:                                             ; preds = %1639
  invoke void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind nonnull writable sret(%"class.P3D::Shape") align 8 %582, ptr noundef nonnull align 8 dereferenceable(24) %583)
          to label %1641 unwind label %2306

1641:                                             ; preds = %1640
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %583) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %583) #14
  %1642 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #15
          to label %1643 unwind label %2309

1643:                                             ; preds = %1641
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %584) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %585) #14
  call void @_ZN3P3D16PositionTemplateINS_3FixILl32EEEEC2Eddd(ptr noundef nonnull align 8 dereferenceable(24) %585, double noundef -7.000000e+00, double noundef 3.000000e+00, double noundef 0.000000e+00) #14
  invoke void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEE(ptr noundef nonnull align 8 dereferenceable(96) %584, ptr noundef nonnull align 8 dereferenceable(24) %585)
          to label %1644 unwind label %.thread957

1644:                                             ; preds = %1643
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %586) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %587) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %586, ptr noundef nonnull @.str.58, ptr noundef nonnull align 1 dereferenceable(1) %587)
          to label %1645 unwind label %.thread961

1645:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %588) #14
  store i32 0, ptr %588, align 4, !tbaa !12
  invoke void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeERKNS_12GlobalCFrameERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204) %1642, ptr noundef nonnull align 8 dereferenceable(32) %582, ptr noundef nonnull align 8 dereferenceable(96) %584, ptr noundef nonnull align 8 dereferenceable(48) @_ZN3P3D11Application12WorldBuilder15basicPropertiesE, ptr noundef nonnull align 8 dereferenceable(32) %586, ptr noundef nonnull align 4 dereferenceable(4) %588)
          to label %1646 unwind label %2313

1646:                                             ; preds = %1645
  %1647 = load ptr, ptr %1, align 8, !tbaa !18
  %1648 = getelementptr inbounds i8, ptr %1647, i64 32
  %1649 = load ptr, ptr %1648, align 8
  invoke void %1649(ptr noundef nonnull align 8 dereferenceable(224) %1, ptr noundef nonnull %1642, i32 noundef 0)
          to label %1650 unwind label %2313

1650:                                             ; preds = %1646
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %588) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %587) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %586) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %585) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %584) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %582) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %581) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %574) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %573) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %563) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %563) #14
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %205) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %205) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %188) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %157) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %154) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %152) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %150) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %131) #14
  %1651 = getelementptr inbounds i8, ptr %3, i64 144
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %1651) #14
  %1652 = getelementptr inbounds i8, ptr %3, i64 96
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %1652) #14
  %1653 = getelementptr inbounds i8, ptr %3, i64 48
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %1653) #14
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %3) #14
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %3) #14
  ret void

1654:                                             ; preds = %783
  %1655 = landingpad { ptr, i32 }
          cleanup
  br label %2323

1656:                                             ; preds = %1098
  %1657 = landingpad { ptr, i32 }
          cleanup
  br label %1666

1658:                                             ; preds = %1099
  %1659 = landingpad { ptr, i32 }
          cleanup
  br label %1665

1660:                                             ; preds = %1100
  %1661 = landingpad { ptr, i32 }
          cleanup
  br label %1664

1662:                                             ; preds = %1103
  %1663 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #14
  br label %1664

1664:                                             ; preds = %1662, %1660
  %.pn611 = phi { ptr, i32 } [ %1663, %1662 ], [ %1661, %1660 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %194) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %192) #14
  br label %1665

1665:                                             ; preds = %1664, %1658
  %.pn611.pn = phi { ptr, i32 } [ %.pn611, %1664 ], [ %1659, %1658 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %191) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #14
  br label %1666

1666:                                             ; preds = %1665, %1656
  %.pn611.pn.pn = phi { ptr, i32 } [ %.pn611.pn, %1665 ], [ %1657, %1656 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %190) #14
  call void @_ZdlPvm(ptr noundef nonnull %786, i64 noundef 208) #16
  br label %2323

1667:                                             ; preds = %1104
  %1668 = landingpad { ptr, i32 }
          cleanup
  br label %2323

1669:                                             ; preds = %1106
  %1670 = landingpad { ptr, i32 }
          cleanup
  br label %1679

1671:                                             ; preds = %1107
  %1672 = landingpad { ptr, i32 }
          cleanup
  br label %1678

1673:                                             ; preds = %1108
  %1674 = landingpad { ptr, i32 }
          cleanup
  br label %1677

1675:                                             ; preds = %1111
  %1676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #14
  br label %1677

1677:                                             ; preds = %1675, %1673
  %.pn615 = phi { ptr, i32 } [ %1676, %1675 ], [ %1674, %1673 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %197) #14
  br label %1678

1678:                                             ; preds = %1677, %1671
  %.pn615.pn = phi { ptr, i32 } [ %.pn615, %1677 ], [ %1672, %1671 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %196) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #14
  br label %1679

1679:                                             ; preds = %1678, %1669
  %.pn615.pn.pn = phi { ptr, i32 } [ %.pn615.pn, %1678 ], [ %1670, %1669 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #14
  call void @_ZdlPvm(ptr noundef nonnull %1105, i64 noundef 208) #16
  br label %2323

1680:                                             ; preds = %1128, %1124, %1120, %1112
  %1681 = landingpad { ptr, i32 }
          cleanup
  br label %2323

1682:                                             ; preds = %1114
  %1683 = landingpad { ptr, i32 }
          cleanup
  br label %1692

1684:                                             ; preds = %1115
  %1685 = landingpad { ptr, i32 }
          cleanup
  br label %1691

1686:                                             ; preds = %1116
  %1687 = landingpad { ptr, i32 }
          cleanup
  br label %1690

1688:                                             ; preds = %1119
  %1689 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #14
  br label %1690

1690:                                             ; preds = %1688, %1686
  %.pn619 = phi { ptr, i32 } [ %1689, %1688 ], [ %1687, %1686 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %202) #14
  br label %1691

1691:                                             ; preds = %1690, %1684
  %.pn619.pn = phi { ptr, i32 } [ %.pn619, %1690 ], [ %1685, %1684 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %201) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #14
  br label %1692

1692:                                             ; preds = %1691, %1682
  %.pn619.pn.pn = phi { ptr, i32 } [ %.pn619.pn, %1691 ], [ %1683, %1682 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #14
  call void @_ZdlPvm(ptr noundef nonnull %1113, i64 noundef 208) #16
  br label %2323

1693:                                             ; preds = %1138, %1137, %1135, %1134, %1132
  %1694 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1695:                                             ; preds = %1148, %1140
  %1696 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1697:                                             ; preds = %1142
  %1698 = landingpad { ptr, i32 }
          cleanup
  br label %1707

1699:                                             ; preds = %1143
  %1700 = landingpad { ptr, i32 }
          cleanup
  br label %1706

1701:                                             ; preds = %1144
  %1702 = landingpad { ptr, i32 }
          cleanup
  br label %1705

1703:                                             ; preds = %1147
  %1704 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %215) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #14
  br label %1705

1705:                                             ; preds = %1703, %1701
  %.pn623 = phi { ptr, i32 } [ %1704, %1703 ], [ %1702, %1701 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %214) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %212) #14
  br label %1706

1706:                                             ; preds = %1705, %1699
  %.pn623.pn = phi { ptr, i32 } [ %.pn623, %1705 ], [ %1700, %1699 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %211) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #14
  br label %1707

1707:                                             ; preds = %1706, %1697
  %.pn623.pn.pn = phi { ptr, i32 } [ %.pn623.pn, %1706 ], [ %1698, %1697 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #14
  call void @_ZdlPvm(ptr noundef nonnull %1141, i64 noundef 208) #16
  br label %2322

1708:                                             ; preds = %1152
  %1709 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1710:                                             ; preds = %1154
  %1711 = landingpad { ptr, i32 }
          cleanup
  br label %1720

1712:                                             ; preds = %1155
  %1713 = landingpad { ptr, i32 }
          cleanup
  br label %1719

1714:                                             ; preds = %1156
  %1715 = landingpad { ptr, i32 }
          cleanup
  br label %1718

1716:                                             ; preds = %1159
  %1717 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %221) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #14
  br label %1718

1718:                                             ; preds = %1716, %1714
  %.pn627 = phi { ptr, i32 } [ %1717, %1716 ], [ %1715, %1714 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %218) #14
  br label %1719

1719:                                             ; preds = %1718, %1712
  %.pn627.pn = phi { ptr, i32 } [ %.pn627, %1718 ], [ %1713, %1712 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %217) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #14
  br label %1720

1720:                                             ; preds = %1719, %1710
  %.pn627.pn.pn = phi { ptr, i32 } [ %.pn627.pn, %1719 ], [ %1711, %1710 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #14
  call void @_ZdlPvm(ptr noundef nonnull %1153, i64 noundef 208) #16
  br label %2322

1721:                                             ; preds = %1181, %1177, %1173, %1168, %1160
  %1722 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1723:                                             ; preds = %1162
  %1724 = landingpad { ptr, i32 }
          cleanup
  br label %1733

1725:                                             ; preds = %1163
  %1726 = landingpad { ptr, i32 }
          cleanup
  br label %1732

1727:                                             ; preds = %1164
  %1728 = landingpad { ptr, i32 }
          cleanup
  br label %1731

1729:                                             ; preds = %1167
  %1730 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %227) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #14
  br label %1731

1731:                                             ; preds = %1729, %1727
  %.pn631 = phi { ptr, i32 } [ %1730, %1729 ], [ %1728, %1727 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %226) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %226) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %224) #14
  br label %1732

1732:                                             ; preds = %1731, %1725
  %.pn631.pn = phi { ptr, i32 } [ %.pn631, %1731 ], [ %1726, %1725 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %223) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #14
  br label %1733

1733:                                             ; preds = %1732, %1723
  %.pn631.pn.pn = phi { ptr, i32 } [ %.pn631.pn, %1732 ], [ %1724, %1723 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %222) #14
  call void @_ZdlPvm(ptr noundef nonnull %1161, i64 noundef 208) #16
  br label %2322

1734:                                             ; preds = %1170
  %1735 = landingpad { ptr, i32 }
          cleanup
  br label %1738

1736:                                             ; preds = %1172, %1171
  %1737 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %235) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %234) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %233) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %232) #14
  br label %1738

1738:                                             ; preds = %1736, %1734
  %.pn635 = phi { ptr, i32 } [ %1737, %1736 ], [ %1735, %1734 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %231) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %230) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %229) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %228) #14
  br label %2322

1739:                                             ; preds = %1183
  %1740 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %238) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %237) #14
  br label %2322

1741:                                             ; preds = %1184
  %1742 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1743:                                             ; preds = %1186
  %1744 = landingpad { ptr, i32 }
          cleanup
  br label %1753

1745:                                             ; preds = %1187
  %1746 = landingpad { ptr, i32 }
          cleanup
  br label %1752

1747:                                             ; preds = %1188
  %1748 = landingpad { ptr, i32 }
          cleanup
  br label %1751

1749:                                             ; preds = %1191
  %1750 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %247) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #14
  br label %1751

1751:                                             ; preds = %1749, %1747
  %.pn637 = phi { ptr, i32 } [ %1750, %1749 ], [ %1748, %1747 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %246) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %244) #14
  br label %1752

1752:                                             ; preds = %1751, %1745
  %.pn637.pn = phi { ptr, i32 } [ %.pn637, %1751 ], [ %1746, %1745 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %243) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %242) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %241) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %240) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #14
  br label %1753

1753:                                             ; preds = %1752, %1743
  %.pn637.pn.pn = phi { ptr, i32 } [ %.pn637.pn, %1752 ], [ %1744, %1743 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #14
  call void @_ZdlPvm(ptr noundef nonnull %1185, i64 noundef 208) #16
  br label %2322

1754:                                             ; preds = %1192
  %1755 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1756:                                             ; preds = %1194
  %1757 = landingpad { ptr, i32 }
          cleanup
  br label %1766

1758:                                             ; preds = %1195
  %1759 = landingpad { ptr, i32 }
          cleanup
  br label %1765

1760:                                             ; preds = %1196
  %1761 = landingpad { ptr, i32 }
          cleanup
  br label %1764

1762:                                             ; preds = %1199
  %1763 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %253) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #14
  br label %1764

1764:                                             ; preds = %1762, %1760
  %.pn641 = phi { ptr, i32 } [ %1763, %1762 ], [ %1761, %1760 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %250) #14
  br label %1765

1765:                                             ; preds = %1764, %1758
  %.pn641.pn = phi { ptr, i32 } [ %.pn641, %1764 ], [ %1759, %1758 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %249) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #14
  br label %1766

1766:                                             ; preds = %1765, %1756
  %.pn641.pn.pn = phi { ptr, i32 } [ %.pn641.pn, %1765 ], [ %1757, %1756 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #14
  call void @_ZdlPvm(ptr noundef nonnull %1193, i64 noundef 208) #16
  br label %2322

1767:                                             ; preds = %1218, %1214, %1210, %1200
  %1768 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1769:                                             ; preds = %1202
  %1770 = landingpad { ptr, i32 }
          cleanup
  br label %1779

1771:                                             ; preds = %1203
  %1772 = landingpad { ptr, i32 }
          cleanup
  br label %1778

1773:                                             ; preds = %1204
  %1774 = landingpad { ptr, i32 }
          cleanup
  br label %1777

1775:                                             ; preds = %1207
  %1776 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %259) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #14
  br label %1777

1777:                                             ; preds = %1775, %1773
  %.pn645 = phi { ptr, i32 } [ %1776, %1775 ], [ %1774, %1773 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %258) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %256) #14
  br label %1778

1778:                                             ; preds = %1777, %1771
  %.pn645.pn = phi { ptr, i32 } [ %.pn645, %1777 ], [ %1772, %1771 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %255) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #14
  br label %1779

1779:                                             ; preds = %1778, %1769
  %.pn645.pn.pn = phi { ptr, i32 } [ %.pn645.pn, %1778 ], [ %1770, %1769 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %254) #14
  call void @_ZdlPvm(ptr noundef nonnull %1201, i64 noundef 208) #16
  br label %2322

1780:                                             ; preds = %1209, %1208
  %1781 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %263) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %262) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %261) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %260) #14
  br label %2322

1782:                                             ; preds = %1220
  %1783 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %266) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %265) #14
  br label %2322

1784:                                             ; preds = %1221
  %1785 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1786:                                             ; preds = %1223
  %1787 = landingpad { ptr, i32 }
          cleanup
  br label %1796

1788:                                             ; preds = %1224
  %1789 = landingpad { ptr, i32 }
          cleanup
  br label %1795

1790:                                             ; preds = %1225
  %1791 = landingpad { ptr, i32 }
          cleanup
  br label %1794

1792:                                             ; preds = %1228
  %1793 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %272) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #14
  br label %1794

1794:                                             ; preds = %1792, %1790
  %.pn649 = phi { ptr, i32 } [ %1793, %1792 ], [ %1791, %1790 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %271) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %271) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %269) #14
  br label %1795

1795:                                             ; preds = %1794, %1788
  %.pn649.pn = phi { ptr, i32 } [ %.pn649, %1794 ], [ %1789, %1788 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %268) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #14
  br label %1796

1796:                                             ; preds = %1795, %1786
  %.pn649.pn.pn = phi { ptr, i32 } [ %.pn649.pn, %1795 ], [ %1787, %1786 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #14
  call void @_ZdlPvm(ptr noundef nonnull %1222, i64 noundef 208) #16
  br label %2322

1797:                                             ; preds = %1245, %1241, %1237, %1229
  %1798 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1799:                                             ; preds = %1231
  %1800 = landingpad { ptr, i32 }
          cleanup
  br label %1809

1801:                                             ; preds = %1232
  %1802 = landingpad { ptr, i32 }
          cleanup
  br label %1808

1803:                                             ; preds = %1233
  %1804 = landingpad { ptr, i32 }
          cleanup
  br label %1807

1805:                                             ; preds = %1236
  %1806 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %278) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #14
  br label %1807

1807:                                             ; preds = %1805, %1803
  %.pn653 = phi { ptr, i32 } [ %1806, %1805 ], [ %1804, %1803 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %275) #14
  br label %1808

1808:                                             ; preds = %1807, %1801
  %.pn653.pn = phi { ptr, i32 } [ %.pn653, %1807 ], [ %1802, %1801 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %274) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #14
  br label %1809

1809:                                             ; preds = %1808, %1799
  %.pn653.pn.pn = phi { ptr, i32 } [ %.pn653.pn, %1808 ], [ %1800, %1799 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #14
  call void @_ZdlPvm(ptr noundef nonnull %1230, i64 noundef 208) #16
  br label %2322

.thread914:                                       ; preds = %1247
  %1810 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %281) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %279) #14
  br label %1812

.thread918:                                       ; preds = %1250, %1248
  %lpad.thr_comm = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %286) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %283) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %281) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %279) #14
  br label %1812

1811:                                             ; preds = %1252
  %lpad.thr_comm.split-lp = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %286) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %284) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %283) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %282) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %281) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %279) #14
  br label %2322

1812:                                             ; preds = %.thread918, %.thread914
  %.pn657917 = phi { ptr, i32 } [ %1810, %.thread914 ], [ %lpad.thr_comm, %.thread918 ]
  call void @_ZdlPvm(ptr noundef nonnull %1246, i64 noundef 232) #16
  br label %2322

1813:                                             ; preds = %1253
  %1814 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1815:                                             ; preds = %1255
  %1816 = landingpad { ptr, i32 }
          cleanup
  br label %1825

1817:                                             ; preds = %1256
  %1818 = landingpad { ptr, i32 }
          cleanup
  br label %1824

1819:                                             ; preds = %1257
  %1820 = landingpad { ptr, i32 }
          cleanup
  br label %1823

1821:                                             ; preds = %1260
  %1822 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %292) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #14
  br label %1823

1823:                                             ; preds = %1821, %1819
  %.pn661 = phi { ptr, i32 } [ %1822, %1821 ], [ %1820, %1819 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %289) #14
  br label %1824

1824:                                             ; preds = %1823, %1817
  %.pn661.pn = phi { ptr, i32 } [ %.pn661, %1823 ], [ %1818, %1817 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %288) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #14
  br label %1825

1825:                                             ; preds = %1824, %1815
  %.pn661.pn.pn = phi { ptr, i32 } [ %.pn661.pn, %1824 ], [ %1816, %1815 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #14
  call void @_ZdlPvm(ptr noundef nonnull %1254, i64 noundef 208) #16
  br label %2322

1826:                                             ; preds = %1277, %1273, %1269, %1261
  %1827 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1828:                                             ; preds = %1263
  %1829 = landingpad { ptr, i32 }
          cleanup
  br label %1838

1830:                                             ; preds = %1264
  %1831 = landingpad { ptr, i32 }
          cleanup
  br label %1837

1832:                                             ; preds = %1265
  %1833 = landingpad { ptr, i32 }
          cleanup
  br label %1836

1834:                                             ; preds = %1268
  %1835 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %298) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #14
  br label %1836

1836:                                             ; preds = %1834, %1832
  %.pn665 = phi { ptr, i32 } [ %1835, %1834 ], [ %1833, %1832 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %297) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %297) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %295) #14
  br label %1837

1837:                                             ; preds = %1836, %1830
  %.pn665.pn = phi { ptr, i32 } [ %.pn665, %1836 ], [ %1831, %1830 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %294) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #14
  br label %1838

1838:                                             ; preds = %1837, %1828
  %.pn665.pn.pn = phi { ptr, i32 } [ %.pn665.pn, %1837 ], [ %1829, %1828 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %293) #14
  call void @_ZdlPvm(ptr noundef nonnull %1262, i64 noundef 208) #16
  br label %2322

.thread921:                                       ; preds = %1279
  %1839 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %299) #14
  br label %1841

.thread929:                                       ; preds = %1282, %1280
  %lpad.thr_comm927 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %306) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %305) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %303) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %299) #14
  br label %1841

1840:                                             ; preds = %1284
  %lpad.thr_comm.split-lp928 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %306) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %305) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %304) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %303) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %302) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %301) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %300) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %299) #14
  br label %2322

1841:                                             ; preds = %.thread929, %.thread921
  %.pn669924 = phi { ptr, i32 } [ %1839, %.thread921 ], [ %lpad.thr_comm927, %.thread929 ]
  call void @_ZdlPvm(ptr noundef nonnull %1278, i64 noundef 232) #16
  br label %2322

1842:                                             ; preds = %1285
  %1843 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1844:                                             ; preds = %1287
  %1845 = landingpad { ptr, i32 }
          cleanup
  br label %1854

1846:                                             ; preds = %1288
  %1847 = landingpad { ptr, i32 }
          cleanup
  br label %1853

1848:                                             ; preds = %1289
  %1849 = landingpad { ptr, i32 }
          cleanup
  br label %1852

1850:                                             ; preds = %1292
  %1851 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %312) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #14
  br label %1852

1852:                                             ; preds = %1850, %1848
  %.pn673 = phi { ptr, i32 } [ %1851, %1850 ], [ %1849, %1848 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %311) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %309) #14
  br label %1853

1853:                                             ; preds = %1852, %1846
  %.pn673.pn = phi { ptr, i32 } [ %.pn673, %1852 ], [ %1847, %1846 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %308) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #14
  br label %1854

1854:                                             ; preds = %1853, %1844
  %.pn673.pn.pn = phi { ptr, i32 } [ %.pn673.pn, %1853 ], [ %1845, %1844 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #14
  call void @_ZdlPvm(ptr noundef nonnull %1286, i64 noundef 208) #16
  br label %2322

1855:                                             ; preds = %1309, %1305, %1301, %1293
  %1856 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1857:                                             ; preds = %1295
  %1858 = landingpad { ptr, i32 }
          cleanup
  br label %1867

1859:                                             ; preds = %1296
  %1860 = landingpad { ptr, i32 }
          cleanup
  br label %1866

1861:                                             ; preds = %1297
  %1862 = landingpad { ptr, i32 }
          cleanup
  br label %1865

1863:                                             ; preds = %1300
  %1864 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %318) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #14
  br label %1865

1865:                                             ; preds = %1863, %1861
  %.pn677 = phi { ptr, i32 } [ %1864, %1863 ], [ %1862, %1861 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %317) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %315) #14
  br label %1866

1866:                                             ; preds = %1865, %1859
  %.pn677.pn = phi { ptr, i32 } [ %.pn677, %1865 ], [ %1860, %1859 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %314) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #14
  br label %1867

1867:                                             ; preds = %1866, %1857
  %.pn677.pn.pn = phi { ptr, i32 } [ %.pn677.pn, %1866 ], [ %1858, %1857 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #14
  call void @_ZdlPvm(ptr noundef nonnull %1294, i64 noundef 208) #16
  br label %2322

.thread932:                                       ; preds = %1311
  %1868 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %319) #14
  br label %1870

.thread940:                                       ; preds = %1314, %1312
  %lpad.thr_comm938 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %325) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %324) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %323) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %319) #14
  br label %1870

1869:                                             ; preds = %1316
  %lpad.thr_comm.split-lp939 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %326) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %325) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %324) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %323) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %322) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %321) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %320) #14
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %319) #14
  br label %2322

1870:                                             ; preds = %.thread940, %.thread932
  %.pn681935 = phi { ptr, i32 } [ %1868, %.thread932 ], [ %lpad.thr_comm938, %.thread940 ]
  call void @_ZdlPvm(ptr noundef nonnull %1310, i64 noundef 232) #16
  br label %2322

1871:                                             ; preds = %1317
  %1872 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1873:                                             ; preds = %1319
  %1874 = landingpad { ptr, i32 }
          cleanup
  br label %1883

1875:                                             ; preds = %1320
  %1876 = landingpad { ptr, i32 }
          cleanup
  br label %1882

1877:                                             ; preds = %1321
  %1878 = landingpad { ptr, i32 }
          cleanup
  br label %1881

1879:                                             ; preds = %1324
  %1880 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %332) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #14
  br label %1881

1881:                                             ; preds = %1879, %1877
  %.pn685 = phi { ptr, i32 } [ %1880, %1879 ], [ %1878, %1877 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %331) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %331) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %329) #14
  br label %1882

1882:                                             ; preds = %1881, %1875
  %.pn685.pn = phi { ptr, i32 } [ %.pn685, %1881 ], [ %1876, %1875 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %328) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #14
  br label %1883

1883:                                             ; preds = %1882, %1873
  %.pn685.pn.pn = phi { ptr, i32 } [ %.pn685.pn, %1882 ], [ %1874, %1873 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #14
  call void @_ZdlPvm(ptr noundef nonnull %1318, i64 noundef 208) #16
  br label %2322

1884:                                             ; preds = %1325
  %1885 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1886:                                             ; preds = %1327
  %1887 = landingpad { ptr, i32 }
          cleanup
  br label %1896

1888:                                             ; preds = %1328
  %1889 = landingpad { ptr, i32 }
          cleanup
  br label %1895

1890:                                             ; preds = %1329
  %1891 = landingpad { ptr, i32 }
          cleanup
  br label %1894

1892:                                             ; preds = %1332
  %1893 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %338) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #14
  br label %1894

1894:                                             ; preds = %1892, %1890
  %.pn689 = phi { ptr, i32 } [ %1893, %1892 ], [ %1891, %1890 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %337) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %336) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %335) #14
  br label %1895

1895:                                             ; preds = %1894, %1888
  %.pn689.pn = phi { ptr, i32 } [ %.pn689, %1894 ], [ %1889, %1888 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %334) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %333) #14
  br label %1896

1896:                                             ; preds = %1895, %1886
  %.pn689.pn.pn = phi { ptr, i32 } [ %.pn689.pn, %1895 ], [ %1887, %1886 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %333) #14
  call void @_ZdlPvm(ptr noundef nonnull %1326, i64 noundef 208) #16
  br label %2322

1897:                                             ; preds = %1333
  %1898 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1899:                                             ; preds = %1335
  %1900 = landingpad { ptr, i32 }
          cleanup
  br label %1909

1901:                                             ; preds = %1336
  %1902 = landingpad { ptr, i32 }
          cleanup
  br label %1908

1903:                                             ; preds = %1337
  %1904 = landingpad { ptr, i32 }
          cleanup
  br label %1907

1905:                                             ; preds = %1340
  %1906 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %344) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #14
  br label %1907

1907:                                             ; preds = %1905, %1903
  %.pn693 = phi { ptr, i32 } [ %1906, %1905 ], [ %1904, %1903 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %341) #14
  br label %1908

1908:                                             ; preds = %1907, %1901
  %.pn693.pn = phi { ptr, i32 } [ %.pn693, %1907 ], [ %1902, %1901 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %340) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #14
  br label %1909

1909:                                             ; preds = %1908, %1899
  %.pn693.pn.pn = phi { ptr, i32 } [ %.pn693.pn, %1908 ], [ %1900, %1899 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %339) #14
  call void @_ZdlPvm(ptr noundef nonnull %1334, i64 noundef 208) #16
  br label %2322

1910:                                             ; preds = %1341
  %1911 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1912:                                             ; preds = %1343
  %1913 = landingpad { ptr, i32 }
          cleanup
  br label %1922

1914:                                             ; preds = %1344
  %1915 = landingpad { ptr, i32 }
          cleanup
  br label %1921

1916:                                             ; preds = %1345
  %1917 = landingpad { ptr, i32 }
          cleanup
  br label %1920

1918:                                             ; preds = %1348
  %1919 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %350) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #14
  br label %1920

1920:                                             ; preds = %1918, %1916
  %.pn697 = phi { ptr, i32 } [ %1919, %1918 ], [ %1917, %1916 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %349) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %347) #14
  br label %1921

1921:                                             ; preds = %1920, %1914
  %.pn697.pn = phi { ptr, i32 } [ %.pn697, %1920 ], [ %1915, %1914 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %346) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #14
  br label %1922

1922:                                             ; preds = %1921, %1912
  %.pn697.pn.pn = phi { ptr, i32 } [ %.pn697.pn, %1921 ], [ %1913, %1912 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #14
  call void @_ZdlPvm(ptr noundef nonnull %1342, i64 noundef 208) #16
  br label %2322

1923:                                             ; preds = %1377, %1372, %1367, %1362, %1357, %1349
  %1924 = landingpad { ptr, i32 }
          cleanup
  br label %2322

1925:                                             ; preds = %1351
  %1926 = landingpad { ptr, i32 }
          cleanup
  br label %1935

1927:                                             ; preds = %1352
  %1928 = landingpad { ptr, i32 }
          cleanup
  br label %1934

1929:                                             ; preds = %1353
  %1930 = landingpad { ptr, i32 }
          cleanup
  br label %1933

1931:                                             ; preds = %1356
  %1932 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %356) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #14
  br label %1933

1933:                                             ; preds = %1931, %1929
  %.pn701 = phi { ptr, i32 } [ %1932, %1931 ], [ %1930, %1929 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %355) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #14
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %353) #14
  br label %1934

1934:                                             ; preds = %1933, %1927
  %.pn701.pn = phi { ptr, i32 } [ %.pn701, %1933 ], [ %1928, %1927 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %352) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #14
  br label %1935

1935:                                             ; preds = %1934, %1925
  %.pn701.pn.pn = phi { ptr, i32 } [ %.pn701.pn, %1934 ], [ %1926, %1925 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #14
  call void @_ZdlPvm(ptr noundef nonnull %1350, i64 noundef 208) #16
  br label %2322

1936:                                             ; preds = %1359
  %1937 = landingpad { ptr, i32 }
          cleanup
  br label %1940

1938:                                             ; preds = %1361, %1360
  %1939 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %364) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %363) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %362) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %361) #14
  br label %1940

1940:                                             ; preds = %1938, %1936
  %.pn705 = phi { ptr, i32 } [ %1939, %1938 ], [ %1937, %1936 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %360) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %359) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %358) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %357) #14
  br label %2322

1941:                                             ; preds = %1364
  %1942 = landingpad { ptr, i32 }
          cleanup
  br label %1945

1943:                                             ; preds = %1366, %1365
  %1944 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %372) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %371) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %370) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %369) #14
  br label %1945

1945:                                             ; preds = %1943, %1941
  %.pn707 = phi { ptr, i32 } [ %1944, %1943 ], [ %1942, %1941 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %368) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %367) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %366) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %365) #14
  br label %2322

1946:                                             ; preds = %1369
  %1947 = landingpad { ptr, i32 }
          cleanup
  br label %1950

1948:                                             ; preds = %1371, %1370
  %1949 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %380) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %379) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %378) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %377) #14
  br label %1950

1950:                                             ; preds = %1948, %1946
  %.pn709 = phi { ptr, i32 } [ %1949, %1948 ], [ %1947, %1946 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %376) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %375) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %374) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %373) #14
  br label %2322

1951:                                             ; preds = %1374
  %1952 = landingpad { ptr, i32 }
          cleanup
  br label %1955

1953:                                             ; preds = %1376, %1375
  %1954 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %388) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %387) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %386) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %385) #14
  br label %1955

1955:                                             ; preds = %1953, %1951
  %.pn711 = phi { ptr, i32 } [ %1954, %1953 ], [ %1952, %1951 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %384) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %383) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %382) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %381) #14
  br label %2322

1956:                                             ; preds = %1381
  %1957 = landingpad { ptr, i32 }
          cleanup
  br label %2037

1958:                                             ; preds = %1384
  %1959 = landingpad { ptr, i32 }
          cleanup
  br label %1968

1960:                                             ; preds = %1385
  %1961 = landingpad { ptr, i32 }
          cleanup
  br label %1967

1962:                                             ; preds = %1386
  %1963 = landingpad { ptr, i32 }
          cleanup
  br label %1966

1964:                                             ; preds = %1387
  %1965 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #14
  br label %1966

1966:                                             ; preds = %1964, %1962
  %.pn719 = phi { ptr, i32 } [ %1965, %1964 ], [ %1963, %1962 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %394) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #14
  br label %1967

1967:                                             ; preds = %1966, %1960
  %.pn719.pn = phi { ptr, i32 } [ %.pn719, %1966 ], [ %1961, %1960 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %392) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #14
  br label %1968

1968:                                             ; preds = %1967, %1958
  %.pn719.pn.pn = phi { ptr, i32 } [ %.pn719.pn, %1967 ], [ %1959, %1958 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %391) #14
  call void @_ZdlPvm(ptr noundef nonnull %1383, i64 noundef 208) #16
  br label %2037

1969:                                             ; preds = %1388
  %1970 = landingpad { ptr, i32 }
          cleanup
  br label %2037

1971:                                             ; preds = %1390
  %1972 = landingpad { ptr, i32 }
          cleanup
  br label %1981

1973:                                             ; preds = %1391
  %1974 = landingpad { ptr, i32 }
          cleanup
  br label %1980

1975:                                             ; preds = %1392
  %1976 = landingpad { ptr, i32 }
          cleanup
  br label %1979

1977:                                             ; preds = %1393
  %1978 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %397) #14
  br label %1979

1979:                                             ; preds = %1977, %1975
  %.pn723 = phi { ptr, i32 } [ %1978, %1977 ], [ %1976, %1975 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %398) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %398) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %397) #14
  br label %1980

1980:                                             ; preds = %1979, %1973
  %.pn723.pn = phi { ptr, i32 } [ %.pn723, %1979 ], [ %1974, %1973 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %396) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #14
  br label %1981

1981:                                             ; preds = %1980, %1971
  %.pn723.pn.pn = phi { ptr, i32 } [ %.pn723.pn, %1980 ], [ %1972, %1971 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %395) #14
  call void @_ZdlPvm(ptr noundef nonnull %1389, i64 noundef 208) #16
  br label %2037

1982:                                             ; preds = %1394
  %1983 = landingpad { ptr, i32 }
          cleanup
  br label %2037

1984:                                             ; preds = %1396
  %1985 = landingpad { ptr, i32 }
          cleanup
  br label %1994

1986:                                             ; preds = %1397
  %1987 = landingpad { ptr, i32 }
          cleanup
  br label %1993

1988:                                             ; preds = %1398
  %1989 = landingpad { ptr, i32 }
          cleanup
  br label %1992

1990:                                             ; preds = %1399
  %1991 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #14
  br label %1992

1992:                                             ; preds = %1990, %1988
  %.pn727 = phi { ptr, i32 } [ %1991, %1990 ], [ %1989, %1988 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %402) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #14
  br label %1993

1993:                                             ; preds = %1992, %1986
  %.pn727.pn = phi { ptr, i32 } [ %.pn727, %1992 ], [ %1987, %1986 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %400) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #14
  br label %1994

1994:                                             ; preds = %1993, %1984
  %.pn727.pn.pn = phi { ptr, i32 } [ %.pn727.pn, %1993 ], [ %1985, %1984 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #14
  call void @_ZdlPvm(ptr noundef nonnull %1395, i64 noundef 208) #16
  br label %2037

1995:                                             ; preds = %1400
  %1996 = landingpad { ptr, i32 }
          cleanup
  br label %2037

1997:                                             ; preds = %1402
  %1998 = landingpad { ptr, i32 }
          cleanup
  br label %2007

1999:                                             ; preds = %1403
  %2000 = landingpad { ptr, i32 }
          cleanup
  br label %2006

2001:                                             ; preds = %1404
  %2002 = landingpad { ptr, i32 }
          cleanup
  br label %2005

2003:                                             ; preds = %1405
  %2004 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #14
  br label %2005

2005:                                             ; preds = %2003, %2001
  %.pn731 = phi { ptr, i32 } [ %2004, %2003 ], [ %2002, %2001 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %406) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %406) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %405) #14
  br label %2006

2006:                                             ; preds = %2005, %1999
  %.pn731.pn = phi { ptr, i32 } [ %.pn731, %2005 ], [ %2000, %1999 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %404) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #14
  br label %2007

2007:                                             ; preds = %2006, %1997
  %.pn731.pn.pn = phi { ptr, i32 } [ %.pn731.pn, %2006 ], [ %1998, %1997 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %403) #14
  call void @_ZdlPvm(ptr noundef nonnull %1401, i64 noundef 208) #16
  br label %2037

2008:                                             ; preds = %1428, %1424, %1420, %1416, %1412, %1406
  %2009 = landingpad { ptr, i32 }
          cleanup
  br label %2037

2010:                                             ; preds = %1408
  %2011 = landingpad { ptr, i32 }
          cleanup
  br label %2020

2012:                                             ; preds = %1409
  %2013 = landingpad { ptr, i32 }
          cleanup
  br label %2019

2014:                                             ; preds = %1410
  %2015 = landingpad { ptr, i32 }
          cleanup
  br label %2018

2016:                                             ; preds = %1411
  %2017 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #14
  br label %2018

2018:                                             ; preds = %2016, %2014
  %.pn735 = phi { ptr, i32 } [ %2017, %2016 ], [ %2015, %2014 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %410) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %409) #14
  br label %2019

2019:                                             ; preds = %2018, %2012
  %.pn735.pn = phi { ptr, i32 } [ %.pn735, %2018 ], [ %2013, %2012 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %408) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #14
  br label %2020

2020:                                             ; preds = %2019, %2010
  %.pn735.pn.pn = phi { ptr, i32 } [ %.pn735.pn, %2019 ], [ %2011, %2010 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %407) #14
  call void @_ZdlPvm(ptr noundef nonnull %1407, i64 noundef 208) #16
  br label %2037

2021:                                             ; preds = %1414
  %2022 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1413, i64 noundef 32) #16
  br label %2037

2023:                                             ; preds = %1415
  %2024 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %414) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %413) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %412) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %411) #14
  br label %2037

2025:                                             ; preds = %1418
  %2026 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1417, i64 noundef 32) #16
  br label %2037

2027:                                             ; preds = %1419
  %2028 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %418) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %417) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %416) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %415) #14
  br label %2037

2029:                                             ; preds = %1422
  %2030 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1421, i64 noundef 32) #16
  br label %2037

2031:                                             ; preds = %1423
  %2032 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %422) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %421) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %420) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %419) #14
  br label %2037

2033:                                             ; preds = %1426
  %2034 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1425, i64 noundef 32) #16
  br label %2037

2035:                                             ; preds = %1427
  %2036 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %426) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %425) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %424) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %423) #14
  br label %2037

2037:                                             ; preds = %1969, %1981, %1995, %2007, %2020, %2035, %2033, %2031, %2029, %2027, %2025, %2023, %2021, %2008, %1994, %1982, %1968, %1956
  %.pn739.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn719.pn.pn, %1968 ], [ %1957, %1956 ], [ %.pn723.pn.pn, %1981 ], [ %1970, %1969 ], [ %.pn727.pn.pn, %1994 ], [ %1983, %1982 ], [ %.pn731.pn.pn, %2007 ], [ %1996, %1995 ], [ %2009, %2008 ], [ %2036, %2035 ], [ %2034, %2033 ], [ %2032, %2031 ], [ %2030, %2029 ], [ %2028, %2027 ], [ %2026, %2025 ], [ %2024, %2023 ], [ %2022, %2021 ], [ %.pn735.pn.pn, %2020 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %389) #14
  br label %2322

2038:                                             ; preds = %1432
  %2039 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2040:                                             ; preds = %1434
  %2041 = landingpad { ptr, i32 }
          cleanup
  br label %2050

2042:                                             ; preds = %1435
  %2043 = landingpad { ptr, i32 }
          cleanup
  br label %2049

2044:                                             ; preds = %1436
  %2045 = landingpad { ptr, i32 }
          cleanup
  br label %2048

2046:                                             ; preds = %1437
  %2047 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %431) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #14
  br label %2048

2048:                                             ; preds = %2046, %2044
  %.pn745 = phi { ptr, i32 } [ %2047, %2046 ], [ %2045, %2044 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %430) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %429) #14
  br label %2049

2049:                                             ; preds = %2048, %2042
  %.pn745.pn = phi { ptr, i32 } [ %.pn745, %2048 ], [ %2043, %2042 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %428) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #14
  br label %2050

2050:                                             ; preds = %2049, %2040
  %.pn745.pn.pn = phi { ptr, i32 } [ %.pn745.pn, %2049 ], [ %2041, %2040 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %427) #14
  call void @_ZdlPvm(ptr noundef nonnull %1433, i64 noundef 208) #16
  br label %2322

2051:                                             ; preds = %1450, %1444, %1438
  %2052 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2053:                                             ; preds = %1440
  %2054 = landingpad { ptr, i32 }
          cleanup
  br label %2063

2055:                                             ; preds = %1441
  %2056 = landingpad { ptr, i32 }
          cleanup
  br label %2062

2057:                                             ; preds = %1442
  %2058 = landingpad { ptr, i32 }
          cleanup
  br label %2061

2059:                                             ; preds = %1443
  %2060 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %436) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #14
  br label %2061

2061:                                             ; preds = %2059, %2057
  %.pn749 = phi { ptr, i32 } [ %2060, %2059 ], [ %2058, %2057 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %435) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %435) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %434) #14
  br label %2062

2062:                                             ; preds = %2061, %2055
  %.pn749.pn = phi { ptr, i32 } [ %.pn749, %2061 ], [ %2056, %2055 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %433) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #14
  br label %2063

2063:                                             ; preds = %2062, %2053
  %.pn749.pn.pn = phi { ptr, i32 } [ %.pn749.pn, %2062 ], [ %2054, %2053 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %432) #14
  call void @_ZdlPvm(ptr noundef nonnull %1439, i64 noundef 208) #16
  br label %2322

2064:                                             ; preds = %1446
  %2065 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1445, i64 noundef 32) #16
  br label %2322

2066:                                             ; preds = %1447
  %2067 = landingpad { ptr, i32 }
          cleanup
  br label %2070

2068:                                             ; preds = %1449, %1448
  %2069 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %440) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %439) #14
  br label %2070

2070:                                             ; preds = %2068, %2066
  %.pn753 = phi { ptr, i32 } [ %2069, %2068 ], [ %2067, %2066 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %438) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %437) #14
  br label %2322

2071:                                             ; preds = %1454
  %2072 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2073:                                             ; preds = %1456
  %2074 = landingpad { ptr, i32 }
          cleanup
  br label %2083

2075:                                             ; preds = %1457
  %2076 = landingpad { ptr, i32 }
          cleanup
  br label %2082

2077:                                             ; preds = %1458
  %2078 = landingpad { ptr, i32 }
          cleanup
  br label %2081

2079:                                             ; preds = %1459
  %2080 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %445) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #14
  br label %2081

2081:                                             ; preds = %2079, %2077
  %.pn758 = phi { ptr, i32 } [ %2080, %2079 ], [ %2078, %2077 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %444) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %444) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %443) #14
  br label %2082

2082:                                             ; preds = %2081, %2075
  %.pn758.pn = phi { ptr, i32 } [ %.pn758, %2081 ], [ %2076, %2075 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %442) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #14
  br label %2083

2083:                                             ; preds = %2082, %2073
  %.pn758.pn.pn = phi { ptr, i32 } [ %.pn758.pn, %2082 ], [ %2074, %2073 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %441) #14
  call void @_ZdlPvm(ptr noundef nonnull %1455, i64 noundef 208) #16
  br label %2322

2084:                                             ; preds = %1472, %1466, %1460
  %2085 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2086:                                             ; preds = %1462
  %2087 = landingpad { ptr, i32 }
          cleanup
  br label %2096

2088:                                             ; preds = %1463
  %2089 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2090:                                             ; preds = %1464
  %2091 = landingpad { ptr, i32 }
          cleanup
  br label %2094

2092:                                             ; preds = %1465
  %2093 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %450) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #14
  br label %2094

2094:                                             ; preds = %2092, %2090
  %.pn762 = phi { ptr, i32 } [ %2093, %2092 ], [ %2091, %2090 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %449) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %448) #14
  br label %2095

2095:                                             ; preds = %2094, %2088
  %.pn762.pn = phi { ptr, i32 } [ %.pn762, %2094 ], [ %2089, %2088 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %447) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #14
  br label %2096

2096:                                             ; preds = %2095, %2086
  %.pn762.pn.pn = phi { ptr, i32 } [ %.pn762.pn, %2095 ], [ %2087, %2086 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %446) #14
  call void @_ZdlPvm(ptr noundef nonnull %1461, i64 noundef 208) #16
  br label %2322

2097:                                             ; preds = %1468
  %2098 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1467, i64 noundef 48) #16
  br label %2322

2099:                                             ; preds = %1469
  %2100 = landingpad { ptr, i32 }
          cleanup
  br label %2103

2101:                                             ; preds = %1471, %1470
  %2102 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %454) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %453) #14
  br label %2103

2103:                                             ; preds = %2101, %2099
  %.pn766 = phi { ptr, i32 } [ %2102, %2101 ], [ %2100, %2099 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %452) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %451) #14
  br label %2322

2104:                                             ; preds = %1476
  %2105 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2106:                                             ; preds = %1478
  %2107 = landingpad { ptr, i32 }
          cleanup
  br label %2116

2108:                                             ; preds = %1479
  %2109 = landingpad { ptr, i32 }
          cleanup
  br label %2115

2110:                                             ; preds = %1480
  %2111 = landingpad { ptr, i32 }
          cleanup
  br label %2114

2112:                                             ; preds = %1481
  %2113 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %459) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #14
  br label %2114

2114:                                             ; preds = %2112, %2110
  %.pn771 = phi { ptr, i32 } [ %2113, %2112 ], [ %2111, %2110 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %458) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %457) #14
  br label %2115

2115:                                             ; preds = %2114, %2108
  %.pn771.pn = phi { ptr, i32 } [ %.pn771, %2114 ], [ %2109, %2108 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %456) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #14
  br label %2116

2116:                                             ; preds = %2115, %2106
  %.pn771.pn.pn = phi { ptr, i32 } [ %.pn771.pn, %2115 ], [ %2107, %2106 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %455) #14
  call void @_ZdlPvm(ptr noundef nonnull %1477, i64 noundef 208) #16
  br label %2322

2117:                                             ; preds = %1482
  %2118 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2119:                                             ; preds = %1484
  %2120 = landingpad { ptr, i32 }
          cleanup
  br label %2129

2121:                                             ; preds = %1485
  %2122 = landingpad { ptr, i32 }
          cleanup
  br label %2128

2123:                                             ; preds = %1486
  %2124 = landingpad { ptr, i32 }
          cleanup
  br label %2127

2125:                                             ; preds = %1487
  %2126 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %464) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %462) #14
  br label %2127

2127:                                             ; preds = %2125, %2123
  %.pn775 = phi { ptr, i32 } [ %2126, %2125 ], [ %2124, %2123 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %463) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %463) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %462) #14
  br label %2128

2128:                                             ; preds = %2127, %2121
  %.pn775.pn = phi { ptr, i32 } [ %.pn775, %2127 ], [ %2122, %2121 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %461) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %460) #14
  br label %2129

2129:                                             ; preds = %2128, %2119
  %.pn775.pn.pn = phi { ptr, i32 } [ %.pn775.pn, %2128 ], [ %2120, %2119 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %460) #14
  call void @_ZdlPvm(ptr noundef nonnull %1483, i64 noundef 208) #16
  br label %2322

2130:                                             ; preds = %1488
  %2131 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2132:                                             ; preds = %1490
  %2133 = landingpad { ptr, i32 }
          cleanup
  br label %2142

2134:                                             ; preds = %1491
  %2135 = landingpad { ptr, i32 }
          cleanup
  br label %2141

2136:                                             ; preds = %1492
  %2137 = landingpad { ptr, i32 }
          cleanup
  br label %2140

2138:                                             ; preds = %1493
  %2139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %469) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %467) #14
  br label %2140

2140:                                             ; preds = %2138, %2136
  %.pn779 = phi { ptr, i32 } [ %2139, %2138 ], [ %2137, %2136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %468) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %468) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %467) #14
  br label %2141

2141:                                             ; preds = %2140, %2134
  %.pn779.pn = phi { ptr, i32 } [ %.pn779, %2140 ], [ %2135, %2134 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %466) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %465) #14
  br label %2142

2142:                                             ; preds = %2141, %2132
  %.pn779.pn.pn = phi { ptr, i32 } [ %.pn779.pn, %2141 ], [ %2133, %2132 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %465) #14
  call void @_ZdlPvm(ptr noundef nonnull %1489, i64 noundef 208) #16
  br label %2322

2143:                                             ; preds = %1494
  %2144 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2145:                                             ; preds = %1496
  %2146 = landingpad { ptr, i32 }
          cleanup
  br label %2155

2147:                                             ; preds = %1497
  %2148 = landingpad { ptr, i32 }
          cleanup
  br label %2154

2149:                                             ; preds = %1498
  %2150 = landingpad { ptr, i32 }
          cleanup
  br label %2153

2151:                                             ; preds = %1499
  %2152 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %474) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %472) #14
  br label %2153

2153:                                             ; preds = %2151, %2149
  %.pn783 = phi { ptr, i32 } [ %2152, %2151 ], [ %2150, %2149 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %473) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %473) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %472) #14
  br label %2154

2154:                                             ; preds = %2153, %2147
  %.pn783.pn = phi { ptr, i32 } [ %.pn783, %2153 ], [ %2148, %2147 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %471) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %470) #14
  br label %2155

2155:                                             ; preds = %2154, %2145
  %.pn783.pn.pn = phi { ptr, i32 } [ %.pn783.pn, %2154 ], [ %2146, %2145 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %470) #14
  call void @_ZdlPvm(ptr noundef nonnull %1495, i64 noundef 208) #16
  br label %2322

2156:                                             ; preds = %1524, %1520, %1514, %1510, %1506, %1500
  %2157 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2158:                                             ; preds = %1502
  %2159 = landingpad { ptr, i32 }
          cleanup
  br label %2168

2160:                                             ; preds = %1503
  %2161 = landingpad { ptr, i32 }
          cleanup
  br label %2167

2162:                                             ; preds = %1504
  %2163 = landingpad { ptr, i32 }
          cleanup
  br label %2166

2164:                                             ; preds = %1505
  %2165 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %479) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %477) #14
  br label %2166

2166:                                             ; preds = %2164, %2162
  %.pn787 = phi { ptr, i32 } [ %2165, %2164 ], [ %2163, %2162 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %478) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %478) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %477) #14
  br label %2167

2167:                                             ; preds = %2166, %2160
  %.pn787.pn = phi { ptr, i32 } [ %.pn787, %2166 ], [ %2161, %2160 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %476) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %475) #14
  br label %2168

2168:                                             ; preds = %2167, %2158
  %.pn787.pn.pn = phi { ptr, i32 } [ %.pn787.pn, %2167 ], [ %2159, %2158 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %475) #14
  call void @_ZdlPvm(ptr noundef nonnull %1501, i64 noundef 208) #16
  br label %2322

2169:                                             ; preds = %1508
  %2170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1507, i64 noundef 48) #16
  br label %2322

2171:                                             ; preds = %1509
  %2172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %487) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %486) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %485) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %484) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %483) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %482) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %481) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %480) #14
  br label %2322

2173:                                             ; preds = %1512
  %2174 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1511, i64 noundef 48) #16
  br label %2322

2175:                                             ; preds = %1513
  %2176 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %495) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %494) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %493) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %492) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %491) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %490) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %489) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %488) #14
  br label %2322

2177:                                             ; preds = %1516
  %2178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1515, i64 noundef 32) #16
  br label %2322

2179:                                             ; preds = %1517
  %2180 = landingpad { ptr, i32 }
          cleanup
  br label %2183

2181:                                             ; preds = %1519, %1518
  %2182 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %503) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %502) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %501) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %500) #14
  br label %2183

2183:                                             ; preds = %2181, %2179
  %.pn791 = phi { ptr, i32 } [ %2182, %2181 ], [ %2180, %2179 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %499) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %498) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %497) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %496) #14
  br label %2322

2184:                                             ; preds = %1522
  %2185 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %1521, i64 noundef 48) #16
  br label %2322

2186:                                             ; preds = %1523
  %2187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %511) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %510) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %509) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %508) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %507) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %506) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %505) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %504) #14
  br label %2322

2188:                                             ; preds = %1528
  %2189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %512) #14
  br label %2322

2190:                                             ; preds = %1530
  %2191 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2192:                                             ; preds = %1534
  %2193 = landingpad { ptr, i32 }
          cleanup
  br label %2202

2194:                                             ; preds = %1535
  %2195 = landingpad { ptr, i32 }
          cleanup
  br label %2201

2196:                                             ; preds = %1536
  %2197 = landingpad { ptr, i32 }
          cleanup
  br label %2200

2198:                                             ; preds = %1537
  %2199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %517) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %515) #14
  br label %2200

2200:                                             ; preds = %2198, %2196
  %.pn799 = phi { ptr, i32 } [ %2199, %2198 ], [ %2197, %2196 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %516) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %516) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %515) #14
  br label %2201

2201:                                             ; preds = %2200, %2194
  %.pn799.pn = phi { ptr, i32 } [ %.pn799, %2200 ], [ %2195, %2194 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %514) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %513) #14
  br label %2202

2202:                                             ; preds = %2201, %2192
  %.pn799.pn.pn = phi { ptr, i32 } [ %.pn799.pn, %2201 ], [ %2193, %2192 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %513) #14
  call void @_ZdlPvm(ptr noundef nonnull %1533, i64 noundef 208) #16
  br label %2322

2203:                                             ; preds = %1538
  %2204 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2205:                                             ; preds = %1540
  %2206 = landingpad { ptr, i32 }
          cleanup
  br label %2215

2207:                                             ; preds = %1541
  %2208 = landingpad { ptr, i32 }
          cleanup
  br label %2214

2209:                                             ; preds = %1542
  %2210 = landingpad { ptr, i32 }
          cleanup
  br label %2213

2211:                                             ; preds = %1543
  %2212 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %523) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %521) #14
  br label %2213

2213:                                             ; preds = %2211, %2209
  %.pn803 = phi { ptr, i32 } [ %2212, %2211 ], [ %2210, %2209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %522) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %522) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %521) #14
  br label %2214

2214:                                             ; preds = %2213, %2207
  %.pn803.pn = phi { ptr, i32 } [ %.pn803, %2213 ], [ %2208, %2207 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %520) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %519) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %518) #14
  br label %2215

2215:                                             ; preds = %2214, %2205
  %.pn803.pn.pn = phi { ptr, i32 } [ %.pn803.pn, %2214 ], [ %2206, %2205 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %518) #14
  call void @_ZdlPvm(ptr noundef nonnull %1539, i64 noundef 208) #16
  br label %2322

2216:                                             ; preds = %1558, %1554, %1550, %1544
  %2217 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2218:                                             ; preds = %1546
  %2219 = landingpad { ptr, i32 }
          cleanup
  br label %2228

2220:                                             ; preds = %1547
  %2221 = landingpad { ptr, i32 }
          cleanup
  br label %2227

2222:                                             ; preds = %1548
  %2223 = landingpad { ptr, i32 }
          cleanup
  br label %2226

2224:                                             ; preds = %1549
  %2225 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %529) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %527) #14
  br label %2226

2226:                                             ; preds = %2224, %2222
  %.pn807 = phi { ptr, i32 } [ %2225, %2224 ], [ %2223, %2222 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %528) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %528) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %527) #14
  br label %2227

2227:                                             ; preds = %2226, %2220
  %.pn807.pn = phi { ptr, i32 } [ %.pn807, %2226 ], [ %2221, %2220 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %526) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %525) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %524) #14
  br label %2228

2228:                                             ; preds = %2227, %2218
  %.pn807.pn.pn = phi { ptr, i32 } [ %.pn807.pn, %2227 ], [ %2219, %2218 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %524) #14
  call void @_ZdlPvm(ptr noundef nonnull %1545, i64 noundef 208) #16
  br label %2322

2229:                                             ; preds = %1568, %1567, %1565, %1564, %1562
  %2230 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %530) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %530) #14
  br label %2322

2231:                                             ; preds = %1569
  %2232 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2233:                                             ; preds = %1571
  %2234 = landingpad { ptr, i32 }
          cleanup
  br label %2243

2235:                                             ; preds = %1572
  %2236 = landingpad { ptr, i32 }
          cleanup
  br label %2242

2237:                                             ; preds = %1573
  %2238 = landingpad { ptr, i32 }
          cleanup
  br label %2241

2239:                                             ; preds = %1574
  %2240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %543) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %541) #14
  br label %2241

2241:                                             ; preds = %2239, %2237
  %.pn815 = phi { ptr, i32 } [ %2240, %2239 ], [ %2238, %2237 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %542) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %542) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %541) #14
  br label %2242

2242:                                             ; preds = %2241, %2235
  %.pn815.pn = phi { ptr, i32 } [ %.pn815, %2241 ], [ %2236, %2235 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %540) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %539) #14
  br label %2243

2243:                                             ; preds = %2242, %2233
  %.pn815.pn.pn = phi { ptr, i32 } [ %.pn815.pn, %2242 ], [ %2234, %2233 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %539) #14
  call void @_ZdlPvm(ptr noundef nonnull %1570, i64 noundef 208) #16
  br label %2322

2244:                                             ; preds = %1575
  %2245 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2246:                                             ; preds = %1577
  %2247 = landingpad { ptr, i32 }
          cleanup
  br label %2256

2248:                                             ; preds = %1578
  %2249 = landingpad { ptr, i32 }
          cleanup
  br label %2255

2250:                                             ; preds = %1579
  %2251 = landingpad { ptr, i32 }
          cleanup
  br label %2254

2252:                                             ; preds = %1580
  %2253 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %549) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #14
  br label %2254

2254:                                             ; preds = %2252, %2250
  %.pn819 = phi { ptr, i32 } [ %2253, %2252 ], [ %2251, %2250 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %548) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %548) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %547) #14
  br label %2255

2255:                                             ; preds = %2254, %2248
  %.pn819.pn = phi { ptr, i32 } [ %.pn819, %2254 ], [ %2249, %2248 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %546) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %545) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %544) #14
  br label %2256

2256:                                             ; preds = %2255, %2246
  %.pn819.pn.pn = phi { ptr, i32 } [ %.pn819.pn, %2255 ], [ %2247, %2246 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %544) #14
  call void @_ZdlPvm(ptr noundef nonnull %1576, i64 noundef 208) #16
  br label %2322

2257:                                             ; preds = %1595, %1591, %1587, %1581
  %2258 = landingpad { ptr, i32 }
          cleanup
  br label %2322

2259:                                             ; preds = %1583
  %2260 = landingpad { ptr, i32 }
          cleanup
  br label %2269

2261:                                             ; preds = %1584
  %2262 = landingpad { ptr, i32 }
          cleanup
  br label %2268

2263:                                             ; preds = %1585
  %2264 = landingpad { ptr, i32 }
          cleanup
  br label %2267

2265:                                             ; preds = %1586
  %2266 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %555) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %553) #14
  br label %2267

2267:                                             ; preds = %2265, %2263
  %.pn823 = phi { ptr, i32 } [ %2266, %2265 ], [ %2264, %2263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %554) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %554) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %553) #14
  br label %2268

2268:                                             ; preds = %2267, %2261
  %.pn823.pn = phi { ptr, i32 } [ %.pn823, %2267 ], [ %2262, %2261 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %552) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %551) #14
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %550) #14
  br label %2269

2269:                                             ; preds = %2268, %2259
  %.pn823.pn.pn = phi { ptr, i32 } [ %.pn823.pn, %2268 ], [ %2260, %2259 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %550) #14
  call void @_ZdlPvm(ptr noundef nonnull %1582, i64 noundef 208) #16
  br label %2322

2270:                                             ; preds = %1608, %1607, %1605, %1604, %1602, %1601, %1599
  %2271 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %556) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %556) #14
  br label %2322

2272:                                             ; preds = %1609
  %2273 = landingpad { ptr, i32 }
          cleanup
  br label %2276

2274:                                             ; preds = %1610
  %2275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %564) #14
  br label %2276

2276:                                             ; preds = %2274, %2272
  %.pn831 = phi { ptr, i32 } [ %2275, %2274 ], [ %2273, %2272 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %564) #14
  br label %2321

2277:                                             ; preds = %1611
  %2278 = landingpad { ptr, i32 }
          cleanup
  br label %2284

2279:                                             ; preds = %1617
  %2280 = landingpad { ptr, i32 }
          cleanup
  br label %2283

2281:                                             ; preds = %1618
  %2282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D8Graphics20ExtendedTriangleMeshD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %566) #14
  br label %2283

2283:                                             ; preds = %2281, %2279
  %.pn833 = phi { ptr, i32 } [ %2282, %2281 ], [ %2280, %2279 ]
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %567) #14
  br label %2284

2284:                                             ; preds = %2283, %2277
  %.pn833.pn = phi { ptr, i32 } [ %.pn833, %2283 ], [ %2278, %2277 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %567) #14
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %566) #14
  br label %2320

2285:                                             ; preds = %1619
  %2286 = landingpad { ptr, i32 }
          cleanup
  br label %2320

.thread943:                                       ; preds = %1621
  %2287 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %569) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %568) #14
  br label %2291

.thread947:                                       ; preds = %1622
  %2288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %569) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %568) #14
  br label %2291

2289:                                             ; preds = %1623, %1624
  %.0267 = phi i1 [ false, %1624 ], [ true, %1623 ]
  %2290 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %572) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %570) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %571) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %571) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %570) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %569) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %568) #14
  br i1 %.0267, label %2291, label %2320

2291:                                             ; preds = %.thread947, %.thread943, %2289
  %.pn836.pn946 = phi { ptr, i32 } [ %2287, %.thread943 ], [ %2290, %2289 ], [ %2288, %.thread947 ]
  call void @_ZdlPvm(ptr noundef nonnull %1620, i64 noundef 208) #16
  br label %2320

2292:                                             ; preds = %1628
  %2293 = landingpad { ptr, i32 }
          cleanup
  br label %2296

2294:                                             ; preds = %1629
  %2295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %575) #14
  br label %2296

2296:                                             ; preds = %2294, %2292
  %.pn839 = phi { ptr, i32 } [ %2295, %2294 ], [ %2293, %2292 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %575) #14
  br label %2319

2297:                                             ; preds = %1630
  %2298 = landingpad { ptr, i32 }
          cleanup
  br label %2318

.thread950:                                       ; preds = %1632
  %2299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %577) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %576) #14
  br label %2303

.thread954:                                       ; preds = %1633
  %2300 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %579) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %577) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %576) #14
  br label %2303

2301:                                             ; preds = %1634, %1635
  %.0264 = phi i1 [ false, %1635 ], [ true, %1634 ]
  %2302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %580) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %578) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %579) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %579) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %578) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %577) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %576) #14
  br i1 %.0264, label %2303, label %2318

2303:                                             ; preds = %.thread954, %.thread950, %2301
  %.pn841.pn953 = phi { ptr, i32 } [ %2299, %.thread950 ], [ %2302, %2301 ], [ %2300, %.thread954 ]
  call void @_ZdlPvm(ptr noundef nonnull %1631, i64 noundef 208) #16
  br label %2318

2304:                                             ; preds = %1639
  %2305 = landingpad { ptr, i32 }
          cleanup
  br label %2308

2306:                                             ; preds = %1640
  %2307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3P3D13MeshPrototypeD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %583) #14
  br label %2308

2308:                                             ; preds = %2306, %2304
  %.pn844 = phi { ptr, i32 } [ %2307, %2306 ], [ %2305, %2304 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %583) #14
  br label %2317

2309:                                             ; preds = %1641
  %2310 = landingpad { ptr, i32 }
          cleanup
  br label %2316

.thread957:                                       ; preds = %1643
  %2311 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %585) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %584) #14
  br label %2315

.thread961:                                       ; preds = %1644
  %2312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %587) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %586) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %585) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %584) #14
  br label %2315

2313:                                             ; preds = %1645, %1646
  %.0 = phi i1 [ false, %1646 ], [ true, %1645 ]
  %2314 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %588) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %586) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %587) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %587) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %586) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %585) #14
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %584) #14
  br i1 %.0, label %2315, label %2316

2315:                                             ; preds = %.thread961, %.thread957, %2313
  %.pn846.pn960 = phi { ptr, i32 } [ %2311, %.thread957 ], [ %2314, %2313 ], [ %2312, %.thread961 ]
  call void @_ZdlPvm(ptr noundef nonnull %1642, i64 noundef 208) #16
  br label %2316

2316:                                             ; preds = %2313, %2315, %2309
  %.pn846.pn.pn = phi { ptr, i32 } [ %.pn846.pn960, %2315 ], [ %2314, %2313 ], [ %2310, %2309 ]
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %582) #14
  br label %2317

2317:                                             ; preds = %2316, %2308
  %.pn846.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn, %2316 ], [ %.pn844, %2308 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %582) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %581) #14
  br label %2318

2318:                                             ; preds = %2301, %2303, %2317, %2297
  %.pn846.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn.pn, %2317 ], [ %.pn841.pn953, %2303 ], [ %2302, %2301 ], [ %2298, %2297 ]
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %574) #14
  br label %2319

2319:                                             ; preds = %2318, %2296
  %.pn846.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn.pn.pn, %2318 ], [ %.pn839, %2296 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %574) #14
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %573) #14
  br label %2320

2320:                                             ; preds = %2289, %2291, %2319, %2285, %2284
  %.pn846.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn.pn.pn.pn, %2319 ], [ %.pn836.pn946, %2291 ], [ %2290, %2289 ], [ %2286, %2285 ], [ %.pn833.pn, %2284 ]
  call void @_ZN3P3D5ShapeD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %563) #14
  br label %2321

2321:                                             ; preds = %2320, %2276
  %.pn846.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn.pn.pn.pn.pn, %2320 ], [ %.pn831, %2276 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %563) #14
  br label %2322

2322:                                             ; preds = %1869, %1840, %1811, %1695, %1707, %1721, %1738, %1739, %1733, %1754, %1766, %2231, %2243, %2257, %2270, %2269, %2256, %2244, %2190, %2202, %2216, %2229, %2228, %2215, %2203, %2104, %2116, %2130, %2142, %2156, %2169, %2171, %2173, %2175, %2177, %2183, %2184, %2186, %2188, %2168, %2155, %2143, %2129, %2117, %2071, %2083, %2096, %2103, %2097, %2084, %2038, %2050, %2063, %2070, %2064, %2051, %1871, %1883, %1897, %1909, %1923, %1940, %1945, %1950, %1955, %1935, %1922, %1910, %1896, %1884, %1842, %1854, %1870, %1867, %1855, %1813, %1825, %1841, %1838, %1826, %1784, %1796, %1812, %1809, %1797, %1779, %2321, %2037, %1782, %1780, %1767, %1753, %1741, %1720, %1708, %1693
  %.pn846.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %1694, %1693 ], [ %1696, %1695 ], [ %.pn623.pn.pn, %1707 ], [ %.pn627.pn.pn, %1720 ], [ %1709, %1708 ], [ %1740, %1739 ], [ %1722, %1721 ], [ %.pn635, %1738 ], [ %.pn631.pn.pn, %1733 ], [ %.pn637.pn.pn, %1753 ], [ %1742, %1741 ], [ %.pn641.pn.pn, %1766 ], [ %1755, %1754 ], [ %.pn846.pn.pn.pn.pn.pn.pn.pn, %2321 ], [ %.pn739.pn.pn.pn.pn, %2037 ], [ %1783, %1782 ], [ %1768, %1767 ], [ %1781, %1780 ], [ %.pn645.pn.pn, %1779 ], [ %.pn649.pn.pn, %1796 ], [ %1785, %1784 ], [ %.pn657917, %1812 ], [ %lpad.thr_comm.split-lp, %1811 ], [ %1798, %1797 ], [ %.pn653.pn.pn, %1809 ], [ %.pn661.pn.pn, %1825 ], [ %1814, %1813 ], [ %.pn669924, %1841 ], [ %lpad.thr_comm.split-lp928, %1840 ], [ %1827, %1826 ], [ %.pn665.pn.pn, %1838 ], [ %.pn673.pn.pn, %1854 ], [ %1843, %1842 ], [ %.pn681935, %1870 ], [ %lpad.thr_comm.split-lp939, %1869 ], [ %1856, %1855 ], [ %.pn677.pn.pn, %1867 ], [ %.pn685.pn.pn, %1883 ], [ %1872, %1871 ], [ %.pn689.pn.pn, %1896 ], [ %1885, %1884 ], [ %.pn693.pn.pn, %1909 ], [ %1898, %1897 ], [ %.pn697.pn.pn, %1922 ], [ %1911, %1910 ], [ %1924, %1923 ], [ %.pn711, %1955 ], [ %.pn709, %1950 ], [ %.pn707, %1945 ], [ %.pn705, %1940 ], [ %.pn701.pn.pn, %1935 ], [ %.pn745.pn.pn, %2050 ], [ %2039, %2038 ], [ %2052, %2051 ], [ %.pn753, %2070 ], [ %2065, %2064 ], [ %.pn749.pn.pn, %2063 ], [ %.pn758.pn.pn, %2083 ], [ %2072, %2071 ], [ %2085, %2084 ], [ %.pn766, %2103 ], [ %2098, %2097 ], [ %.pn762.pn.pn, %2096 ], [ %.pn771.pn.pn, %2116 ], [ %2105, %2104 ], [ %.pn775.pn.pn, %2129 ], [ %2118, %2117 ], [ %.pn779.pn.pn, %2142 ], [ %2131, %2130 ], [ %.pn783.pn.pn, %2155 ], [ %2144, %2143 ], [ %2189, %2188 ], [ %2157, %2156 ], [ %2187, %2186 ], [ %2185, %2184 ], [ %.pn791, %2183 ], [ %2178, %2177 ], [ %2176, %2175 ], [ %2174, %2173 ], [ %2172, %2171 ], [ %2170, %2169 ], [ %.pn787.pn.pn, %2168 ], [ %.pn799.pn.pn, %2202 ], [ %2191, %2190 ], [ %.pn803.pn.pn, %2215 ], [ %2204, %2203 ], [ %2230, %2229 ], [ %2217, %2216 ], [ %.pn807.pn.pn, %2228 ], [ %.pn815.pn.pn, %2243 ], [ %2232, %2231 ], [ %.pn819.pn.pn, %2256 ], [ %2245, %2244 ], [ %2271, %2270 ], [ %2258, %2257 ], [ %.pn823.pn.pn, %2269 ]
  call void @_ZN3P3D15ConstraintGroupD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %205) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %205) #14
  br label %2323

2323:                                             ; preds = %1667, %1679, %1692, %2322, %1680, %1666, %1654
  %.pn846.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn611.pn.pn, %1666 ], [ %1655, %1654 ], [ %.pn615.pn.pn, %1679 ], [ %1668, %1667 ], [ %.pn846.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2322 ], [ %1681, %1680 ], [ %.pn619.pn.pn, %1692 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %188) #14
  br label %2324

2324:                                             ; preds = %1060, %1073, %1083, %1072, %1082, %1081, %1089, %1087, %1097, %1096, %2323, %989
  %.pn876.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn846.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %2323 ], [ %990, %989 ], [ %.pn876.pn.pn910, %1097 ], [ %.pn876, %1096 ], [ %1061, %1060 ], [ %.pn873.pn903, %1089 ], [ %1088, %1087 ], [ %1084, %1083 ], [ %.pn869.pn.pn896, %1082 ], [ %.pn869, %1081 ], [ %1074, %1073 ], [ %.pn865.pn.pn, %1072 ]
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %157) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %154) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %152) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %150) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %148) #14
  br label %2325

2325:                                             ; preds = %2324, %987, %985, %983, %981, %979, %977, %975, %973
  %.pn876.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn876.pn.pn.pn.pn, %2324 ], [ %988, %987 ], [ %986, %985 ], [ %984, %983 ], [ %982, %981 ], [ %980, %979 ], [ %978, %977 ], [ %976, %975 ], [ %974, %973 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %131) #14
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %917, %926, %940, %953, %955, %957, %959, %961, %952, %939, %927, %793, %805, %818, %806, %971, %972, %2325, %963, %916
  %.pn876.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn876.pn.pn.pn.pn.pn, %2325 ], [ %.pn607.pn.pn889, %972 ], [ %.pn607, %971 ], [ %964, %963 ], [ %.pn588.pn.pn, %916 ], [ %.pn.pn.pn, %805 ], [ %794, %793 ], [ %807, %806 ], [ %.pn553.pn.pn, %818 ], [ %.pn592.pn, %926 ], [ %918, %917 ], [ %.pn595.pn.pn, %939 ], [ %928, %927 ], [ %962, %961 ], [ %941, %940 ], [ %960, %959 ], [ %958, %957 ], [ %956, %955 ], [ %954, %953 ], [ %.pn599.pn.pn, %952 ]
  %2326 = getelementptr inbounds i8, ptr %3, i64 144
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %2326) #14
  %2327 = getelementptr inbounds i8, ptr %3, i64 96
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %2327) #14
  %2328 = getelementptr inbounds i8, ptr %3, i64 48
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %2328) #14
  call void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryD2Ev(ptr noundef nonnull align 8 dereferenceable(44) %3) #14
  br label %.loopexit

.loopexit:                                        ; preds = %789, %.loopexit.loopexit
  %.pn876.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn876.pn.pn.pn.pn.pn.pn, %.loopexit.loopexit ], [ %788, %789 ]
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %3) #14
  resume { ptr, i32 } %.pn876.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D11Application15buildFloorWorldERNS0_6ScreenERNS0_11PlayerWorldE(ptr noundef nonnull align 8 dereferenceable(1024), ptr noundef nonnull align 8 dereferenceable(224)) local_unnamed_addr #1

declare void @_ZN3P3D11Application12WorldBuilder13SpiderFactoryC1Edi(ptr noundef nonnull align 8 dereferenceable(44), double noundef, i32 noundef) unnamed_addr #4

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA11_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(11)) local_unnamed_addr #2 align 2

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

declare void @_ZN3P3D11sphereShapeEd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D24PistonConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #9 align 2

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

declare void @_ZN3P3D4PartC1ERKNS_5ShapeERS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEESA_RKNS_14PartPropertiesE(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #4

declare void @_ZN3P3D11Application12ExtendedPartC1EONS_4PartERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(200), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN3P3D4PartD1Ev(ptr noundef nonnull align 8 dereferenceable(200)) unnamed_addr #5

declare void @_ZN3P3D13cylinderShapeEdd(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, double noundef, double noundef) local_unnamed_addr #4

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

declare void @_ZN3P3D4Part6attachEPS0_PNS_14HardConstraintERKNS_14CFrameTemplateIdEES7_(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #4

declare noundef ptr @_ZNK3P3D4Part15getMainPhysicalEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10

declare void @_ZN3P3D11Application12WorldBuilder14buildHollowBoxENS_14BoundsTemplateINS_3FixILl32EEEEEd(ptr dead_on_unwind writable sret(%"struct.P3D::Application::WorldBuilder::HollowBoxParts") align 8, ptr noundef byval(%"struct.P3D::BoundsTemplate") align 8, double noundef) local_unnamed_addr #4

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

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

declare void @_ZN3P3D11Application12ExtendedPart11setMaterialERKNS_8Graphics4Comp8MaterialE(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(172)) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D8Graphics4Comp8MaterialC2ENS0_13ColorTemplateIfEEfff(ptr noundef nonnull align 8 dereferenceable(172), <2 x float>, <2 x float>, float noundef, float noundef, float noundef) unnamed_addr #11 align 2

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

declare void @_ZN3P3D11Application12WorldBuilder8buildCarERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) local_unnamed_addr #4

declare void @_ZN3P3D11Application12WorldBuilder13buildConveyorEddRKNS_12GlobalCFrameEdi(double noundef, double noundef, ptr noundef nonnull align 8 dereferenceable(96), double noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA6_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(6)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA10_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(10)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN3P3D11Application13EntityBuilder4nameIJRA8_KcEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 1 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D12GlobalCFrameC2ERKNS_16PositionTemplateINS_3FixILl32EEEEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

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

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

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #5

declare void @_ZN3P3D11Application12WorldBuilder13SpiderFactory11buildSpiderERKNS_12GlobalCFrameEi(ptr noundef nonnull align 8 dereferenceable(44), ptr noundef nonnull align 8 dereferenceable(96), i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #12

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

declare void @_ZN3P3D15ConstraintGroup3addEPNS_4PartES2_PNS_10ConstraintE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D14BallConstraintC2ENS_6VectorIdLm3EEES2_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8) unnamed_addr #8 align 2

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

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

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

declare void @_ZN3P3D17MotorizedPhysical19applyAngularImpulseENS_6VectorIdLm3EEE(ptr noundef nonnull align 8 dereferenceable(416), ptr noundef byval(%"struct.P3D::Vector") align 8) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3DmlIdiLm3EEENS_6VectorIDTmlixfp_Li0Efp0_EXT1_EEERKNS1_IT_XT1_EEERKT0_(ptr dead_on_unwind noalias writable sret(%"struct.P3D::Vector") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2

declare void @_ZN3P3D11Application12ExtendedPartC1ERKNS_5ShapeEPS1_RKNS_14CFrameTemplateIdEERKNS_14PartPropertiesERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKj(ptr noundef nonnull align 8 dereferenceable(204), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #4

declare void @_ZN3P3D4Part6attachEPS0_RKNS_14CFrameTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(200), ptr noundef, ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #4

declare void @_ZN3P3D14WorldPrototype7addLinkEPNS_8SoftLinkE(ptr noundef nonnull align 8 dereferenceable(224), ptr noundef) local_unnamed_addr #4

declare void @_ZN3P3D10SpringLinkC1ERKNS_12AttachedPartES3_dd(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(104), double noundef, double noundef) unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D6Engine8RegistryImE3addINS_11Application4Comp4NameEJRA12_KcEEENS_13intrusive_ptrIT_EERKjDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.P3D::intrusive_ptr.88") align 8, ptr noundef nonnull align 8 dereferenceable(212), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(12)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D23MotorConstraintTemplateINS_19ConstantMotorTurnerEECI2NS_19ConstantMotorTurnerEEd(ptr noundef nonnull align 8 dereferenceable(32), double noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D14CFrameTemplateIdEC2ERKNS_6VectorIdLm3EEERKNS_22MatrixRotationTemplateIdEE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3P3D23MotorConstraintTemplateINS_18SineWaveControllerEECI2NS_18SineWaveControllerEEddd(ptr noundef nonnull align 8 dereferenceable(48), double noundef, double noundef, double noundef) unnamed_addr #9 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3P3D22MatrixRotationTemplateIdE4rotYEd(ptr dead_on_unwind noalias writable sret(%"class.P3D::MatrixRotationTemplate") align 8, double noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D15HingeConstraintC2ENS_6VectorIdLm3EEES2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(104), ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8, ptr noundef byval(%"struct.P3D::Vector") align 8) unnamed_addr #8 align 2

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

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

declare void @_ZN3P3D15polyhedronShapeERKNS_10PolyhedronE(ptr dead_on_unwind writable sret(%"class.P3D::Shape") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare void @_ZN3P3D12ShapeLibrary11createTorusEffii(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8, float noundef, float noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

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

declare void @_ZN3P3D8Graphics12MeshRegistry18registerShapeClassEPKNS_10ShapeClassERKNS0_20ExtendedTriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::Comp::Mesh") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #4

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

declare void @_ZN3P3D8Graphics20ExtendedTriangleMesh26generateSmoothNormalsShapeERKNS_12TriangleMeshE(ptr dead_on_unwind writable sret(%"struct.P3D::Graphics::ExtendedTriangleMesh") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

declare void @_ZN3P3D12ShapeLibrary19createRevolvedShapeEfPNS_6VectorIfLm2EEEifi(ptr dead_on_unwind writable sret(%"class.P3D::Polyhedron") align 8, float noundef, ptr noundef, i32 noundef, float noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3P3D2RCD2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 "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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="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 #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { mustprogress nounwind uwtable "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #14 = { nounwind }
attributes #15 = { builtin allocsize(0) }
attributes #16 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 16}
!10 = !{!"_ZTSN3P3D14PartPropertiesE", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24}
!11 = !{!"_ZTSN3P3D6VectorIdLm3EEE", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !7, i64 0}
!16 = !{!17, !15, i64 8}
!17 = !{!"_ZTSN3P3D11Application4Comp5Light11AttenuationE", !15, i64 0, !15, i64 4, !15, i64 8}
!18 = !{!19, !19, i64 0}
!19 = !{!"vtable pointer", !8, i64 0}
!20 = !{i64 0, i64 24, !21}
!21 = !{!7, !7, i64 0}
!22 = !{!23, !24, i64 32}
!23 = !{!"_ZTSN3P3D11Application12WorldBuilder14HollowBoxPartsE", !24, i64 0, !24, i64 8, !24, i64 16, !24, i64 24, !24, i64 32, !24, i64 40}
!24 = !{!"any pointer", !7, i64 0}
!25 = !{!23, !24, i64 40}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = distinct !{!28, !27}
!29 = distinct !{!29, !27}
!30 = !{!31, !24, i64 96}
!31 = !{!"_ZTSN3P3D12AttachedPartE", !32, i64 0, !24, i64 96}
!32 = !{!"_ZTSN3P3D14CFrameTemplateIdEE", !11, i64 0, !33, i64 24}
!33 = !{!"_ZTSN3P3D22MatrixRotationTemplateIdEE", !34, i64 0}
!34 = !{!"_ZTSN3P3D6MatrixIdLm3ELm3EEE", !7, i64 0}
!35 = !{i64 0, i64 72, !21}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass