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

    const std::string delims("\'\"`");
    auto find_ws = [](char ch) { return std::isspace<char>(ch, std::locale()); };
    trim(str);

    std::vector<std::string> output;
    bool embeddedQuote = false;
    char keyChar = ' ';
    while(!str.empty()) {
        if(delims.find_first_of(str[0]) != std::string::npos) {
            keyChar = str[0];
            auto end = str.find_first_of(keyChar, 1);
            while((end != std::string::npos) && (str[end - 1] == '\\')) { // deal with escaped quotes
                end = str.find_first_of(keyChar, end + 1);
                embeddedQuote = true;
            }
            if(end != std::string::npos) {
                output.push_back(str.substr(1, end - 1));
                str = str.substr(end + 1);
            } else {
                output.push_back(str.substr(1));
                str = "";
            }
        } else {
            auto it = std::find_if(std::begin(str), std::end(str), find_ws);
            if(it != std::end(str)) {
                std::string value = std::string(str.begin(), it);
                output.push_back(value);
                str = std::string(it, str.end());
            } else {
                output.push_back(str);
                str = "";
            }
        }
        // transform any embedded quotes into the regular character
        if(embeddedQuote) {
            output.back() = find_and_replace(output.back(), std::string("\\") + keyChar, std::string(1, keyChar));
            embeddedQuote = false;
        }
        trim(str);
    }
    return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rsi, -0x218(%rbp)
