// File: bothaynahazem[P]AsuMathLabG13/Matrix2017.cpp
// Function: Matrix::addColumn(Matrix&)
void Matrix::addColumn(Matrix& m)
{   if(m.type=="complex")
    {
    Matrix n("complex",max(nRows, m.nRows), nColumns + m.nColumns);
    n.setSubMatrix(0, 0, *this);
	n.setSubMatrix(0, nColumns, m);
	*this = n;
    }
    else
    {
	Matrix n(max(nRows, m.nRows), nColumns + m.nColumns);
	n.setSubMatrix(0, 0, *this);
	n.setSubMatrix(0, nColumns, m);
	*this = n;
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x10(%rbp), %rdi
addq $0x18, %rdi
leaq 0xb4a8(%rip), %rsi      # 0x1b405
callq 0xafa0
testb $0x1, %al
jne 0xff6b
jmp 0x100cc
leaq -0x69(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3640
movq -0x148(%rbp), %rdx
leaq 0xb47c(%rip), %rsi      # 0x1b405
leaq -0x68(%rbp), %rdi
callq 0xab40
jmp 0xff94
movq -0x140(%rbp), %rax
movl (%rax), %edi
movq -0x10(%rbp), %rax
movl (%rax), %esi
callq 0xe5a0
movl %eax, %ecx
movq -0x140(%rbp), %rax
movl %ecx, -0x150(%rbp)
movl 0x4(%rax), %eax
movq -0x10(%rbp), %rcx
movl 0x4(%rcx), %ecx
addl %ecx, %eax
movl %eax, -0x14c(%rbp)
leaq -0x90(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x19810
jmp 0xffdd
movl -0x14c(%rbp), %ecx
movl -0x150(%rbp), %edx
movsd -0x90(%rbp), %xmm0
movsd -0x88(%rbp), %xmm1
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
xorl %r8d, %r8d
callq 0x19470
jmp 0x1000b
leaq -0x68(%rbp), %rdi
callq 0x3270
leaq -0x69(%rbp), %rdi
callq 0x3410
movq -0x140(%rbp), %rcx
leaq -0x48(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x139d0
jmp 0x10033
movq -0x140(%rbp), %rax
movl 0x4(%rax), %edx
movq -0x10(%rbp), %rcx
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
callq 0x139d0
jmp 0x1004e
movq -0x140(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x10e80
jmp 0x10067
leaq -0xc8(%rbp), %rdi
callq 0xe650
leaq -0x48(%rbp), %rdi
callq 0xe650
jmp 0x1019e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x100a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x3270
leaq -0x69(%rbp), %rdi
callq 0x3410
jmp 0x101a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xe650
jmp 0x101a7
movq -0x140(%rbp), %rax
movl (%rax), %edi
movq -0x10(%rbp), %rax
movl (%rax), %esi
callq 0xe5a0
movl %eax, %esi
movq -0x140(%rbp), %rax
movl 0x4(%rax), %edx
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
addl %eax, %edx
leaq -0x100(%rbp), %rdi
movq %rdi, -0x160(%rbp)
xorl %ecx, %ecx
movl %ecx, -0x154(%rbp)
xorps %xmm0, %xmm0
callq 0xe7c0
movq -0x160(%rbp), %rdi
movl -0x154(%rbp), %edx
movq -0x140(%rbp), %rcx
movl %edx, %esi
callq 0x139d0
jmp 0x10130
movq -0x140(%rbp), %rax
movl 0x4(%rax), %edx
movq -0x10(%rbp), %rcx
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
callq 0x139d0
jmp 0x1014e
movq -0x140(%rbp), %rsi
leaq -0x138(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x10e80
jmp 0x1016a
leaq -0x138(%rbp), %rdi
callq 0xe650
leaq -0x100(%rbp), %rdi
callq 0xe650
jmp 0x1019e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0xe650
jmp 0x101a7
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x3630