// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::Option::get_name[abi:cxx11](bool, bool) const
std::string get_name(bool positional = false, //<[input] Show the positional name
                         bool all_options = false //<[input] Show every option
                         ) const {

        if(all_options) {

            std::vector<std::string> name_list;

            /// The all list will never include a positional unless asked or that's the only name.
            if((positional && pname_.length()) || (snames_.empty() && lnames_.empty()))
                name_list.push_back(pname_);

            for(const std::string &sname : snames_)
                name_list.push_back("-" + sname);

            for(const std::string &lname : lnames_)
                name_list.push_back("--" + lname);

            return detail::join(name_list);

        } else {

            // This returns the positional name no matter what
            if(positional)
                return pname_;

            // Prefer long name
            else if(!lnames_.empty())
                return std::string("--") + lnames_[0];

            // Or short name if no long name
            else if(!snames_.empty())
                return std::string("-") + snames_[0];

            // If positional is the only name, it's okay to use that
            else
                return pname_;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x150(%rbp)
movb %cl, %al
movb %dl, %cl
movq %rdi, %rdx
movq %rdx, -0x148(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %cl
movb %cl, -0x11(%rbp)
andb $0x1, %al
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x140(%rbp)
testb $0x1, -0x12(%rbp)
je 0x14e45
leaq -0x30(%rbp), %rdi
callq 0x15e10
testb $0x1, -0x11(%rbp)
je 0x14bdd
movq -0x140(%rbp), %rdi
addq $0x58, %rdi
callq 0x6640
cmpq $0x0, %rax
jne 0x14c09
movq -0x140(%rbp), %rdi
addq $0x28, %rdi
callq 0x86b0
testb $0x1, %al
jne 0x14bf3
jmp 0x14c32
movq -0x140(%rbp), %rdi
addq $0x40, %rdi
callq 0x86b0
testb $0x1, %al
jne 0x14c09
jmp 0x14c32
movq -0x140(%rbp), %rsi
addq $0x58, %rsi
leaq -0x30(%rbp), %rdi
callq 0x173f0
jmp 0x14c1f
jmp 0x14c32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x14e37
movq -0x140(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0x117f0
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
callq 0x11820
movq %rax, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x11bd0
testb $0x1, %al
jne 0x14c6e
jmp 0x14cce
leaq -0x50(%rbp), %rdi
callq 0x11c40
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdx
leaq 0x2c7c2(%rip), %rsi     # 0x41448
leaq -0x80(%rbp), %rdi
callq 0xebd0
jmp 0x14c91
leaq -0x30(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x15e50
jmp 0x14ca0
leaq -0x80(%rbp), %rdi
callq 0x6280
leaq -0x50(%rbp), %rdi
callq 0x11c60
jmp 0x14c5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x6280
jmp 0x14e37
movq -0x140(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0x117f0
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rdi
callq 0x11820
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x11bd0
testb $0x1, %al
jne 0x14d1f
jmp 0x14d97
leaq -0x90(%rbp), %rdi
callq 0x11c40
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdx
leaq 0x2c707(%rip), %rsi     # 0x41447
leaq -0xc0(%rbp), %rdi
callq 0xebd0
jmp 0x14d4e
leaq -0x30(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x15e50
jmp 0x14d60
leaq -0xc0(%rbp), %rdi
callq 0x6280
leaq -0x90(%rbp), %rdi
callq 0x11c60
jmp 0x14d06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x6280
jmp 0x14e37
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0x6770
movq -0x158(%rbp), %rdx
leaq 0x2c692(%rip), %rsi     # 0x4144a
leaq -0xe0(%rbp), %rdi
callq 0x8eb0
jmp 0x14dc6
movq -0x150(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0xe0(%rbp), %rdx
callq 0x15ef0
jmp 0x14ddf
leaq -0xe0(%rbp), %rdi
callq 0x6280
leaq -0xe1(%rbp), %rdi
callq 0x6460
leaq -0x30(%rbp), %rdi
callq 0x8710
jmp 0x15006
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x14e2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x6280
leaq -0xe1(%rbp), %rdi
callq 0x6460
leaq -0x30(%rbp), %rdi
callq 0x8710
jmp 0x15016
testb $0x1, -0x11(%rbp)
je 0x14e67
movq -0x150(%rbp), %rdi
movq -0x140(%rbp), %rsi
addq $0x58, %rsi
callq 0x61d0
jmp 0x15006
movq -0x140(%rbp), %rdi
addq $0x40, %rdi
callq 0x86b0
testb $0x1, %al
jne 0x14f2e
leaq -0x109(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x6770
movq -0x160(%rbp), %rdx
leaq 0x2c5a7(%rip), %rsi     # 0x41447
leaq -0x108(%rbp), %rdi
callq 0x8eb0
jmp 0x14eae
movq -0x140(%rbp), %rdi
addq $0x40, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x87f0
movq -0x150(%rbp), %rdi
movq %rax, %rdx
leaq -0x108(%rbp), %rsi
callq 0x12690
jmp 0x14eda
leaq -0x108(%rbp), %rdi
callq 0x6280
leaq -0x109(%rbp), %rdi
callq 0x6460
jmp 0x15006
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x14f1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x6280
leaq -0x109(%rbp), %rdi
callq 0x6460
jmp 0x15016
movq -0x140(%rbp), %rdi
addq $0x28, %rdi
callq 0x86b0
testb $0x1, %al
jne 0x14fef
leaq -0x131(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x6770
movq -0x168(%rbp), %rdx
leaq 0x2c4e1(%rip), %rsi     # 0x41448
leaq -0x130(%rbp), %rdi
callq 0x8eb0
jmp 0x14f75
movq -0x140(%rbp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x87f0
movq -0x150(%rbp), %rdi
movq %rax, %rdx
leaq -0x130(%rbp), %rsi
callq 0x12690
jmp 0x14fa1
leaq -0x130(%rbp), %rdi
callq 0x6280
leaq -0x131(%rbp), %rdi
callq 0x6460
jmp 0x15006
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x14fe1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x6280
leaq -0x131(%rbp), %rdi
callq 0x6460
jmp 0x15016
movq -0x150(%rbp), %rdi
movq -0x140(%rbp), %rsi
addq $0x58, %rsi
callq 0x61d0
movq -0x148(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x6750
nop