// File: /workspace/github_cpp_makefile_star2_O3/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
movq %rdi, %rbx
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq -0x138(%rbp), %r13
leaq 0xd0(%rdi), %r14
leaq -0x68(%rbp), %r15
leaq -0x148(%rbp), %r12
movq (%rbx), %rax
movq %rbx, %rdi
movq %r15, %rsi
callq *0x10(%rax)
testb %al, %al
je 0x12eb4
movq %r15, %rdi
movl $0x23, %esi
xorl %edx, %edx
callq 0xb5c0
cmpq $-0x1, %rax
je 0x12d8e
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0xb490
movq %r15, %rdi
movq %r12, %rsi
callq 0xb560
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x12d8e
callq 0xb430
movq %r12, %rdi
movq %r15, %rsi
callq 0x130e6
movq %r15, %rdi
movq %r12, %rsi
callq 0xb560
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x12db5
callq 0xb430
movq -0x60(%rbp), %rcx
testq %rcx, %rcx
je 0x12d39
movq -0x68(%rbp), %rax
cmpb $0x5b, (%rax)
jne 0x12e2d
cmpb $0x5d, -0x1(%rax,%rcx)
jne 0x12e2d
addq $-0x2, %rcx
movl $0x1, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0xb490
movq %r14, %rdi
movq %r12, %rsi
callq 0xb560
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x12e02
callq 0xb430
movq 0xd0(%rbx), %rax
movq 0xd8(%rbx), %rcx
cmpb $0x2e, -0x1(%rax,%rcx)
je 0x12d39
movq %r14, %rdi
movl $0x2e, %esi
callq 0xb3f0
jmp 0x12d39
leaq -0x68(%rbp), %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0xb5c0
cmpq $-0x1, %rax
je 0x12ffd
movq %rax, %r14
leaq -0x88(%rbp), %rdi
leaq -0x68(%rbp), %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0xb490
leaq -0x148(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x130e6
movq 0xd0(%rbx), %rcx
movq 0xd8(%rbx), %r8
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb4f0
leaq -0x38(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x12ebd
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x12ec3
movb $0x1, 0x8(%rbx)
jmp 0x12fd9
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x12eeb
callq 0xb430
leaq -0x78(%rbp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x12efe
callq 0xb430
incq %r14
leaq -0x148(%rbp), %rdi
leaq -0x68(%rbp), %rsi
movq %r14, %rdx
movq $-0x1, %rcx
callq 0xb490
leaq -0x88(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x130e6
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x12f3f
callq 0xb430
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x1316e
movl %eax, %r14d
testb %al, %al
jne 0x12f5f
cmpb $0x0, 0xf0(%rbx)
je 0x1301e
leaq 0x10(%rbx), %rdi
leaq -0x48(%rbp), %rsi
callq 0xb290
leaq 0x38(%rbx), %r15
movq %r15, %rdi
callq 0xee2a
leaq -0x88(%rbp), %rsi
movq %r15, %rdi
callq 0xe894
xorb $0x1, %r14b
movb %r14b, 0x68(%rbx)
addq $0x50, %rbx
movq %rbx, %rdi
callq 0xee2a
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0xe894
leaq -0x88(%rbp), %rsi
movq %rbx, %rdi
callq 0xe894
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x12fc7
callq 0xb430
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x12fd9
callq 0xb430
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x12feb
callq 0xb430
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x148(%rbp), %rdi
leaq -0x68(%rbp), %rsi
movl $0x24, %edx
callq 0x134c4
leaq -0x148(%rbp), %rdi
callq 0x133cd
leaq -0x148(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xebb4
leaq -0x148(%rbp), %rdi
callq 0xeac9
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0xed30
jmp 0x1309e
jmp 0x1309b
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0xed30
jmp 0x130cc
jmp 0x130c9
movq %rax, %rbx
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
jne 0x130aa
jmp 0x130af
movq %rax, %rbx
jmp 0x130af
movq %rax, %rbx
movq -0x148(%rbp), %rdi
cmpq %r13, %rdi
je 0x1308f
callq 0xb430
jmp 0x1308f
movq %rax, %rbx
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x130b7
jmp 0x130c9
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x130af
callq 0xb430
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x130cc
callq 0xb430
jmp 0x130cc
jmp 0x130c9
jmp 0x130c9
jmp 0x130c9
movq %rax, %rbx
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x130de
callq 0xb430
movq %rbx, %rdi
callq 0xb7f0