// File: 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:
subq $0xc8, %rsp
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq 0xc0(%rsp), %rdi
movq %rdi, 0x50(%rsp)
callq 0x1d060
movq 0x50(%rsp), %rdi
leaq 0x80103(%rip), %rax     # 0x9ac38
movq %rax, (%rdi)
addq $0x190, %rdi            # imm = 0x190
movq %rdi, 0x48(%rsp)
callq 0x1d1f0
movq 0x50(%rsp), %rdi
addq $0x198, %rdi            # imm = 0x198
movq %rdi, 0x58(%rsp)
callq 0x6060
jmp 0x1ab61
movq 0x50(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
movq %rdi, 0x40(%rsp)
callq 0x1d220
jmp 0x1ab79
movq 0x50(%rsp), %rdi
addq $0x1c8, %rdi            # imm = 0x1C8
movq %rdi, 0x38(%rsp)
callq 0x6060
jmp 0x1ab91
movq 0x50(%rsp), %rdi
addq $0x1e0, %rdi            # imm = 0x1E0
movq %rdi, 0x18(%rsp)
callq 0x1d270
movq 0x50(%rsp), %rdi
addq $0x1f8, %rdi            # imm = 0x1F8
movq %rdi, 0x20(%rsp)
callq 0x1d280
movq 0x50(%rsp), %rdi
addq $0x210, %rdi            # imm = 0x210
movq %rdi, 0x28(%rsp)
callq 0x4490
movq 0x50(%rsp), %rdi
addq $0x230, %rdi            # imm = 0x230
movq %rdi, 0x30(%rsp)
callq 0x4490
movq 0x50(%rsp), %rax
movb $0x1, 0x250(%rax)
movb $0x0, 0x251(%rax)
movq 0xb8(%rsp), %rsi
addq $0x198, %rsi            # imm = 0x198
leaq 0x90(%rsp), %rdi
callq 0x6290
jmp 0x1ac1a
movq 0x50(%rsp), %rdi
addq $0x198, %rdi            # imm = 0x198
leaq 0x90(%rsp), %rsi
movq %rsi, 0x10(%rsp)
callq 0x60c0
movq 0x10(%rsp), %rdi
callq 0x60b0
movq 0xb8(%rsp), %rsi
addq $0x1b0, %rsi            # imm = 0x1B0
leaq 0x78(%rsp), %rdi
callq 0x1d3c0
jmp 0x1ac5d
movq 0x50(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x78(%rsp), %rsi
movq %rsi, 0x8(%rsp)
callq 0x1d3f0
movq 0x8(%rsp), %rdi
callq 0x1d350
movq 0xb8(%rsp), %rsi
addq $0x1c8, %rsi            # imm = 0x1C8
leaq 0x60(%rsp), %rdi
callq 0x6290
jmp 0x1ac9d
movq 0x50(%rsp), %rdi
addq $0x1c8, %rdi            # imm = 0x1C8
leaq 0x60(%rsp), %rsi
movq %rsi, (%rsp)
callq 0x60c0
movq (%rsp), %rdi
callq 0x60b0
movq 0x50(%rsp), %rdi
movq 0xb8(%rsp), %rsi
addq $0x1e0, %rsi            # imm = 0x1E0
addq $0x1e0, %rdi            # imm = 0x1E0
callq 0x1d430
jmp 0x1ace2
movq 0x50(%rsp), %rdi
movq 0xb8(%rsp), %rsi
addq $0x1f8, %rsi            # imm = 0x1F8
addq $0x1f8, %rdi            # imm = 0x1F8
callq 0x1d6f0
jmp 0x1ad04
movq 0x50(%rsp), %rdi
movq 0xb8(%rsp), %rsi
addq $0x210, %rsi            # imm = 0x210
addq $0x210, %rdi            # imm = 0x210
callq 0x4030
jmp 0x1ad26
movq 0x50(%rsp), %rdi
movq 0xb8(%rsp), %rsi
addq $0x230, %rsi            # imm = 0x230
addq $0x230, %rdi            # imm = 0x230
callq 0x4030
jmp 0x1ad48
movq 0x50(%rsp), %rax
movq 0xb8(%rsp), %rcx
movb 0x251(%rcx), %cl
andb $0x1, %cl
movb %cl, 0x251(%rax)
addq $0xc8, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x1ae0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x1ae01
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
jmp 0x1adf7
movq 0x30(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb0(%rsp)
movl %eax, 0xac(%rsp)
callq 0x4200
movq 0x28(%rsp), %rdi
callq 0x4200
movq 0x20(%rsp), %rdi
callq 0x1d290
movq 0x18(%rsp), %rdi
callq 0x1d2f0
movq 0x38(%rsp), %rdi
callq 0x60b0
movq 0x40(%rsp), %rdi
callq 0x1d350
movq 0x58(%rsp), %rdi
callq 0x60b0
movq 0x48(%rsp), %rdi
callq 0x1d360
movq 0x50(%rsp), %rdi
callq 0x1f000
movq 0xb0(%rsp), %rdi
callq 0x45e0
nopl (%rax)