// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdi, %rbx
movb $0x0, (%rax)
leaq 0xd0(%rdi), %r14
leaq -0x48(%rbp), %r15
pushq $0x23
popq %r12
leaq -0x148(%rbp), %r13
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
callq *0x10(%rax)
testb %al, %al
je 0x128b8
movq %r15, %rdi
movl %r12d, %esi
xorl %edx, %edx
callq 0xc610
cmpq $-0x1, %rax
je 0x12705
movq %r13, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0xc4f0
movq %r15, %rdi
movq %r13, %rsi
callq 0xc5a0
movq %r13, %rdi
callq 0xc9a0
movq %r13, %rdi
movq %r15, %rsi
callq 0x1299c
movq %r15, %rdi
movq %r13, %rsi
callq 0xc5a0
movq %r13, %rdi
callq 0xc9a0
movq -0x40(%rbp), %rcx
testq %rcx, %rcx
je 0x126bb
movq -0x48(%rbp), %rax
cmpb $0x5b, (%rax)
jne 0x1278a
cmpb $0x5d, -0x1(%rax,%rcx)
jne 0x1278a
addq $-0x2, %rcx
movq %r13, %rdi
movq %r15, %rsi
pushq $0x1
popq %rdx
callq 0xc4f0
movq %r14, %rdi
movq %r13, %rsi
callq 0xc5a0
movq %r13, %rdi
callq 0xc9a0
movq 0xd0(%rbx), %rax
movq 0xd8(%rbx), %rcx
cmpb $0x2e, -0x1(%rax,%rcx)
je 0x126bb
movq %r14, %rdi
pushq $0x2e
popq %rsi
callq 0xc430
jmp 0x126bb
leaq -0x48(%rbp), %rdi
pushq $0x3d
popq %rsi
xorl %edx, %edx
callq 0xc610
cmpq $-0x1, %rax
je 0x128d7
movq %rax, %r15
leaq -0x68(%rbp), %rdi
leaq -0x48(%rbp), %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0xc4f0
leaq -0x148(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x1299c
leaq -0x88(%rbp), %rdi
leaq -0x148(%rbp), %rdx
movq %r14, %rsi
callq 0x12b3b
leaq -0x148(%rbp), %rdi
callq 0xc9a0
leaq -0x68(%rbp), %rdi
callq 0xc9a0
incq %r15
leaq -0x148(%rbp), %rdi
leaq -0x48(%rbp), %rsi
pushq $-0x1
popq %rcx
movq %r15, %rdx
callq 0xc4f0
leaq -0x68(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x1299c
leaq -0x148(%rbp), %rdi
callq 0xc9a0
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0x12a0e
movl %eax, %r14d
testb %al, %al
jne 0x1284a
cmpb $0x0, 0xf0(%rbx)
je 0x128f6
leaq 0x10(%rbx), %rdi
leaq -0x88(%rbp), %rsi
callq 0xc2b0
leaq 0x38(%rbx), %r15
movq %r15, %rdi
callq 0xef78
leaq -0x68(%rbp), %rsi
movq %r15, %rdi
callq 0xeaf4
xorb $0x1, %r14b
movb %r14b, 0x68(%rbx)
addq $0x50, %rbx
movq %rbx, %rdi
callq 0xef78
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0xeaf4
leaq -0x68(%rbp), %rsi
movq %rbx, %rdi
callq 0xeaf4
leaq -0x68(%rbp), %rdi
callq 0xc9a0
leaq -0x88(%rbp), %rdi
callq 0xc9a0
jmp 0x128bc
movb $0x1, 0x8(%rbx)
leaq -0x48(%rbp), %rdi
callq 0xc9a0
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x148(%rbp), %rdi
leaq -0x48(%rbp), %rsi
pushq $0x24
popq %rdx
callq 0x12bec
leaq -0x148(%rbp), %rdi
callq 0x12b69
leaq -0x148(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xed54
leaq -0x148(%rbp), %rdi
callq 0xecd1
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0xee62
jmp 0x1296b
jmp 0x12968
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0xee62
jmp 0x1298b
jmp 0x12988
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
jmp 0x1296f
movq %rax, %rbx
jmp 0x12974
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0xc9a0
jmp 0x12960
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
jmp 0x1297b
jmp 0x12988
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0xc9a0
leaq -0x88(%rbp), %rdi
callq 0xc9a0
jmp 0x1298b
jmp 0x12988
jmp 0x12988
jmp 0x12988
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0xc9a0
movq %rbx, %rdi
callq 0xc850