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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x10(%rbp), %rdi
addq $0x18, %rdi
leaq 0xb228(%rip), %rsi      # 0x1b405
callq 0xafa0
testb $0x1, %al
jne 0x101eb
jmp 0x1033e
leaq -0x69(%rbp), %rdi
movq %rdi, -0x148(%rbp)
callq 0x3640
movq -0x148(%rbp), %rdx
leaq 0xb1fc(%rip), %rsi      # 0x1b405
leaq -0x68(%rbp), %rdi
callq 0xab40
jmp 0x10214
movq -0x140(%rbp), %rcx
movq -0x10(%rbp), %rdx
movl (%rcx), %eax
movl 0x4(%rcx), %edi
movl (%rdx), %ecx
movl 0x4(%rdx), %esi
addl %ecx, %eax
movl %eax, -0x150(%rbp)
callq 0xe5a0
movl %eax, -0x14c(%rbp)
leaq -0x90(%rbp), %rdi
xorps %xmm1, %xmm1
movaps %xmm1, %xmm0
callq 0x19810
jmp 0x10250
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 0x1027e
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 0x102a6
movq -0x140(%rbp), %rax
movl (%rax), %esi
movq -0x10(%rbp), %rcx
leaq -0x48(%rbp), %rdi
xorl %edx, %edx
callq 0x139d0
jmp 0x102c0
movq -0x140(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x10e80
jmp 0x102d9
leaq -0xc8(%rbp), %rdi
callq 0xe650
leaq -0x48(%rbp), %rdi
callq 0xe650
jmp 0x10410
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x10316
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 0x10419
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xe650
jmp 0x10419
movq -0x140(%rbp), %rcx
movq -0x10(%rbp), %rdx
movl (%rcx), %eax
movl 0x4(%rcx), %edi
movl (%rdx), %ecx
movl 0x4(%rdx), %esi
addl %ecx, %eax
movl %eax, -0x164(%rbp)
callq 0xe5a0
movl -0x164(%rbp), %esi
movl %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 0x103a3
movq -0x140(%rbp), %rax
movl (%rax), %esi
movq -0x10(%rbp), %rcx
leaq -0x100(%rbp), %rdi
xorl %edx, %edx
callq 0x139d0
jmp 0x103c0
movq -0x140(%rbp), %rsi
leaq -0x138(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x10e80
jmp 0x103dc
leaq -0x138(%rbp), %rdi
callq 0xe650
leaq -0x100(%rbp), %rdi
callq 0xe650
jmp 0x10410
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0xe650
jmp 0x10419
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x78(%rbp), %rdi
callq 0x3630
nopw %cs:(%rax,%rax)