// 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::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, %r14
movq %rdi, %r12
leaq -0x50(%rbp), %rbx
leaq -0x70(%rbp), %rdx
movq %rbx, %rdi
callq 0xb1c0
movq 0x8(%rbx), %rsi
testq %rsi, %rsi
je 0x12b7a
movq -0x50(%rbp), %rdi
cmpb $0x2a, -0x1(%rdi,%rsi)
jne 0x12af2
decq %rsi
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0xb140
leaq 0xa0(%r12), %r15
movq 0xb0(%r12), %rsi
leaq 0xa8(%r12), %r13
leaq -0x50(%rbp), %rcx
movq %r15, %rdi
movq %r13, %rdx
callq 0x13bee
movq %rax, %rbx
cmpq %r13, %rax
je 0x12aac
movq %rbx, %rdi
addq $0x20, %rdi
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rcx
xorl %edx, %edx
callq 0xb7e0
testq %rax, %rax
sete %r13b
jmp 0x12aaf
xorl %r13d, %r13d
cmpq 0xb8(%r12), %rbx
je 0x12b12
movq %rbx, %rdi
callq 0xb2b0
movq %rax, %rbx
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rcx
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0xb7e0
testq %rax, %rax
sete %al
orb %r13b, %al
jne 0x12b17
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x14086
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x12b00
callq 0xb430
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %r13b, %r13b
je 0x12ae2
leaq -0xc0(%rbp), %rdi
leaq -0x29(%rbp), %rdx
movq %r14, %rsi
callq 0xb1c0
leaq 0x20321(%rip), %rsi     # 0x32e52
leaq -0xe0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x13353
leaq 0x20311(%rip), %rsi     # 0x32e5c
leaq -0xe0(%rbp), %rdi
callq 0xb880
leaq -0x90(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x12b99
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x12baa
leaq 0x20240(%rip), %rdi     # 0x32dc1
leaq 0x20244(%rip), %rsi     # 0x32dcc
leaq 0x20268(%rip), %rcx     # 0x32df7
movl $0x29, %edx
callq 0xb310
movq %rdx, -0xa0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x90(%rbp)
movq 0x8(%rax), %rdx
leaq -0xa0(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
addq $0x20, %rbx
leaq -0x100(%rbp), %rdi
movq %rbx, %rdx
callq 0x132ef
leaq 0x20282(%rip), %rsi     # 0x32e64
leaq -0x100(%rbp), %rdi
callq 0xb880
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x12c0e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x12c19
movq %rdx, -0x70(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x60(%rbp)
movq 0x8(%rax), %rdx
leaq -0x70(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x80(%rbp), %rdi
callq 0xb910
leaq 0x36394(%rip), %rax     # 0x48fd8
leaq -0x80(%rbp), %rdi
movq %rax, (%rdi)
callq 0x1321c
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0xb800
jmp 0x12c61
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x12c74
callq 0xb430
jmp 0x12c74
movq %rax, %rbx
leaq -0xf0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12c8e
callq 0xb430
jmp 0x12c8e
movq %rax, %rbx
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
je 0x12ca4
callq 0xb430
jmp 0x12ca4
movq %rax, %rbx
leaq -0xd0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12cbe
callq 0xb430
jmp 0x12cbe
movq %rax, %rbx
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12cdc
callq 0xb430
jmp 0x12cdc
jmp 0x12cd9
jmp 0x12cd9
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12cee
callq 0xb430
movq %rbx, %rdi
callq 0xb7f0