// File: Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: CmdLineArgs::CmdLineArgs(int, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
CmdLineArgs::CmdLineArgs(int argc, char **argv, const std::string &usage_intro, bool allow_set_with_equal)
    :usage_intro_(usage_intro)
{
    for(int i=1; i<argc; ++i) {
        if (allow_set_with_equal) {
            auto vec = split(argv[i], '=');
            args_.reserve(args_.size() + vec.size());
            args_.insert(args_.end(), vec.begin(), vec.end());
        } else {
            args_.push_back(argv[i]);
        }
    }

    usage_intro_ += "\nOptions are:";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
movq %rdi, %rax
movq %rax, -0xe0(%rbp)
callq 0x7600
movq -0xd8(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0xd0(%rbp)
movq -0x20(%rbp), %rsi
callq 0x3140
jmp 0x3899
movq -0xe0(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0xf0(%rbp)
callq 0x3400
movq -0xe0(%rbp), %rdi
addq $0x58, %rdi
movq %rdi, -0xe8(%rbp)
callq 0x7710
movl $0x1, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x3b29
testb $0x1, -0x21(%rbp)
je 0x3a66
movq -0x18(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x100(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
callq 0x34f0
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0x7730
jmp 0x3920
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
movl $0x3d, %edx
callq 0x36c0
jmp 0x3934
leaq -0x70(%rbp), %rdi
callq 0x31d0
leaq -0x71(%rbp), %rdi
callq 0x3340
movq -0xe0(%rbp), %rdi
callq 0x78e0
movq %rax, -0x108(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x78e0
movq -0x108(%rbp), %rsi
movq -0xe0(%rbp), %rdi
addq %rax, %rsi
callq 0x77e0
jmp 0x397a
movq -0xe0(%rbp), %rdi
callq 0x79b0
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x79e0
leaq -0x50(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0x7a20
movq -0x118(%rbp), %rdi
movq %rax, -0x90(%rbp)
callq 0x79b0
movq -0xe0(%rbp), %rdi
movq %rax, -0x98(%rbp)
movq -0x80(%rbp), %rsi
movq -0x90(%rbp), %rdx
movq -0x98(%rbp), %rcx
callq 0x7900
movq %rax, -0x110(%rbp)
jmp 0x39ee
movq -0x110(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x76b0
jmp 0x3b19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x3b7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x3a3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x31d0
leaq -0x71(%rbp), %rdi
callq 0x3340
jmp 0x3b57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x76b0
jmp 0x3b57
movq -0xe0(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x18(%rbp), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x128(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x34f0
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0x7730
jmp 0x3ab6
movq -0x130(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x7a50
jmp 0x3acb
leaq -0xc0(%rbp), %rdi
callq 0x31d0
leaq -0xc1(%rbp), %rdi
callq 0x3340
jmp 0x3b19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x3b0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x31d0
leaq -0xc1(%rbp), %rdi
callq 0x3340
jmp 0x3b57
jmp 0x3b1b
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x38ce
movq -0xe0(%rbp), %rdi
addq $0x18, %rdi
leaq 0xc4cd(%rip), %rsi      # 0x10008
callq 0x32c0
jmp 0x3b42
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movq -0xe8(%rbp), %rdi
callq 0x7a80
movq -0xf0(%rbp), %rdi
callq 0x31d0
movq -0xd0(%rbp), %rdi
callq 0x31d0
movq -0xd8(%rbp), %rdi
callq 0x76b0
movq -0x30(%rbp), %rdi
callq 0x34e0