// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::detail::get_names(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&)
inline std::tuple<std::vector<std::string>, std::vector<std::string>, std::string>
get_names(const std::vector<std::string> &input) {

    std::vector<std::string> short_names;
    std::vector<std::string> long_names;
    std::string pos_name;

    for(std::string name : input) {
        if(name.length() == 0)
            continue;
        else if(name.length() > 1 && name[0] == '-' && name[1] != '-') {
            if(name.length() == 2 && valid_first_char(name[1]))
                short_names.emplace_back(1, name[1]);
            else
                throw BadNameString::OneCharName(name);
        } else if(name.length() > 2 && name.substr(0, 2) == "--") {
            name = name.substr(2);
            if(valid_name_string(name))
                long_names.push_back(name);
            else
                throw BadNameString::BadLongName(name);
        } else if(name == "-" || name == "--") {
            throw BadNameString::DashesOnly(name);
        } else {
            if(pos_name.length() > 0)
                throw BadNameString::MultiPositionalNames(name);
            pos_name = name;
        }
    }

    return std::tuple<std::vector<std::string>, std::vector<std::string>, std::string>(
        short_names, long_names, pos_name);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x1a8(%rbp)
movq %rdi, %rax
movq %rax, -0x1a0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x15e10
leaq -0x40(%rbp), %rdi
callq 0x15e10
leaq -0x60(%rbp), %rdi
callq 0x65f0
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
callq 0x117f0
movq %rax, -0x70(%rbp)
movq -0x68(%rbp), %rdi
callq 0x11820
movq %rax, -0x78(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x11bd0
testb $0x1, %al
jne 0x1ab37
jmp 0x1b19a
leaq -0x70(%rbp), %rdi
callq 0x11c40
movq %rax, %rsi
leaq -0x98(%rbp), %rdi
callq 0x61d0
jmp 0x1ab51
leaq -0x98(%rbp), %rdi
callq 0x6640
cmpq $0x0, %rax
jne 0x1ab89
movl $0x3, -0xa8(%rbp)
jmp 0x1b162
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1b1e9
leaq -0x98(%rbp), %rdi
callq 0x6640
cmpq $0x1, %rax
jbe 0x1ad5f
xorl %eax, %eax
movl %eax, %esi
leaq -0x98(%rbp), %rdi
callq 0x6810
movq %rax, -0x1b0(%rbp)
jmp 0x1abb8
movq -0x1b0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x1ad5f
leaq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0x6810
movq %rax, -0x1b8(%rbp)
jmp 0x1abe5
movq -0x1b8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x1ad5f
leaq -0x98(%rbp), %rdi
callq 0x6640
cmpq $0x2, %rax
jne 0x1aca4
leaq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0x6810
movq %rax, -0x1c0(%rbp)
jmp 0x1ac28
movq -0x1c0(%rbp), %rax
movsbl (%rax), %edi
callq 0x1bc80
movb %al, -0x1c1(%rbp)
jmp 0x1ac3f
movb -0x1c1(%rbp), %al
testb $0x1, %al
jne 0x1ac4b
jmp 0x1aca4
movl $0x1, -0xac(%rbp)
leaq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0x6810
movq %rax, -0x1d0(%rbp)
jmp 0x1ac6f
movq -0x1d0(%rbp), %rdx
leaq -0x28(%rbp), %rdi
leaq -0xac(%rbp), %rsi
callq 0x1bd10
jmp 0x1ac88
jmp 0x1ad5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1b18c
movb $0x1, -0xd1(%rbp)
movl $0x38, %edi
callq 0x6200
movq %rax, -0x1d8(%rbp)
leaq -0xd0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x61d0
jmp 0x1acd1
movq -0x1d8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1bd90
jmp 0x1ace6
movq -0x1d8(%rbp), %rdi
movb $0x0, -0xd1(%rbp)
leaq 0x428dd(%rip), %rsi     # 0x5d5d8
leaq 0x110e(%rip), %rdx      # 0x1be10
callq 0x6700
jmp 0x1b210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1ad3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x6280
testb $0x1, -0xd1(%rbp)
jne 0x1ad49
jmp 0x1ad55
movq -0x1d8(%rbp), %rdi
callq 0x6310
jmp 0x1b18c
jmp 0x1b156
leaq -0x98(%rbp), %rdi
callq 0x6640
movq %rax, %rcx
movb $0x0, -0xf9(%rbp)
xorl %eax, %eax
cmpq $0x2, %rcx
movb %al, -0x1d9(%rbp)
jbe 0x1add1
xorl %eax, %eax
movl %eax, %edx
leaq -0xf8(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movl $0x2, %ecx
callq 0x6420
jmp 0x1ada1
movb $0x1, -0xf9(%rbp)
leaq 0x26698(%rip), %rsi     # 0x41447
leaq -0xf8(%rbp), %rdi
callq 0x1be30
movb %al, -0x1da(%rbp)
jmp 0x1adc3
movb -0x1da(%rbp), %al
movb %al, -0x1d9(%rbp)
jmp 0x1add1
movb -0x1d9(%rbp), %al
movb %al, -0x1db(%rbp)
testb $0x1, -0xf9(%rbp)
jne 0x1ade8
jmp 0x1adf4
leaq -0xf8(%rbp), %rdi
callq 0x6280
movb -0x1db(%rbp), %al
testb $0x1, %al
jne 0x1ae03
jmp 0x1af71
leaq -0x120(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movl $0x2, %edx
movq $-0x1, %rcx
callq 0x6420
jmp 0x1ae24
leaq -0x98(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
leaq -0x120(%rbp), %rsi
movq %rsi, -0x1f0(%rbp)
callq 0x6520
movq -0x1f0(%rbp), %rdi
callq 0x6280
movq -0x1e8(%rbp), %rdi
callq 0x1be60
movb %al, -0x1dc(%rbp)
jmp 0x1ae65
movb -0x1dc(%rbp), %al
testb $0x1, %al
jne 0x1ae71
jmp 0x1aeb6
leaq -0x40(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x173f0
jmp 0x1ae83
jmp 0x1af6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
testb $0x1, -0xf9(%rbp)
jne 0x1aea5
jmp 0x1aeb1
leaq -0xf8(%rbp), %rdi
callq 0x6280
jmp 0x1b18c
movb $0x1, -0x141(%rbp)
movl $0x38, %edi
callq 0x6200
movq %rax, -0x1f8(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x61d0
jmp 0x1aee3
movq -0x1f8(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x1bf80
jmp 0x1aef8
movq -0x1f8(%rbp), %rdi
movb $0x0, -0x141(%rbp)
leaq 0x426cb(%rip), %rsi     # 0x5d5d8
leaq 0xefc(%rip), %rdx       # 0x1be10
callq 0x6700
jmp 0x1b210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1af50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x6280
testb $0x1, -0x141(%rbp)
jne 0x1af5b
jmp 0x1af67
movq -0x1f8(%rbp), %rdi
callq 0x6310
jmp 0x1b18c
jmp 0x1b154
leaq 0x264d0(%rip), %rsi     # 0x41448
leaq -0x98(%rbp), %rdi
callq 0x1be30
movb %al, -0x1f9(%rbp)
jmp 0x1af8c
movb -0x1f9(%rbp), %al
testb $0x1, %al
jne 0x1afc2
jmp 0x1af98
leaq 0x264a8(%rip), %rsi     # 0x41447
leaq -0x98(%rbp), %rdi
callq 0x1be30
movb %al, -0x1fa(%rbp)
jmp 0x1afb3
movb -0x1fa(%rbp), %al
testb $0x1, %al
jne 0x1afc2
jmp 0x1b078
movb $0x1, -0x169(%rbp)
movl $0x38, %edi
callq 0x6200
movq %rax, -0x208(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x61d0
jmp 0x1afef
movq -0x208(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x1c000
jmp 0x1b004
movq -0x208(%rbp), %rdi
movb $0x0, -0x169(%rbp)
leaq 0x425bf(%rip), %rsi     # 0x5d5d8
leaq 0xdf0(%rip), %rdx       # 0x1be10
callq 0x6700
jmp 0x1b210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1b05c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x6280
testb $0x1, -0x169(%rbp)
jne 0x1b067
jmp 0x1b073
movq -0x208(%rbp), %rdi
callq 0x6310
jmp 0x1b18c
leaq -0x60(%rbp), %rdi
callq 0x6640
cmpq $0x0, %rax
jbe 0x1b13e
movb $0x1, -0x191(%rbp)
movl $0x38, %edi
callq 0x6200
movq %rax, -0x210(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x61d0
jmp 0x1b0b8
movq -0x210(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x1c080
jmp 0x1b0cd
movq -0x210(%rbp), %rdi
movb $0x0, -0x191(%rbp)
leaq 0x424f6(%rip), %rsi     # 0x5d5d8
leaq 0xd27(%rip), %rdx       # 0x1be10
callq 0x6700
jmp 0x1b210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x1b125
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x6280
testb $0x1, -0x191(%rbp)
jne 0x1b130
jmp 0x1b13c
movq -0x210(%rbp), %rdi
callq 0x6310
jmp 0x1b18c
leaq -0x60(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x6060
jmp 0x1b150
jmp 0x1b152
jmp 0x1b154
jmp 0x1b156
jmp 0x1b158
movl $0x0, -0xa8(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x6280
movl -0xa8(%rbp), %eax
testl %eax, %eax
je 0x1b17c
jmp 0x1b17a
jmp 0x1b17e
jmp 0x1b17e
leaq -0x70(%rbp), %rdi
callq 0x11c60
jmp 0x1ab21
leaq -0x98(%rbp), %rdi
callq 0x6280
jmp 0x1b1e9
movq -0x1a8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x60(%rbp), %rcx
callq 0x1c100
jmp 0x1b1b4
movl $0x1, -0xa8(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x6280
leaq -0x40(%rbp), %rdi
callq 0x8710
leaq -0x28(%rbp), %rdi
callq 0x8710
movq -0x1a0(%rbp), %rax
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
leaq -0x60(%rbp), %rdi
callq 0x6280
leaq -0x40(%rbp), %rdi
callq 0x8710
leaq -0x28(%rbp), %rdi
callq 0x8710
movq -0xa0(%rbp), %rdi
callq 0x6750