// File: /workspace/github_cpp_makefile_star2_O2/myint[P]optparse/./optparse.h
// Function: optparse::OptionParser::handle_long_opt(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void handle_long_opt(const std::string &optstr)
        {
            _remaining.pop_front();
            std::string opt;
            std::string value;

            size_t delim = optstr.find('=');
            if (delim != std::string::npos)
            {
                opt = optstr.substr(0, delim);
                value = optstr.substr(delim + 1);
            }
            else
            {
                opt = optstr;
            }

            const Option &option = lookup_long_opt(opt);
            if (option._nargs == 1 and delim == std::string::npos)
            {
                if (not _remaining.empty())
                {
                    value = _remaining.front();
                    _remaining.pop_front();
                }
            }

            if (option._nargs == 1 and value.empty())
            {
                error("--" + opt + " " + "option requires an argument");
            }

            process_opt(option, std::string("--") + opt, value);
        }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x208(%rdi), %r15
movq %r15, %rdi
callq 0x9aec
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
pushq $0x3d
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x3310
movq %rax, %r12
cmpq $-0x1, %rax
je 0x9baa
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %r12, %rcx
callq 0x3290
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3160
leaq 0x8(%rsp), %rdi
callq 0x3300
leaq 0x1(%r12), %rdx
leaq 0x8(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %r14, %rsi
callq 0x3290
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x3160
leaq 0x8(%rsp), %rdi
callq 0x3300
jmp 0x9bb7
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x3160
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0xa242
movq %rax, %r14
notq %r12
movq 0xe0(%rax), %rax
movq %rax, %rcx
xorq $0x1, %rcx
orq %r12, %rcx
jne 0x9c07
movq (%r15), %rsi
cmpq %r15, %rsi
je 0x9c04
addq $0x10, %rsi
leaq 0x68(%rsp), %rdi
callq 0x3160
movq %r15, %rdi
callq 0x9aec
movq 0xe0(%r14), %rax
jmp 0x9c07
pushq $0x1
popq %rax
cmpq $0x1, %rax
jne 0x9c8c
cmpq $0x0, 0x70(%rsp)
jne 0x9c8c
leaq 0x3e90(%rip), %rsi      # 0xdaac
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0xa757
leaq 0x3f06(%rip), %rdx      # 0xdb3b
leaq 0x28(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0xa717
leaq 0x3e2f(%rip), %rdx      # 0xda7d
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xa717
movq (%rbx), %rax
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq *0x10(%rax)
leaq 0x8(%rsp), %rdi
callq 0x3300
leaq 0x28(%rsp), %rdi
callq 0x3300
leaq 0x88(%rsp), %rdi
callq 0x3300
leaq 0x3e19(%rip), %rsi      # 0xdaac
leaq 0x28(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x30d0
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xac0d
leaq 0x8(%rsp), %rdx
leaq 0x68(%rsp), %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa7d6
leaq 0x8(%rsp), %rdi
callq 0x3300
leaq 0x28(%rsp), %rdi
callq 0x3300
leaq 0x68(%rsp), %rdi
callq 0x3300
leaq 0x48(%rsp), %rdi
callq 0x3300
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3300
jmp 0x9d50
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3300
jmp 0x9d74
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3300
jmp 0x9d74
movq %rax, %rbx
jmp 0x9d7e
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3300
jmp 0x9d93
jmp 0x9d71
movq %rax, %rbx
jmp 0x9d5a
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3300
leaq 0x88(%rsp), %rdi
callq 0x3300
jmp 0x9d74
jmp 0x9d71
jmp 0x9d71
jmp 0x9d71
jmp 0x9d71
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x3300
leaq 0x48(%rsp), %rdi
callq 0x3300
movq %rbx, %rdi
callq 0x3430
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3300
jmp 0x9d74
movq %rax, %rdi
callq 0x62a4
nop