// File: /workspace/github_cpp_makefile_star2_O1/jovermann[P]streplace/src/CommandLineParser.cpp
// Function: ut1::CommandLineParser::parse(int, char const**)
void CommandLineParser::parse(int argc, const char* argv[])
{
    // Parse arguments.
    for (int i = 1; i < argc; i++)
    {
        if (argv[i][0] == '-')
        {
            if (argv[i][1] == '-')
            {
                if (argv[i][2] == 0)
                {
                    // "--": End of options.
                    // Keep the "--" as an argument so the application can add further semantics to it.
                    for (; i < argc; i++)
                    {
                        args.emplace_back(argv[i]);
                    }
                }
                else
                {
                    // Long option.
                    parseLongOption(argc, argv, i);
                }
            }
            else if (argv[i][1] == 0)
            {
                // Positional arg '-'.
                args.emplace_back(argv[i]);
            }
            else
            {
                // Short option(s).
                parseShortOptions(argc, argv, i);
            }
        }
        else
        {
            // Positional arg.
            args.emplace_back(argv[i]);
        }
    }

    if (isSet("help"))
    {
        printMessage(getUsageStr());
        std::exit(0);
    }

    if (isSet("version"))
    {
        printMessage("version " + version);
        std::exit(0);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movl $0x1, (%rsp)
cmpl $0x2, %esi
jl 0x67ba
movq %rdx, %r14
movl %esi, %ebp
leaq 0x78(%rbx), %r15
movl $0x1, %eax
movq %rsp, %r12
movq %rbx, 0x20(%rsp)
cltq
leaq (%r14,%rax,8), %rsi
movq (%rsi), %rax
cmpb $0x2d, (%rax)
jne 0x675a
movzbl 0x1(%rax), %ecx
testl %ecx, %ecx
je 0x675a
cmpl $0x2d, %ecx
jne 0x6770
cmpb $0x0, 0x2(%rax)
je 0x6782
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %r12, %rcx
callq 0x68cc
jmp 0x6762
movq %r15, %rdi
callq 0x8c60
movl (%rsp), %eax
incl %eax
movl %eax, (%rsp)
cmpl %ebp, %eax
jl 0x6727
jmp 0x67ba
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
movq %r12, %rcx
callq 0x70ce
jmp 0x6762
movq %r12, %rbx
movl (%rsp), %r12d
cmpl %ebp, %r12d
jge 0x67ac
movslq %r12d, %rax
leaq (%r14,%rax,8), %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x8c60
addq $0x8, %r13
incl %r12d
cmpl %r12d, %ebp
jne 0x6795
movl %r12d, (%rsp)
movq %rbx, %r12
movq 0x20(%rsp), %rbx
jmp 0x6762
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1a86e(%rip), %rsi     # 0x21038
leaq 0x1a86b(%rip), %rdx     # 0x2103c
movq %rsp, %rdi
callq 0x90b2
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x820a
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x67fc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5410
testl %ebp, %ebp
jne 0x684f
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x1a9a9(%rip), %rsi     # 0x211b6
leaq 0x1a9a9(%rip), %rdx     # 0x211bd
callq 0x90b2
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x820a
movl %eax, %ebp
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x683c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5410
testl %ebp, %ebp
jne 0x686a
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rsp, %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x7498
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7436
jmp 0x688e
leaq 0xf8(%rbx), %rdx
leaq 0x1a85d(%rip), %rsi     # 0x210d5
movq %rsp, %r14
movq %r14, %rdi
callq 0x8929
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7436
movq %rsp, %rdi
callq 0x51d0
xorl %edi, %edi
callq 0x54f0
jmp 0x68a5
jmp 0x68a5
jmp 0x68a5
jmp 0x68c0
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x68c3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x5410
jmp 0x68c3
movq %rax, %rbx
movq %rbx, %rdi
callq 0x5720
nop