// File: /workspace/github_cpp_makefile_star2_O2/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
andq $0x0, 0x10(%rdi)
movups %xmm0, (%rdi)
movq (%rdx), %r15
cmpq $0x3, 0x8(%r15)
jb 0xdac6
movq (%r15), %rax
cmpb $0x2d, (%rax)
jne 0xdac6
cmpb $0x2d, 0x1(%rax)
jne 0xdac6
movq %rdx, %r14
movq %rsi, %r12
leaq -0x58(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
pushq $0x3d
popq %rsi
movq %r15, %rdi
xorl %edx, %edx
callq 0xc610
cmpq $-0x1, %rax
je 0xd9fd
movq %rax, %r13
leaq -0x2(%rax), %rcx
leaq -0x128(%rbp), %rdi
pushq $0x2
popq %rdx
movq %r15, %rsi
callq 0xc4f0
leaq -0x68(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xc5a0
leaq -0x128(%rbp), %rdi
callq 0xc9a0
incq %r13
leaq -0x128(%rbp), %rdi
pushq $-0x1
popq %rcx
movq %r15, %rsi
movq %r13, %rdx
callq 0xc4f0
leaq -0x48(%rbp), %rdi
leaq -0x128(%rbp), %r13
movq %r13, %rsi
callq 0xc5a0
movq %r13, %rdi
callq 0xc9a0
leaq -0x48(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xda2d
movq %r12, %rdi
callq 0xcf48
leaq -0x128(%rbp), %rdi
pushq $0x21
popq %rsi
leaq -0x68(%rbp), %rcx
movq %rcx, %rdx
movl %eax, %r8d
callq 0xee42
leaq -0x128(%rbp), %rdi
callq 0xedbe
leaq -0x128(%rbp), %rdi
pushq $0x2
popq %rdx
pushq $-0x1
popq %rcx
movq %r15, %rsi
callq 0xc4f0
leaq -0x68(%rbp), %rdi
leaq -0x128(%rbp), %r12
movq %r12, %rsi
callq 0xc5a0
movq %r12, %rdi
callq 0xc9a0
leaq -0x118(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
orl $-0x1, 0x10(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rax)
movups %xmm0, 0x28(%rax)
movups %xmm0, 0x38(%rax)
andw $0x0, 0x48(%rax)
leaq -0x128(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0xc2b0
cmpq $0x0, -0x40(%rbp)
je 0xda7f
leaq -0x100(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xeaf4
leaq -0xe8(%rbp), %rdi
movq %r15, %rsi
callq 0xeaf4
leaq -0x128(%rbp), %rsi
movq %rbx, %rdi
callq 0xea8c
movq (%r14), %rsi
movq %r14, %rdi
callq 0xeb30
leaq -0x128(%rbp), %rdi
callq 0xeb3a
leaq -0x48(%rbp), %rdi
callq 0xc9a0
leaq -0x68(%rbp), %rdi
callq 0xc9a0
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 0xee62
jmp 0xdb08
jmp 0xdaf2
jmp 0xdaf2
jmp 0xdaf2
movq %rax, %r14
jmp 0xdb08
jmp 0xdaf9
movq %rax, %r14
leaq -0x128(%rbp), %rdi
callq 0xeb3a
leaq -0x48(%rbp), %rdi
callq 0xc9a0
leaq -0x68(%rbp), %rdi
callq 0xc9a0
movq %rbx, %rdi
callq 0xeac8
movq %r14, %rdi
callq 0xc850