// File: /workspace/github_cpp_makefile_star2_O3/IsaacLaw12[P]RayTracer/./src/Model.cpp
// Function: Model::Model(Model const&)
Model::Model(const Model&old_model){
    // AFTER COPYING on_model_load() NEEDS TO BE CALLED
    Vertices = Eigen::MatrixXd(old_model.Vertices);
    Faces = Eigen::MatrixXi(old_model.Faces);
    FaceNormals = Eigen::MatrixXd(old_model.FaceNormals);
    vertex_to_faces = old_model.vertex_to_faces;
    vertex_normals = old_model.vertex_normals;
    original_file = old_model.original_file;
    animation_file = old_model.animation_file;
    smoothing = old_model.smoothing;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r13
movq %rdi, %rbx
movaps 0xe3d7(%rip), %xmm0     # 0x16ee0
movups %xmm0, 0x8(%rdi)
movl $0x0, 0x18(%rdi)
addq $0x20, %rdi
xorl %r14d, %r14d
movl $0xd8, %edx
xorl %esi, %esi
callq 0x3170
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0xf8(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x100(%rbx)
movq %r14, 0x110(%rbx)
movq %rax, 0x118(%rbx)
movups %xmm0, 0x120(%rbx)
movq %r14, 0x130(%rbx)
movaps 0xe38b(%rip), %xmm1     # 0x16ef0
movups %xmm1, 0x138(%rbx)
movups %xmm0, 0x148(%rbx)
movq %r14, 0x158(%rbx)
movq %rax, 0x160(%rbx)
movups %xmm0, 0x168(%rbx)
movq %r14, 0x178(%rbx)
movaps 0xe36a(%rip), %xmm1     # 0x16f00
movups %xmm1, 0x180(%rbx)
leaq 0x170d4(%rip), %rax     # 0x1fc78
movq %rax, (%rbx)
leaq 0x1e0(%rbx), %rax
movq %rax, 0x18(%rsp)
leaq 0x1f8(%rbx), %rax
movq %rax, 0x10(%rsp)
leaq 0x210(%rbx), %r12
leaq 0x220(%rbx), %rax
movups %xmm0, 0x190(%rbx)
movups %xmm0, 0x1a0(%rbx)
movups %xmm0, 0x1b0(%rbx)
movups %xmm0, 0x1c0(%rbx)
movups %xmm0, 0x1d0(%rbx)
movups %xmm0, 0x1e0(%rbx)
movups %xmm0, 0x1f0(%rbx)
movups %xmm0, 0x200(%rbx)
movq %rax, 0x8(%rsp)
movq %rax, 0x210(%rbx)
movq %r14, 0x218(%rbx)
movb %r14b, 0x220(%rbx)
leaq 0x230(%rbx), %rbp
leaq 0x240(%rbx), %r15
movq %r15, 0x230(%rbx)
movq %r14, 0x238(%rbx)
movb %r14b, 0x240(%rbx)
movw $0x1, 0x250(%rbx)
leaq 0x198(%r13), %rsi
leaq 0x20(%rsp), %rdi
callq 0x4fb8
leaq 0x20(%rsp), %r14
movq (%r14), %rax
movq 0x198(%rbx), %rdi
movq %rdi, (%r14)
movq %rax, 0x198(%rbx)
movups 0x1a0(%rbx), %xmm0
movups 0x8(%r14), %xmm1
movups %xmm0, 0x8(%r14)
movups %xmm1, 0x1a0(%rbx)
callq 0x3320
leaq 0x1b0(%r13), %rsi
movq %r14, %rdi
callq 0xb1cc
leaq 0x20(%rsp), %r14
movq (%r14), %rax
movq 0x1b0(%rbx), %rdi
movq %rdi, (%r14)
movq %rax, 0x1b0(%rbx)
movups 0x1b8(%rbx), %xmm0
movups 0x8(%r14), %xmm1
movups %xmm0, 0x8(%r14)
movups %xmm1, 0x1b8(%rbx)
callq 0x3320
leaq 0x1c8(%r13), %rsi
movq %r14, %rdi
callq 0x4fb8
movq 0x20(%rsp), %rax
movq 0x1c8(%rbx), %rdi
movq %rdi, 0x20(%rsp)
movq %rax, 0x1c8(%rbx)
movups 0x1d0(%rbx), %xmm0
movups 0x28(%rsp), %xmm1
movups %xmm0, 0x28(%rsp)
movups %xmm1, 0x1d0(%rbx)
callq 0x3320
leaq 0x1e0(%r13), %rsi
movq 0x18(%rsp), %rdi
callq 0xa8e2
leaq 0x1f8(%r13), %rsi
movq 0x10(%rsp), %rdi
callq 0xaa80
leaq 0x210(%r13), %rsi
movq %r12, %rdi
callq 0x3160
leaq 0x230(%r13), %rsi
movq %rbp, %rdi
callq 0x3160
movb 0x251(%r13), %al
movb %al, 0x251(%rbx)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8d7d
jmp 0x8d7d
jmp 0x8d7d
movq %rax, %r13
movq (%rbp), %rdi
cmpq %r15, %rdi
je 0x8d94
movq (%r15), %rsi
incq %rsi
callq 0x32d0
movq (%r12), %rdi
cmpq 0x8(%rsp), %rdi
je 0x8daf
movq 0x8(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x32d0
movq 0x10(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x8dcb
movq 0x208(%rbx), %rsi
subq %rdi, %rsi
callq 0x32d0
leaq 0x190(%rbx), %r15
movq 0x18(%rsp), %rdi
callq 0xa88e
movq 0x1c8(%rbx), %rdi
callq 0x3320
movq 0x1b0(%rbx), %rdi
callq 0x3320
movq 0x198(%rbx), %rdi
callq 0x3320
movq 0x190(%rbx), %rsi
testq %rsi, %rsi
je 0x8e14
movq %r15, %rdi
callq 0xb0a2
movq $0x0, (%r15)
movq %r13, %rdi
callq 0x34b0
nop