// File: demon386[P]git-store/./libs/program_options/src/config_file.cpp
// Function: boost::program_options::detail::common_config_file_iterator::get()
void common_config_file_iterator::get()
    {
        string s;
        string::size_type n;
        bool found = false;

        while(this->getline(s)) {

            // strip '#' comments and whitespace
            if ((n = s.find('#')) != string::npos)
                s = s.substr(0, n);
            s = trim_ws(s);

            if (!s.empty()) {
                // Handle section name
                if (*s.begin() == '[' && *s.rbegin() == ']') {
                    m_prefix = s.substr(1, s.size()-2);
                    if (*m_prefix.rbegin() != '.')
                        m_prefix += '.';
                }
                else if ((n = s.find('=')) != string::npos) {

                    string name = m_prefix + trim_ws(s.substr(0, n));
                    string value = trim_ws(s.substr(n+1));

                    bool registered = allowed_option(name);
                    if (!registered && !m_allow_unregistered)
                        boost::throw_exception(unknown_option(name));

                    found = true;
                    this->value().string_key = name;
                    this->value().value.clear();
                    this->value().value.push_back(value);
                    this->value().unregistered = !registered;
                    this->value().original_tokens.clear();
                    this->value().original_tokens.push_back(name);
                    this->value().original_tokens.push_back(value);
                    break;

                } else {
                    boost::throw_exception(invalid_config_file_syntax(s, invalid_syntax::unrecognized_line));
                }
            }
        }
        if (!found)
            found_eof();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2e8(%rbp)
leaq -0x28(%rbp), %rdi
callq 0xd8f0
movb $0x0, -0x31(%rbp)
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
leaq -0x28(%rbp), %rsi
callq *%rax
movb %al, -0x2e9(%rbp)
jmp 0x1df53
movb -0x2e9(%rbp), %al
testb $0x1, %al
jne 0x1df62
jmp 0x1e4e4
leaq -0x28(%rbp), %rdi
movl $0x23, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0xd850
movq %rax, -0x30(%rbp)
cmpq $-0x1, %rax
je 0x1dfbe
movq -0x30(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x68(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xd650
jmp 0x1df95
leaq -0x28(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xd790
leaq -0x68(%rbp), %rdi
callq 0xdca8
jmp 0x1dfbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1e510
leaq -0x88(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1e530
jmp 0x1dfd0
leaq -0x28(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xd790
leaq -0x88(%rbp), %rdi
callq 0xdca8
leaq -0x28(%rbp), %rdi
callq 0xdab0
testb $0x1, %al
jne 0x1e4df
leaq -0x28(%rbp), %rdi
callq 0xd550
movq %rax, -0x90(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1ead0
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x5b, %ecx
movb %al, -0x2ea(%rbp)
jne 0x1e06b
leaq -0x98(%rbp), %rdi
movq %rdi, -0x300(%rbp)
leaq -0x28(%rbp), %rsi
callq 0xdb10
movq -0x300(%rbp), %rdi
callq 0x1e870
movq %rax, -0x2f8(%rbp)
jmp 0x1e055
movq -0x2f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
sete %al
movb %al, -0x2ea(%rbp)
movb -0x2ea(%rbp), %al
testb $0x1, %al
jne 0x1e07a
jmp 0x1e13e
leaq -0x28(%rbp), %rdi
movq %rdi, -0x308(%rbp)
callq 0xd430
movq -0x308(%rbp), %rsi
movq %rax, %rcx
addq $-0x2, %rcx
leaq -0xb8(%rbp), %rdi
movl $0x1, %edx
callq 0xd650
jmp 0x1e0ab
movq -0x2e8(%rbp), %rdi
addq $0xd0, %rdi
movq %rdi, -0x320(%rbp)
leaq -0xb8(%rbp), %rsi
movq %rsi, -0x328(%rbp)
callq 0xd790
movq -0x328(%rbp), %rdi
callq 0xdca8
movq -0x320(%rbp), %rsi
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0xdb10
movq -0x318(%rbp), %rdi
callq 0x1e870
movq %rax, -0x310(%rbp)
jmp 0x1e10e
movq -0x310(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0x1e139
movq -0x2e8(%rbp), %rdi
addq $0xd0, %rdi
movl $0x2e, %esi
callq 0xd3c0
jmp 0x1e137
jmp 0x1e139
jmp 0x1e4dd
leaq -0x28(%rbp), %rdi
movl $0x3d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0xd850
movq %rax, -0x30(%rbp)
cmpq $-0x1, %rax
je 0x1e49e
movq -0x2e8(%rbp), %rax
addq $0xd0, %rax
movq %rax, -0x330(%rbp)
movq -0x30(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x120(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0xd650
jmp 0x1e18c
leaq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x1e530
jmp 0x1e1a1
movq -0x330(%rbp), %rsi
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x1eaf0
jmp 0x1e1bd
leaq -0x100(%rbp), %rdi
callq 0xdca8
leaq -0x120(%rbp), %rdi
callq 0xdca8
movq -0x30(%rbp), %rdx
incq %rdx
leaq -0x160(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movq $-0x1, %rcx
callq 0xd650
jmp 0x1e1f5
leaq -0x140(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x1e530
jmp 0x1e20a
leaq -0x160(%rbp), %rdi
callq 0xdca8
movq -0x2e8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x1e5c0
movb %al, -0x331(%rbp)
jmp 0x1e231
movb -0x331(%rbp), %al
andb $0x1, %al
movb %al, -0x161(%rbp)
testb $0x1, -0x161(%rbp)
jne 0x1e316
movq -0x2e8(%rbp), %rax
testb $0x1, 0xf0(%rax)
jne 0x1e316
leaq -0x220(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x12d50
jmp 0x1e275
leaq -0x220(%rbp), %rdi
callq 0x12c70
jmp 0x1e283
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1e2a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x100(%rbp), %rdi
callq 0xdca8
leaq -0x120(%rbp), %rdi
callq 0xdca8
jmp 0x1e510
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1e490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x160(%rbp), %rdi
callq 0xdca8
jmp 0x1e490
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1e484
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x12e00
jmp 0x1e484
movq -0x2e8(%rbp), %rdi
movb $0x1, -0x31(%rbp)
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x340(%rbp)
jmp 0x1e333
movq -0x340(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0xd060
jmp 0x1e348
movq -0x2e8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x348(%rbp)
jmp 0x1e361
movq -0x348(%rbp), %rdi
addq $0x28, %rdi
callq 0x13150
movq -0x2e8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x350(%rbp)
jmp 0x1e38a
movq -0x350(%rbp), %rdi
addq $0x28, %rdi
leaq -0x140(%rbp), %rsi
callq 0x127b0
jmp 0x1e3a3
movq -0x2e8(%rbp), %rdi
movb -0x161(%rbp), %al
xorb $0x1, %al
movb %al, -0x359(%rbp)
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x358(%rbp)
jmp 0x1e3ca
movq -0x2e8(%rbp), %rdi
movq -0x358(%rbp), %rax
movb -0x359(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x58(%rax)
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x368(%rbp)
jmp 0x1e3f6
movq -0x368(%rbp), %rdi
addq $0x40, %rdi
callq 0x13150
movq -0x2e8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x370(%rbp)
jmp 0x1e41f
movq -0x370(%rbp), %rdi
addq $0x40, %rdi
leaq -0xe0(%rbp), %rsi
callq 0x127b0
jmp 0x1e438
movq -0x2e8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1eb40
movq %rax, -0x378(%rbp)
jmp 0x1e451
movq -0x378(%rbp), %rdi
addq $0x40, %rdi
leaq -0x140(%rbp), %rsi
callq 0x127b0
jmp 0x1e46a
leaq -0x140(%rbp), %rdi
callq 0xdca8
leaq -0xe0(%rbp), %rdi
callq 0xdca8
jmp 0x1e4e4
leaq -0x140(%rbp), %rdi
callq 0xdca8
leaq -0xe0(%rbp), %rdi
callq 0xdca8
jmp 0x1e510
leaq -0x2e0(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movl $0x24, %edx
callq 0x1ec40
jmp 0x1e4b5
leaq -0x2e0(%rbp), %rdi
callq 0x1eb60
jmp 0x1e4c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x1ee40
jmp 0x1e510
jmp 0x1e4df
jmp 0x1df37
testb $0x1, -0x31(%rbp)
jne 0x1e4fe
movq -0x2e8(%rbp), %rdi
addq $0x8, %rdi
callq 0x1ee60
jmp 0x1e4fc
jmp 0x1e4fe
leaq -0x28(%rbp), %rdi
callq 0xdca8
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0xdca8
movq -0x40(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)