// File: /workspace/github_cpp_makefile_star2_O1/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 0x12c31
movq -0x50(%rbp), %rax
cmpb $0x2a, -0x1(%rax,%rsi)
jne 0x12c0d
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 0x13d3c
movq %rax, %rbx
cmpq %r13, %rax
je 0x12bc0
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 0x12bc3
xorl %r13d, %r13d
cmpq 0xb8(%r12), %rbx
je 0x12bfc
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
movzbl %r13b, %eax
movl $0x1, %r13d
cmovnel %eax, %r13d
testb %r13b, %r13b
jne 0x12c50
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x141d4
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12c1f
callq 0xb430
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20189(%rip), %rdi     # 0x32dc1
leaq 0x2018d(%rip), %rsi     # 0x32dcc
leaq 0x201b1(%rip), %rcx     # 0x32df7
movl $0x29, %edx
callq 0xb310
leaq -0xc0(%rbp), %rdi
leaq -0x29(%rbp), %rdx
movq %r14, %rsi
callq 0xb1c0
leaq 0x201e8(%rip), %rsi     # 0x32e52
leaq -0xe0(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x13493
leaq 0x201d8(%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 0x12cb3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x12cc4
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 0x1342f
leaq 0x20168(%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 0x12d28
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x12d33
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 0x36212(%rip), %rax     # 0x48f70
leaq -0x80(%rbp), %rdi
movq %rax, (%rdi)
callq 0x1335c
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0xb800
jmp 0x12d7b
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x12d8e
callq 0xb430
jmp 0x12d8e
movq %rax, %rbx
leaq -0xf0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12da8
callq 0xb430
jmp 0x12da8
movq %rax, %rbx
movq -0xa0(%rbp), %rdi
cmpq %r14, %rdi
je 0x12dbe
callq 0xb430
jmp 0x12dbe
movq %rax, %rbx
leaq -0xd0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12dd8
callq 0xb430
jmp 0x12dd8
movq %rax, %rbx
leaq -0xb0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12df6
callq 0xb430
jmp 0x12df6
jmp 0x12df3
jmp 0x12df3
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x12e08
callq 0xb430
movq %rbx, %rdi
callq 0xb7f0