// 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::add_option(char const*)
void
    common_config_file_iterator::add_option(const char* name)
    {
        string s(name);
        assert(!s.empty());
        if (*s.rbegin() == '*') {
            s.resize(s.size()-1);
            bool bad_prefixes(false);
            // If 's' is a prefix of one of allowed suffix, then
            // lower_bound will return that element.
            // If some element is prefix of 's', then lower_bound will
            // return the next element.
            set<string>::iterator i = allowed_prefixes.lower_bound(s);
            if (i != allowed_prefixes.end()) {
                if (i->find(s) == 0)
                    bad_prefixes = true;                    
            }
            if (i != allowed_prefixes.begin()) {
                --i;
                if (s.find(*i) == 0)
                    bad_prefixes = true;
            }
            if (bad_prefixes)
                boost::throw_exception(error("options '" + string(name) + "' and '" +
                                             *i + "*' will both match the same "
                                             "arguments from the configuration file"));
            allowed_prefixes.insert(s);
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rsi, %rbx
movq %rdi, %r12
leaq -0x50(%rbp), %r14
leaq -0x80(%rbp), %rdx
movq %r14, %rdi
callq 0xc1b0
movq 0x8(%r14), %rsi
testq %rsi, %rsi
je 0x125e9
movq -0x50(%rbp), %rax
cmpb $0x2a, -0x1(%rax,%rsi)
jne 0x1253b
decq %rsi
leaq -0x50(%rbp), %rdi
callq 0xc670
leaq 0xa0(%r12), %r15
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1332e
movq %rax, %r14
leaq 0xa8(%r12), %rax
cmpq %rax, %r14
je 0x124fd
movq %r14, %rdi
addq $0x20, %rdi
leaq -0x50(%rbp), %rsi
xorl %edx, %edx
callq 0xc960
testq %rax, %rax
sete %r13b
jmp 0x12500
xorl %r13d, %r13d
cmpq 0xb8(%r12), %r14
je 0x12556
movq %r14, %rdi
callq 0xc2e0
movq %rax, %r14
leaq 0x20(%rax), %rsi
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0xc960
testq %rax, %rax
sete %al
orb %r13b, %al
jne 0x1255b
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1368a
leaq -0x50(%rbp), %rdi
callq 0xc9a0
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %r13b, %r13b
je 0x1252f
leaq -0xa0(%rbp), %rdi
leaq -0x29(%rbp), %rdx
movq %rbx, %rsi
callq 0xc1b0
leaq 0x1a8b5(%rip), %rsi     # 0x2ce2a
leaq -0xc0(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0xef3a
leaq 0x1a8a5(%rip), %rdx     # 0x2ce34
leaq -0xe0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x12ae9
addq $0x20, %r14
leaq -0x100(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movq %r14, %rdx
callq 0x12b12
leaq 0x1a879(%rip), %rdx     # 0x2ce3c
leaq -0x80(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x12ae9
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xf0a4
leaq -0x60(%rbp), %rdi
callq 0x12a74
leaq 0x1a7a9(%rip), %rdi     # 0x2cd99
leaq 0x1a7ad(%rip), %rsi     # 0x2cda4
leaq 0x1a7d1(%rip), %rcx     # 0x2cdcf
pushq $0x29
popq %rdx
callq 0xc350
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xc860
jmp 0x12617
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0xc9a0
jmp 0x12625
movq %rax, %rbx
leaq -0x100(%rbp), %rdi
callq 0xc9a0
jmp 0x12636
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
callq 0xc9a0
jmp 0x12647
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0xc9a0
jmp 0x12658
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0xc9a0
jmp 0x1266d
jmp 0x1266a
jmp 0x1266a
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0xc9a0
movq %rbx, %rdi
callq 0xc850