// File: Se6[P]CmdLineArgs/./CmdLineArgs.h
// Function: CmdLineArgs::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string CmdLineArgs::getParam(const std::string &long_name, char short_name, const std::string &default_value, const std::string &desc)
{
    std::string val;
    addUsage(long_name, short_name, "\"" + default_value + "\"", desc);

    // First search the long names:
    auto pos = findLongName(long_name);
    if( pos != args_.end() ) {

        if(pos+2>args_.end())
            throw std::runtime_error("\nError: parameter --" + long_name + " is not followed by a value");

        pos = args_.erase(pos);
        val = *pos;
        args_.erase(pos);

        return val;
    }

    // Then search the short names:
    pos = findShortName(short_name);
    if( pos != args_.end() ) {

        if(pos+2>args_.end())
            throw std::runtime_error("\nError: parameter -" + std::string(1,short_name) + " is not followed by a value");

        if(pos->size()==2)
            pos = args_.erase(pos);
        else{
            pos->erase(pos->find(short_name,1),1);
            ++pos;
        }

        val = *pos;
        args_.erase(pos);

        return val;
    }

    // did not find anything:
    return default_value;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rdi, -0x200(%rbp)
movb %cl, %al
movq %rdi, %rcx
movq %rcx, -0x1f8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3400
movq -0x18(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movb -0x19(%rbp), %al
movb %al, -0x1d9(%rbp)
movq -0x28(%rbp), %rdx
leaq 0xbbae(%rip), %rsi      # 0x10016
leaq -0x90(%rbp), %rdi
callq 0x7d20
jmp 0x4476
leaq 0xbb99(%rip), %rdx      # 0x10016
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x7cd0
jmp 0x448f
movq -0x1e8(%rbp), %rsi
movq -0x1f0(%rbp), %rdi
movb -0x1d9(%rbp), %al
movq -0x30(%rbp), %r8
movsbl %al, %edx
leaq -0x70(%rbp), %rcx
callq 0x4190
jmp 0x44b5
leaq -0x70(%rbp), %rdi
callq 0x31d0
leaq -0x90(%rbp), %rdi
callq 0x31d0
movq -0x1f0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3b90
movq %rax, -0x208(%rbp)
jmp 0x44e3
movq -0x1f0(%rbp), %rdi
movq -0x208(%rbp), %rax
movq %rax, -0xa8(%rbp)
callq 0x79b0
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x7b00
testb $0x1, %al
jne 0x4520
jmp 0x4775
leaq -0xa8(%rbp), %rdi
movl $0x2, %esi
callq 0x7e70
movq -0x1f0(%rbp), %rdi
movq %rax, -0xb8(%rbp)
callq 0x79b0
movq %rax, -0xc0(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x7e30
testb $0x1, %al
jne 0x4567
jmp 0x46b4
movb $0x1, -0x101(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x210(%rbp)
movq -0x18(%rbp), %rdx
leaq 0xba8e(%rip), %rsi      # 0x10018
leaq -0x100(%rbp), %rdi
callq 0x7d20
jmp 0x4598
leaq 0xba8e(%rip), %rdx      # 0x1002d
leaq -0xe0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x7cd0
jmp 0x45b4
movq -0x210(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3460
jmp 0x45c9
movq -0x210(%rbp), %rdi
movb $0x0, -0x101(%rbp)
movq 0x11a12(%rip), %rsi     # 0x15ff0
movq 0x119db(%rip), %rdx     # 0x15fc0
callq 0x34b0
jmp 0x4b08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x4af3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x4635
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x31d0
leaq -0x90(%rbp), %rdi
callq 0x31d0
jmp 0x4af3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x4698
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x468c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x31d0
leaq -0x100(%rbp), %rdi
callq 0x31d0
testb $0x1, -0x101(%rbp)
jne 0x46a3
jmp 0x46af
movq -0x210(%rbp), %rdi
callq 0x3240
jmp 0x4af3
leaq -0x118(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x79e0
movq -0x1f0(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0x7c60
movq %rax, -0x218(%rbp)
jmp 0x46e3
movq -0x218(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x7c40
movq %rax, %rsi
leaq -0x50(%rbp), %rdi
callq 0x3050
jmp 0x4719
leaq -0x120(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x79e0
movq -0x1f0(%rbp), %rdi
movq -0x120(%rbp), %rsi
callq 0x7c60
movq %rax, -0x220(%rbp)
jmp 0x4748
movq -0x200(%rbp), %rdi
movq -0x220(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x31b0
movl $0x1, -0x12c(%rbp)
jmp 0x4ada
movq -0x1f0(%rbp), %rdi
movsbl -0x19(%rbp), %esi
callq 0x3dd0
movq %rax, -0x228(%rbp)
jmp 0x478e
movq -0x1f0(%rbp), %rdi
movq -0x228(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0xa8(%rbp)
callq 0x79b0
movq %rax, -0x140(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x7b00
testb $0x1, %al
jne 0x47d9
jmp 0x4abe
leaq -0xa8(%rbp), %rdi
movl $0x2, %esi
callq 0x7e70
movq -0x1f0(%rbp), %rdi
movq %rax, -0x148(%rbp)
callq 0x79b0
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x7e30
testb $0x1, %al
jne 0x4820
jmp 0x4982
movb $0x1, -0x1b2(%rbp)
movl $0x10, %edi
callq 0x3180
movq %rax, -0x240(%rbp)
movsbl -0x19(%rbp), %eax
movl %eax, -0x234(%rbp)
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x34f0
movl -0x234(%rbp), %edx
movq -0x230(%rbp), %rcx
leaq -0x1b0(%rbp), %rdi
movl $0x1, %esi
callq 0x7f00
jmp 0x4875
leaq 0xb7cd(%rip), %rsi      # 0x10049
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rdx
callq 0x7eb0
jmp 0x4891
leaq 0xb795(%rip), %rdx      # 0x1002d
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7cd0
jmp 0x48ad
movq -0x240(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3460
jmp 0x48c2
movq -0x240(%rbp), %rdi
movb $0x0, -0x1b2(%rbp)
movq 0x11719(%rip), %rsi     # 0x15ff0
movq 0x116e2(%rip), %rdx     # 0x15fc0
callq 0x34b0
jmp 0x4b08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x495a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x494e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
jmp 0x4942
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x31d0
leaq -0x190(%rbp), %rdi
callq 0x31d0
leaq -0x1b0(%rbp), %rdi
callq 0x31d0
leaq -0x1b1(%rbp), %rdi
callq 0x3340
testb $0x1, -0x1b2(%rbp)
jne 0x4971
jmp 0x497d
movq -0x240(%rbp), %rdi
callq 0x3240
jmp 0x4af3
leaq -0xa8(%rbp), %rdi
callq 0x7b40
movq %rax, %rdi
callq 0x3200
cmpq $0x2, %rax
jne 0x49e9
leaq -0x1c8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x79e0
movq -0x1f0(%rbp), %rdi
movq -0x1c8(%rbp), %rsi
callq 0x7c60
movq %rax, -0x248(%rbp)
jmp 0x49cb
movq -0x248(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0xa8(%rbp)
jmp 0x4a4b
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x7b40
movq -0x260(%rbp), %rdi
movq %rax, -0x258(%rbp)
callq 0x7b40
movq %rax, %rdi
movsbl -0x19(%rbp), %esi
movl $0x1, %edx
movq %rdx, -0x250(%rbp)
callq 0x33e0
movq -0x258(%rbp), %rdi
movq -0x250(%rbp), %rdx
movq %rax, %rsi
callq 0x3090
jmp 0x4a3f
leaq -0xa8(%rbp), %rdi
callq 0x7c20
leaq -0xa8(%rbp), %rdi
callq 0x7c40
movq %rax, %rsi
leaq -0x50(%rbp), %rdi
callq 0x3050
jmp 0x4a65
leaq -0x1d0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x79e0
movq -0x1f0(%rbp), %rdi
movq -0x1d0(%rbp), %rsi
callq 0x7c60
movq %rax, -0x268(%rbp)
jmp 0x4a94
movq -0x200(%rbp), %rdi
movq -0x268(%rbp), %rax
movq %rax, -0x1d8(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x31b0
movl $0x1, -0x12c(%rbp)
jmp 0x4ada
movq -0x200(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x3140
jmp 0x4ad0
movl $0x1, -0x12c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x31d0
movq -0x1f8(%rbp), %rax
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x31d0
movq -0x98(%rbp), %rdi
callq 0x34e0
nopl (%rax,%rax)