// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::ConfigINI::from_config(std::istream&) const
std::vector<ConfigItem> from_config(std::istream &input) const override {
        std::string line;
        std::string section = "default";

        std::vector<ConfigItem> output;

        while(getline(input, line)) {
            std::vector<std::string> items_buffer;

            detail::trim(line);
            size_t len = line.length();
            if(len > 1 && line[0] == '[' && line[len - 1] == ']') {
                section = line.substr(1, len - 2);
            } else if(len > 0 && line[0] != ';') {
                output.emplace_back();
                ConfigItem &out = output.back();

                // Find = in string, split and recombine
                auto pos = line.find('=');
                if(pos != std::string::npos) {
                    out.name = detail::trim_copy(line.substr(0, pos));
                    std::string item = detail::trim_copy(line.substr(pos + 1));
                    items_buffer = detail::split_up(item);
                } else {
                    out.name = detail::trim_copy(line);
                    items_buffer = {"ON"};
                }

                if(detail::to_lower(section) != "default") {
                    out.parents = {section};
                }

                if(out.name.find('.') != std::string::npos) {
                    std::vector<std::string> plist = detail::split(out.name, '.');
                    out.name = plist.back();
                    plist.pop_back();
                    out.parents.insert(out.parents.end(), plist.begin(), plist.end());
                }

                out.inputs.insert(std::end(out.inputs), std::begin(items_buffer), std::end(items_buffer));
            }
        }
        return output;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3d0, %rsp            # imm = 0x3D0
movq %rdi, -0x2d0(%rbp)
movq %rdi, %rax
movq %rax, -0x2c8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x65f0
leaq -0x59(%rbp), %rdi
movq %rdi, -0x2c0(%rbp)
callq 0x6770
movq -0x2c0(%rbp), %rdx
leaq 0x33a52(%rip), %rsi     # 0x412e1
leaq -0x58(%rbp), %rdi
callq 0x8eb0
jmp 0xd89a
leaq -0x59(%rbp), %rdi
callq 0x6460
movq -0x2d0(%rbp), %rdi
movb $0x0, -0x6d(%rbp)
callq 0x16df0
movq -0x18(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x60b0
movq %rax, -0x2d8(%rbp)
jmp 0xd8c9
movq -0x2d8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x6550
movb %al, -0x2d9(%rbp)
jmp 0xd8e7
movb -0x2d9(%rbp), %al
testb $0x1, %al
jne 0xd8f6
jmp 0xe1c3
leaq -0x88(%rbp), %rdi
callq 0x15e10
leaq -0x38(%rbp), %rdi
callq 0x1cd20
jmp 0xd90d
leaq -0x38(%rbp), %rdi
callq 0x6640
movq %rax, -0x90(%rbp)
cmpq $0x1, -0x90(%rbp)
jbe 0xd9fe
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x6810
movq %rax, -0x2e8(%rbp)
jmp 0xd941
movq -0x2e8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0xd9fe
movq -0x90(%rbp), %rsi
decq %rsi
leaq -0x38(%rbp), %rdi
callq 0x6810
movq %rax, -0x2f0(%rbp)
jmp 0xd970
movq -0x2f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0xd9fe
movq -0x90(%rbp), %rcx
addq $-0x2, %rcx
leaq -0xb0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x1, %edx
callq 0x6420
jmp 0xd9a1
leaq -0x58(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x6520
leaq -0xb0(%rbp), %rdi
callq 0x6280
jmp 0xe1a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x59(%rbp), %rdi
callq 0x6460
jmp 0xe210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xe1fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xe1b5
cmpq $0x0, -0x90(%rbp)
jbe 0xe1a2
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x6810
movq %rax, -0x2f8(%rbp)
jmp 0xda22
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
je 0xe1a2
movq -0x2d0(%rbp), %rdi
callq 0x341f0
jmp 0xda43
movq -0x2d0(%rbp), %rdi
callq 0x34260
movq %rax, -0xb8(%rbp)
leaq -0x38(%rbp), %rdi
movl $0x3d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x65b0
movq %rax, -0xc0(%rbp)
cmpq $-0x1, -0xc0(%rbp)
je 0xdc00
movq -0xc0(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x100(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x6420
jmp 0xda9a
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x1cca0
jmp 0xdaaf
movq -0xb8(%rbp), %rdi
addq $0x18, %rdi
leaq -0xe0(%rbp), %rsi
movq %rsi, -0x300(%rbp)
callq 0x6520
movq -0x300(%rbp), %rdi
callq 0x6280
leaq -0x100(%rbp), %rdi
callq 0x6280
movq -0xc0(%rbp), %rdx
incq %rdx
leaq -0x140(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movq $-0x1, %rcx
callq 0x6420
jmp 0xdb08
leaq -0x120(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x1cca0
jmp 0xdb1d
leaq -0x140(%rbp), %rdi
callq 0x6280
leaq -0x178(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x61d0
jmp 0xdb3e
leaq -0x158(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x342a0
jmp 0xdb53
leaq -0x88(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x1d9a0
leaq -0x158(%rbp), %rdi
callq 0x8710
leaq -0x178(%rbp), %rdi
callq 0x6280
leaq -0x120(%rbp), %rdi
callq 0x6280
jmp 0xdded
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x6280
jmp 0xe1b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x6280
jmp 0xe1b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xdbef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x6280
leaq -0x120(%rbp), %rdi
callq 0x6280
jmp 0xe1b5
leaq -0x198(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1cca0
jmp 0xdc12
movq -0xb8(%rbp), %rdi
addq $0x18, %rdi
leaq -0x198(%rbp), %rsi
movq %rsi, -0x318(%rbp)
callq 0x6520
movq -0x318(%rbp), %rdi
callq 0x6280
movb $0x1, -0x1d2(%rbp)
leaq -0x1c8(%rbp), %rax
movq %rax, -0x310(%rbp)
movq %rax, -0x1d0(%rbp)
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0x6770
movq -0x310(%rbp), %rdi
movq -0x308(%rbp), %rdx
leaq 0x33d5c(%rip), %rsi     # 0x419dc
callq 0x8eb0
jmp 0xdc87
movb $0x0, -0x1d2(%rbp)
leaq -0x1c8(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq $0x1, -0x1a0(%rbp)
movq -0x1a8(%rbp), %rsi
movq -0x1a0(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x349c0
jmp 0xdcc3
leaq -0x1c8(%rbp), %rax
movq %rax, -0x328(%rbp)
addq $0x20, %rax
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x330(%rbp)
callq 0x6280
movq -0x328(%rbp), %rcx
movq -0x330(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x320(%rbp)
jne 0xdcdc
leaq -0x1d1(%rbp), %rdi
callq 0x6460
jmp 0xdded
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xdd84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1c8(%rbp), %rax
movq %rax, -0x340(%rbp)
addq $0x20, %rax
movq %rax, -0x338(%rbp)
movq -0x338(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x348(%rbp)
callq 0x6280
movq -0x340(%rbp), %rcx
movq -0x348(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x338(%rbp)
jne 0xdd51
jmp 0xdd84
leaq -0x1d1(%rbp), %rdi
callq 0x6460
testb $0x1, -0x1d2(%rbp)
jne 0xdd9b
jmp 0xdde8
movq -0x1d0(%rbp), %rax
leaq -0x1c8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x350(%rbp)
je 0xdde6
movq -0x350(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x358(%rbp)
callq 0x6280
movq -0x358(%rbp), %rax
leaq -0x1c8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x350(%rbp)
jne 0xddb5
jmp 0xdde8
jmp 0xe1b5
leaq -0x218(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x61d0
jmp 0xddff
leaq -0x1f8(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x1eae0
jmp 0xde14
leaq 0x334c6(%rip), %rsi     # 0x412e1
leaq -0x1f8(%rbp), %rdi
callq 0x34a10
movb %al, -0x359(%rbp)
jmp 0xde2f
leaq -0x1f8(%rbp), %rdi
callq 0x6280
leaq -0x218(%rbp), %rdi
callq 0x6280
movb -0x359(%rbp), %al
testb $0x1, %al
jne 0xde56
jmp 0xdfe1
leaq -0x248(%rbp), %rdi
movq %rdi, -0x250(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x61d0
jmp 0xde6f
leaq -0x248(%rbp), %rax
movq %rax, -0x228(%rbp)
movq $0x1, -0x220(%rbp)
movq -0xb8(%rbp), %rdi
movq -0x228(%rbp), %rsi
movq -0x220(%rbp), %rdx
callq 0x349c0
jmp 0xdea4
leaq -0x248(%rbp), %rax
movq %rax, -0x370(%rbp)
addq $0x20, %rax
movq %rax, -0x368(%rbp)
movq -0x368(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x378(%rbp)
callq 0x6280
movq -0x370(%rbp), %rcx
movq -0x378(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x368(%rbp)
jne 0xdebd
jmp 0xdfe1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xdf19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x6280
leaq -0x218(%rbp), %rdi
callq 0x6280
jmp 0xe1b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movq -0x250(%rbp), %rax
leaq -0x248(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x380(%rbp)
je 0xdf81
movq -0x380(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x388(%rbp)
callq 0x6280
movq -0x388(%rbp), %rax
leaq -0x248(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x380(%rbp)
jne 0xdf50
jmp 0xe1b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x248(%rbp), %rax
movq %rax, -0x398(%rbp)
addq $0x20, %rax
movq %rax, -0x390(%rbp)
movq -0x390(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x6280
movq -0x398(%rbp), %rcx
movq -0x3a0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x390(%rbp)
jne 0xdfab
jmp 0xe1b5
movq -0xb8(%rbp), %rdi
addq $0x18, %rdi
movl $0x2e, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x65b0
cmpq $-0x1, %rax
je 0xe10c
movq -0xb8(%rbp), %rsi
addq $0x18, %rsi
leaq -0x268(%rbp), %rdi
movl $0x2e, %edx
callq 0x34a40
jmp 0xe022
leaq -0x268(%rbp), %rdi
callq 0x162e0
movq %rax, %rsi
movq -0xb8(%rbp), %rdi
addq $0x18, %rdi
callq 0x6060
jmp 0xe043
leaq -0x268(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x23ec0
movq -0xb8(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x11e10
movq %rax, -0x278(%rbp)
leaq -0x270(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x34c80
movq -0x3b8(%rbp), %rdi
callq 0x11de0
movq -0x3b8(%rbp), %rdi
movq %rax, -0x280(%rbp)
callq 0x11e10
movq -0x3b0(%rbp), %rdi
movq %rax, -0x288(%rbp)
movq -0x270(%rbp), %rsi
movq -0x280(%rbp), %rdx
movq -0x288(%rbp), %rcx
callq 0x34bd0
movq %rax, -0x3a8(%rbp)
jmp 0xe0d3
movq -0x3a8(%rbp), %rax
movq %rax, -0x290(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x8710
jmp 0xe10c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x8710
jmp 0xe1b5
movq -0xb8(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x2fbf0
movq %rax, -0x2a0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x34c80
leaq -0x88(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x2fbc0
movq -0x3d0(%rbp), %rdi
movq %rax, -0x2a8(%rbp)
callq 0x2fbf0
movq -0x3c8(%rbp), %rdi
movq %rax, -0x2b0(%rbp)
movq -0x298(%rbp), %rsi
movq -0x2a8(%rbp), %rdx
movq -0x2b0(%rbp), %rcx
callq 0x34bd0
movq %rax, -0x3c0(%rbp)
jmp 0xe194
movq -0x3c0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
jmp 0xe1a4
leaq -0x88(%rbp), %rdi
callq 0x8710
jmp 0xd8b3
leaq -0x88(%rbp), %rdi
callq 0x8710
jmp 0xe1fb
movb $0x1, -0x6d(%rbp)
testb $0x1, -0x6d(%rbp)
jne 0xe1d9
movq -0x2d0(%rbp), %rdi
callq 0x16f00
leaq -0x58(%rbp), %rdi
callq 0x6280
leaq -0x38(%rbp), %rdi
callq 0x6280
movq -0x2c8(%rbp), %rax
addq $0x3d0, %rsp            # imm = 0x3D0
popq %rbp
retq
movq -0x2d0(%rbp), %rdi
callq 0x16f00
leaq -0x58(%rbp), %rdi
callq 0x6280
leaq -0x38(%rbp), %rdi
callq 0x6280
movq -0x68(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)
nopl (%rax)