// File: Phidelux[P]terminal-table/src/table.cpp
// Function: bornageek::utils::termtab::Table::column(unsigned short) const
const std::vector<Cell> Table::column(const std::uint16_t n) const {
        if(n > this->numColumns()) {
          throw std::out_of_range("The table just has " 
                + std::to_string(this->numColumns()) + " columns.");
        }

        std::vector<Cell> column(this->mRows.size());

        std::transform(this->mRows.begin(), this->mRows.end(), column.begin(),
          [n](Row row){ return row.cells()[n]; });

        return column;
      }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0xd0(%rbp)
movw %dx, %ax
movq %rdi, %rcx
movq %rcx, -0xc8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
movzwl -0x12(%rbp), %eax
movl %eax, -0xb4(%rbp)
callq 0x9be0
movw %ax, %cx
movl -0xb4(%rbp), %eax
movzwl %cx, %ecx
cmpl %ecx, %eax
jle 0x9f38
movb $0x1, -0x85(%rbp)
movl $0x10, %edi
callq 0x30f0
movq -0xc0(%rbp), %rdi
movq %rax, -0xe0(%rbp)
callq 0x9be0
movw %ax, -0xd2(%rbp)
jmp 0x9e46
movw -0xd2(%rbp), %ax
movzwl %ax, %esi
leaq -0x78(%rbp), %rdi
callq 0xba00
jmp 0x9e5b
leaq 0x737e(%rip), %rsi      # 0x111e0
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0xb9b0
jmp 0x9e71
leaq 0x737c(%rip), %rdx      # 0x111f4
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xb960
jmp 0x9e87
movq -0xe0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3350
jmp 0x9e99
movq -0xe0(%rbp), %rdi
movb $0x0, -0x85(%rbp)
movq 0xf122(%rip), %rsi      # 0x18fd0
movq 0xf113(%rip), %rdx      # 0x18fc8
callq 0x33a0
jmp 0xa089
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x9f1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x9f13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x9f0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3140
leaq -0x58(%rbp), %rdi
callq 0x3140
leaq -0x78(%rbp), %rdi
callq 0x3140
testb $0x1, -0x85(%rbp)
jne 0x9f27
jmp 0x9f33
movq -0xe0(%rbp), %rdi
callq 0x3190
jmp 0xa080
movq -0xc0(%rbp), %rdi
movb $0x0, -0x86(%rbp)
addq $0x60, %rdi
callq 0xbbb0
movq %rax, -0xf0(%rbp)
leaq -0x87(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0xbbd0
movq -0xd0(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
callq 0xbbf0
jmp 0x9f85
leaq -0x87(%rbp), %rdi
callq 0x7b40
movq -0xc0(%rbp), %rdi
addq $0x60, %rdi
movq %rdi, -0x100(%rbp)
callq 0xbc60
movq -0x100(%rbp), %rdi
movq %rax, -0x90(%rbp)
callq 0xbc90
movq -0xd0(%rbp), %rdi
movq %rax, -0x98(%rbp)
callq 0xbcc0
movq %rax, -0xa0(%rbp)
movw -0x12(%rbp), %ax
movw %ax, -0xa2(%rbp)
movq -0x90(%rbp), %rdi
movq -0x98(%rbp), %rsi
movq -0xa0(%rbp), %rdx
movzwl -0xa2(%rbp), %ecx
callq 0xa090
movq %rax, -0xf8(%rbp)
jmp 0xa00a
movq -0xf8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movb $0x1, -0x86(%rbp)
testb $0x1, -0x86(%rbp)
jne 0xa070
jmp 0xa064
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x87(%rbp), %rdi
callq 0x7b40
jmp 0xa080
movq -0xd0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
callq 0x78e0
jmp 0xa080
movq -0xd0(%rbp), %rdi
callq 0x78e0
movq -0xc8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0x33c0
nopl (%rax)