movq %rdi, -0x210(%rbp)
movq %rdi, %rax
movq %rax, -0x208(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x6770
movq -0x200(%rbp), %rdx
leaq 0xd6f6(%rip), %rsi      # 0x419df
leaq -0x30(%rbp), %rdi
callq 0x8eb0
jmp 0x342f4
leaq -0x31(%rbp), %rdi
callq 0x6460
movq -0x218(%rbp), %rdi
callq 0x1cd20
jmp 0x3430b
movq -0x210(%rbp), %rdi
movb $0x0, -0x46(%rbp)
callq 0x15e10
movb $0x0, -0x47(%rbp)
movb $0x20, -0x48(%rbp)
movq -0x218(%rbp), %rdi
callq 0x66e0
xorb $-0x1, %al
testb $0x1, %al
jne 0x3433a
jmp 0x34965
movq -0x218(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6810
movq %rax, -0x220(%rbp)
jmp 0x34353
movq -0x220(%rbp), %rax
leaq -0x30(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
movsbl (%rax), %esi
callq 0x6290
cmpq $-0x1, %rax
je 0x3457f
movq -0x218(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x6810
movq %rax, -0x228(%rbp)
jmp 0x3438d
movq -0x218(%rbp), %rdi
movq -0x228(%rbp), %rax
movb (%rax), %al
movb %al, -0x48(%rbp)
movl $0x1, %edx
movsbl -0x48(%rbp), %esi
callq 0x6290
movq %rax, -0x50(%rbp)
xorl %eax, %eax
cmpq $-0x1, -0x50(%rbp)
movb %al, -0x229(%rbp)
je 0x343f3
movq -0x218(%rbp), %rdi
movq -0x50(%rbp), %rsi
decq %rsi
callq 0x6810
movq %rax, -0x238(%rbp)
jmp 0x343dd
movq -0x238(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
sete %al
movb %al, -0x229(%rbp)
movb -0x229(%rbp), %al
testb $0x1, %al
jne 0x343ff
jmp 0x3445f
movq -0x218(%rbp), %rdi
movb -0x48(%rbp), %al
movq -0x50(%rbp), %rdx
addq $0x1, %rdx
movsbl %al, %esi
callq 0x6290
movq %rax, -0x50(%rbp)
movb $0x1, -0x47(%rbp)
jmp 0x343b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x6460
jmp 0x349a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x349a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34994
cmpq $-0x1, -0x50(%rbp)
je 0x34504
movq -0x218(%rbp), %rsi
movq -0x50(%rbp), %rcx
decq %rcx
leaq -0x70(%rbp), %rdi
movl $0x1, %edx
callq 0x6420
jmp 0x34488
movq -0x210(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x15e50
jmp 0x3449a
leaq -0x70(%rbp), %rdi
callq 0x6280
movq -0x218(%rbp), %rsi
movq -0x50(%rbp), %rdx
incq %rdx
leaq -0x90(%rbp), %rdi
movq $-0x1, %rcx
callq 0x6420
jmp 0x344c6
movq -0x218(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x6520
leaq -0x90(%rbp), %rdi
callq 0x6280
jmp 0x3457a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x6280
jmp 0x34994
movq -0x218(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x6420
jmp 0x34525
movq -0x210(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x15e50
jmp 0x3453a
leaq -0xb0(%rbp), %rdi
callq 0x6280
movq -0x218(%rbp), %rdi
leaq 0xd42e(%rip), %rsi      # 0x41982
callq 0x65e0
jmp 0x3455b
jmp 0x3457a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x6280
jmp 0x34994
jmp 0x3478b
movq -0x218(%rbp), %rdi
callq 0x1ecf0
movq -0x218(%rbp), %rdi
movq %rax, -0xc0(%rbp)
callq 0x1ed20
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x354f0
movq %rax, -0x240(%rbp)
jmp 0x345c1
movq -0x218(%rbp), %rdi
movq -0x240(%rbp), %rax
movq %rax, -0xb8(%rbp)
callq 0x1ed20
movq %rax, -0xd8(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x1c900
testb $0x1, %al
jne 0x345fe
jmp 0x3475d
movq -0x218(%rbp), %rdi
callq 0x6370
movq %rax, -0x100(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x6770
movq -0x248(%rbp), %rcx
movq -0x100(%rbp), %rsi
movq -0x108(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
callq 0x35530
jmp 0x34655
leaq -0x109(%rbp), %rdi
callq 0x6460
movq -0x210(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x173f0
jmp 0x34676
movq -0x218(%rbp), %rdi
movq -0xb8(%rbp), %rax
movq %rax, -0x138(%rbp)
callq 0x6240
movq %rax, -0x140(%rbp)
leaq -0x141(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x6770
movq -0x250(%rbp), %rcx
movq -0x138(%rbp), %rsi
movq -0x140(%rbp), %rdx
leaq -0x130(%rbp), %rdi
callq 0x35530
jmp 0x346cd
movq -0x218(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x6520
leaq -0x130(%rbp), %rdi
callq 0x6280
leaq -0x141(%rbp), %rdi
callq 0x6460
leaq -0xf8(%rbp), %rdi
callq 0x6280
jmp 0x34789
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x109(%rbp), %rdi
callq 0x6460
jmp 0x34994
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3474c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x141(%rbp), %rdi
callq 0x6460
leaq -0xf8(%rbp), %rdi
callq 0x6280
jmp 0x34994
movq -0x218(%rbp), %rsi
movq -0x210(%rbp), %rdi
callq 0x173f0
jmp 0x34772
movq -0x218(%rbp), %rdi
leaq 0xd202(%rip), %rsi      # 0x41982
callq 0x65e0
jmp 0x34787
jmp 0x34789
jmp 0x3478b
testb $0x1, -0x47(%rbp)
je 0x34952
movq -0x210(%rbp), %rdi
callq 0x162e0
movq %rax, %rsi
leaq -0x188(%rbp), %rdi
callq 0x61d0
jmp 0x347b2
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x6770
movq -0x258(%rbp), %rdx
leaq 0xd210(%rip), %rsi      # 0x419e3
leaq -0x1c8(%rbp), %rdi
callq 0x8eb0
jmp 0x347e1
movsbl -0x48(%rbp), %edx
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x355b0
jmp 0x347fa
movsbl -0x48(%rbp), %eax
movl %eax, -0x264(%rbp)
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x6770
movl -0x264(%rbp), %edx
movq -0x260(%rbp), %rcx
leaq -0x1f0(%rbp), %rdi
movl $0x1, %esi
callq 0x12450
jmp 0x34837
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0x1a8(%rbp), %rdx
leaq -0x1f0(%rbp), %rcx
callq 0x32c40
jmp 0x3485a
movq -0x210(%rbp), %rdi
callq 0x162e0
movq %rax, %rdi
leaq -0x168(%rbp), %rsi
callq 0x6520
leaq -0x168(%rbp), %rdi
callq 0x6280
leaq -0x1f0(%rbp), %rdi
callq 0x6280
leaq -0x1f1(%rbp), %rdi
callq 0x6460
leaq -0x1a8(%rbp), %rdi
callq 0x6280
leaq -0x1c8(%rbp), %rdi
callq 0x6280
leaq -0x1c9(%rbp), %rdi
callq 0x6460
leaq -0x188(%rbp), %rdi
callq 0x6280
movb $0x0, -0x47(%rbp)
jmp 0x34952
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34938
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x3492c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34914
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x6280
leaq -0x1f1(%rbp), %rdi
callq 0x6460
leaq -0x1a8(%rbp), %rdi
callq 0x6280
leaq -0x1c8(%rbp), %rdi
callq 0x6280
leaq -0x1c9(%rbp), %rdi
callq 0x6460
leaq -0x188(%rbp), %rdi
callq 0x6280
jmp 0x34994
movq -0x218(%rbp), %rdi
callq 0x1cd20
jmp 0x34960
jmp 0x34323
movb $0x1, -0x46(%rbp)
testb $0x1, -0x46(%rbp)
jne 0x3497b
movq -0x210(%rbp), %rdi
callq 0x8710
leaq -0x30(%rbp), %rdi
callq 0x6280
movq -0x208(%rbp), %rax
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq -0x210(%rbp), %rdi
callq 0x8710
leaq -0x30(%rbp), %rdi
callq 0x6280
movq -0x40(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)
nopl (%rax)