// File: /workspace/github_cpp_makefile_star2_O3/demon386[P]git-store/./libs/program_options/src/cmdline.cpp
// Function: boost::program_options::detail::cmdline::parse_long_option(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
vector<option> 
    cmdline::parse_long_option(vector<string>& args)
    {
        vector<option> result;
        const string& tok = args[0];
        if (tok.size() >= 3 && tok[0] == '-' && tok[1] == '-')
        {   
            string name, adjacent;

            string::size_type p = tok.find('=');
            if (p != tok.npos)
            {
                name = tok.substr(2, p-2);
                adjacent = tok.substr(p+1);
                if (adjacent.empty())
                    boost::throw_exception( invalid_command_line_syntax(
                                                      invalid_command_line_syntax::empty_adjacent_parameter, 
                                                      name,
                                                      name,
                                                      get_canonical_option_prefix()) );
            }
            else
            {
                name = tok.substr(2);
            }
            option opt;
            opt.string_key = name;
            if (!adjacent.empty())
                opt.value.push_back(adjacent);
            opt.original_tokens.push_back(tok);
            result.push_back(opt);
            args.erase(args.begin());
        }
        return result;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq (%rdx), %r15
cmpq $0x3, 0x8(%r15)
jb 0xd2c0
movq (%r15), %rax
cmpb $0x2d, (%rax)
jne 0xd2c0
cmpb $0x2d, 0x1(%rax)
jne 0xd2c0
movq %rdx, %r14
movq %rsi, %r12
leaq -0x58(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq %r15, %rdi
movl $0x3d, %esi
xorl %edx, %edx
callq 0xb5c0
cmpq $-0x1, %rax
je 0xd1a1
movq %rax, %r13
leaq -0x2(%rax), %rcx
leaq -0x128(%rbp), %rdi
movl $0x2, %edx
movq %r15, %rsi
callq 0xb490
leaq -0x68(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xb560
leaq -0x128(%rbp), %rax
movq (%rax), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0xd0f0
callq 0xb430
incq %r13
leaq -0x128(%rbp), %rdi
movq %r15, %rsi
movq %r13, %rdx
movq $-0x1, %rcx
callq 0xb490
leaq -0x48(%rbp), %rdi
leaq -0x128(%rbp), %r13
movq %r13, %rsi
callq 0xb560
movq (%r13), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0xd134
callq 0xb430
cmpq $0x0, -0x40(%rbp)
jne 0xd1e4
movl 0x18(%r12), %eax
movl $0x1, %r8d
testb $0x1, %al
jne 0xd173
movl $0x1000, %r8d           # imm = 0x1000
btl $0xc, %eax
jb 0xd173
notl %eax
movl $0x4, %r8d
testb $0x6, %al
je 0xd173
xorl %r8d, %r8d
testb $0xa, %al
sete %r8b
shll $0x3, %r8d
leaq -0x128(%rbp), %rdi
leaq -0x68(%rbp), %rcx
movl $0x21, %esi
movq %rcx, %rdx
callq 0xf778
leaq 0x3bf4e(%rip), %rax     # 0x490e0
leaq -0x128(%rbp), %rdi
movq %rax, (%rdi)
callq 0xec38
leaq -0x128(%rbp), %rdi
movl $0x2, %edx
movq %r15, %rsi
movq $-0x1, %rcx
callq 0xb490
leaq -0x68(%rbp), %rdi
leaq -0x128(%rbp), %r12
movq %r12, %rsi
callq 0xb560
movq (%r12), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0xd1e4
callq 0xb430
leaq -0x118(%rbp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movl $0xffffffff, 0x10(%r12) # imm = 0xFFFFFFFF
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%r12)
movups %xmm0, 0x28(%r12)
movups %xmm0, 0x38(%r12)
movw $0x0, 0x48(%r12)
leaq -0x128(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xb290
cmpq $0x0, -0x40(%rbp)
je 0xd24b
leaq -0x48(%rbp), %rsi
leaq -0x100(%rbp), %rdi
callq 0xe894
leaq -0xe8(%rbp), %r13
movq %r13, %rdi
movq %r15, %rsi
callq 0xe894
leaq -0x128(%rbp), %rsi
movq %rbx, %rdi
callq 0xe828
movq (%r14), %rsi
movq %r14, %rdi
callq 0x11356
movq %r13, %rdi
callq 0xe470
leaq -0x100(%rbp), %rdi
callq 0xe470
movq -0x128(%rbp), %rdi
cmpq %r12, %rdi
je 0xd29c
callq 0xb430
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xd2ae
callq 0xb430
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xd2c0
callq 0xb430
movq %rbx, %rax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq -0x128(%rbp), %rdi
callq 0xed30
jmp 0xd302
jmp 0xd2ec
jmp 0xd2ec
jmp 0xd2ec
movq %rax, %r14
jmp 0xd302
jmp 0xd2f3
movq %rax, %r14
leaq -0x128(%rbp), %rdi
callq 0xe8e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0xd314
callq 0xb430
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0xd326
callq 0xb430
movq %rbx, %rdi
callq 0xe860
movq %r14, %rdi
callq 0xb7f0