// File: Phidelux[P]terminal-table/src/table.cpp
// Function: bornageek::utils::termtab::Table::renderSeparator[abi:cxx11](char, char, char, char) const
const std::string Table::renderSeparator(
            const char left, const char mid, 
            const char right, const char sep) const {
        std::stringstream ss;

        ss << left;

        for(std::size_t i = 0; i < this->numColumns(); i++) {
          std::uint16_t width = this->columnWidth(i) 
                  + this->mStyle.paddingLeft() + this->mStyle.paddingRight();

          for(std::size_t j = 0 ; j < width; j++ ) { 
            ss << sep;
          }

          if(i+1 < this->numColumns()) {
            ss << mid;
          } else {
            ss << right;
          }
        }

        ss << std::endl;

        return ss.str();
      }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movl %r8d, -0x1f4(%rbp)
movl %ecx, %eax
movl -0x1f4(%rbp), %ecx
movl %eax, -0x1f0(%rbp)
movl %edx, %eax
movl -0x1f0(%rbp), %edx
movl %eax, -0x1ec(%rbp)
movq %rsi, %rax
movl -0x1ec(%rbp), %esi
movq %rax, -0x1e8(%rbp)
movq %rdi, %r8
movq -0x1e8(%rbp), %rdi
movq %r8, -0x1e0(%rbp)
movb %r9b, %al
movq %r8, %r9
movq %r9, -0x1d8(%rbp)
movq %r8, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movb %sil, -0x11(%rbp)
movb %dl, -0x12(%rbp)
movb %cl, -0x13(%rbp)
movb %al, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1d0(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x3170
leaq -0x190(%rbp), %rdi
movsbl -0x11(%rbp), %esi
callq 0x32d0
jmp 0xa96a
movq $0x0, -0x1b8(%rbp)
movq -0x1d0(%rbp), %rdi
movq -0x1b8(%rbp), %rax
movq %rax, -0x200(%rbp)
callq 0x9be0
movw %ax, -0x1f6(%rbp)
jmp 0xa998
movq -0x200(%rbp), %rax
movw -0x1f6(%rbp), %cx
movzwl %cx, %ecx
cmpq %rcx, %rax
jae 0xab1f
movq -0x1d0(%rbp), %rdi
movzwl -0x1b8(%rbp), %esi
callq 0xa170
movw %ax, -0x202(%rbp)
jmp 0xa9ce
movq -0x1d0(%rbp), %rdi
movw -0x202(%rbp), %ax
movzwl %ax, %eax
movl %eax, -0x208(%rbp)
callq 0x3a70
movw %ax, -0x204(%rbp)
jmp 0xa9f3
movq -0x1d0(%rbp), %rdi
movl -0x208(%rbp), %eax
movw -0x204(%rbp), %cx
movzwl %cx, %ecx
addl %ecx, %eax
movl %eax, -0x210(%rbp)
callq 0x3ab0
movw %ax, -0x20a(%rbp)
jmp 0xaa20
movl -0x210(%rbp), %eax
movw -0x20a(%rbp), %cx
movzwl %cx, %ecx
addl %ecx, %eax
movw %ax, -0x1ba(%rbp)
movq $0x0, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rax
movzwl -0x1ba(%rbp), %ecx
cmpq %rcx, %rax
jae 0xaaa2
leaq -0x190(%rbp), %rdi
movsbl -0x14(%rbp), %esi
callq 0x32d0
jmp 0xaa69
jmp 0xaa6b
movq -0x1c8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1c8(%rbp)
jmp 0xaa44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1a8(%rbp)
movl %eax, -0x1ac(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
jmp 0xab65
movq -0x1d0(%rbp), %rdi
movq -0x1b8(%rbp), %rax
incq %rax
movq %rax, -0x220(%rbp)
callq 0x9be0
movw %ax, -0x212(%rbp)
jmp 0xaac8
movq -0x220(%rbp), %rax
movw -0x212(%rbp), %cx
movzwl %cx, %ecx
cmpq %rcx, %rax
jae 0xaaf2
leaq -0x190(%rbp), %rdi
movsbl -0x12(%rbp), %esi
callq 0x32d0
jmp 0xaaf0
jmp 0xab06
leaq -0x190(%rbp), %rdi
movsbl -0x13(%rbp), %esi
callq 0x32d0
jmp 0xab04
jmp 0xab06
jmp 0xab08
movq -0x1b8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x1b8(%rbp)
jmp 0xa975
leaq -0x190(%rbp), %rdi
movq 0xe47b(%rip), %rsi      # 0x18fa8
callq 0x3260
jmp 0xab34
movq -0x1e0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3220
jmp 0xab49
leaq -0x1a0(%rbp), %rdi
callq 0x31a0
movq -0x1d8(%rbp), %rax
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0x1a8(%rbp), %rdi
callq 0x33c0
nopw %cs:(%rax,%rax)