// File: MPSLab-ASU[P]DiRAC/./src/../argparse/argparse.hpp
// Function: ArgumentParser::usage[abi:cxx11]()
String usage() {
        // premable app name
        std::ostringstream help;
        help << "Usage: " << escape(app_name_);
        size_t indent = help.str().size();
        size_t linelength = 0;

        // get the required arguments
        for (ArgumentVector::const_iterator it = arguments_.begin(); it != arguments_.end(); ++it) {
            Argument arg = *it;
            if (arg.optional) continue;
            if (arg.name.compare(final_name_) == 0) continue;
            help << " ";
            String argstr = arg.toString();
            if (argstr.size() + linelength > 80) {
                help << "\n" << String(indent, ' ');
                linelength = 0;
            } else {
                linelength += argstr.size();
            }
            help << argstr;
        }

        // get the optional arguments
        for (ArgumentVector::const_iterator it = arguments_.begin(); it != arguments_.end(); ++it) {
            Argument arg = *it;
            if (!arg.optional) continue;
            if (arg.name.compare(final_name_) == 0) continue;
            help << " ";
            String argstr = arg.toString();
            if (argstr.size() + linelength > 80) {
                help << "\n" << String(indent, ' ');
                linelength = 0;
            } else {
                linelength += argstr.size();
            }
            help << argstr;
        }

        // get the final argument
        if (!final_name_.empty()) {
            Argument arg = arguments_[index_[final_name_]];
            String argstr = arg.toString(false);
            if (argstr.size() + linelength > 80) {
                help << "\n" << String(indent, ' ');
                linelength = 0;
            } else {
                linelength += argstr.size();
            }
            help << argstr;
        }

        return help.str();
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4a0, %rsp            # imm = 0x4A0
movq %rdi, -0x428(%rbp)
movq %rdi, %rax
movq %rax, -0x420(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x418(%rbp)
leaq -0x188(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x49aa50
movq -0x410(%rbp), %rdi
leaq 0x189138(%rip), %rsi    # 0x5a4188
callq 0x492450
movq %rax, -0x408(%rbp)
jmp 0x41b05e
movq -0x418(%rbp), %rsi
addq $0x48, %rsi
leaq -0x1b8(%rbp), %rdi
callq 0x41fd50
jmp 0x41b077
movq -0x408(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x4a5160
jmp 0x41b08c
leaq -0x1b8(%rbp), %rdi
callq 0x4a2730
leaq -0x1e0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x49b740
jmp 0x41b0ad
leaq -0x1e0(%rbp), %rdi
callq 0x4a2950
movq %rax, -0x430(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x4a2730
movq -0x430(%rbp), %rax
movq -0x418(%rbp), %rdi
movq %rax, -0x1c0(%rbp)
movq $0x0, -0x1e8(%rbp)
addq $0x88, %rdi
callq 0x41cea0
movq %rax, -0x1f8(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x41fe70
movq -0x418(%rbp), %rdi
addq $0x88, %rdi
callq 0x41cc80
movq %rax, -0x200(%rbp)
leaq -0x1f0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x41feb0
testb $0x1, %al
jne 0x41b148
jmp 0x41b3d1
leaq -0x1f0(%rbp), %rdi
callq 0x41fef0
movq %rax, %rsi
leaq -0x258(%rbp), %rdi
callq 0x41cce0
jmp 0x41b165
testb $0x1, -0x218(%rbp)
je 0x41b1b7
movl $0x4, -0x25c(%rbp)
jmp 0x41b387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b8c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x4a2730
jmp 0x41b8c9
movq -0x418(%rbp), %rsi
leaq -0x238(%rbp), %rdi
addq $0x68, %rsi
callq 0x4a4790
movl %eax, -0x434(%rbp)
jmp 0x41b1d6
movl -0x434(%rbp), %eax
cmpl $0x0, %eax
jne 0x41b207
movl $0x4, -0x25c(%rbp)
jmp 0x41b387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b3c0
leaq 0x1895a3(%rip), %rsi    # 0x5a47b1
leaq -0x188(%rbp), %rdi
callq 0x492450
jmp 0x41b21c
leaq -0x280(%rbp), %rdi
leaq -0x258(%rbp), %rsi
movl $0x1, %edx
callq 0x41ff10
jmp 0x41b236
leaq -0x280(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
cmpq $0x50, %rax
jbe 0x41b342
leaq 0x1909f0(%rip), %rsi    # 0x5abc4a
leaq -0x188(%rbp), %rdi
callq 0x492450
movq %rax, -0x440(%rbp)
jmp 0x41b26f
movq -0x1c0(%rbp), %rax
movq %rax, -0x450(%rbp)
leaq -0x2a1(%rbp), %rdi
movq %rdi, -0x448(%rbp)
callq 0x426c50
movq -0x450(%rbp), %rsi
movq -0x448(%rbp), %rcx
leaq -0x2a0(%rbp), %rdi
movl $0x20, %edx
callq 0x410200
jmp 0x41b2b1
movq -0x440(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x4a5160
jmp 0x41b2c6
leaq -0x2a0(%rbp), %rdi
callq 0x4a2730
leaq -0x2a1(%rbp), %rdi
callq 0x426c70
movq $0x0, -0x1e8(%rbp)
jmp 0x41b35c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b3b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b334
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x4a2730
leaq -0x2a1(%rbp), %rdi
callq 0x426c70
jmp 0x41b3b4
leaq -0x280(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x4a5160
jmp 0x41b371
leaq -0x280(%rbp), %rdi
callq 0x4a2730
movl $0x0, -0x25c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x41c6a0
movl -0x25c(%rbp), %eax
testl %eax, %eax
je 0x41b3a1
jmp 0x41b39f
jmp 0x41b3a3
jmp 0x41b3a3
leaq -0x1f0(%rbp), %rdi
callq 0x420360
jmp 0x41b112
leaq -0x280(%rbp), %rdi
callq 0x4a2730
leaq -0x258(%rbp), %rdi
callq 0x41c6a0
jmp 0x41b8c9
movq -0x418(%rbp), %rdi
addq $0x88, %rdi
callq 0x41cea0
movq %rax, -0x2b8(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x41fe70
movq -0x418(%rbp), %rdi
addq $0x88, %rdi
callq 0x41cc80
movq %rax, -0x2c0(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x41feb0
testb $0x1, %al
jne 0x41b434
jmp 0x41b683
leaq -0x2b0(%rbp), %rdi
callq 0x41fef0
movq %rax, %rsi
leaq -0x318(%rbp), %rdi
callq 0x41cce0
jmp 0x41b451
testb $0x1, -0x2d8(%rbp)
jne 0x41b469
movl $0x7, -0x25c(%rbp)
jmp 0x41b639
movq -0x418(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
addq $0x68, %rsi
callq 0x4a4790
movl %eax, -0x454(%rbp)
jmp 0x41b488
movl -0x454(%rbp), %eax
cmpl $0x0, %eax
jne 0x41b4b9
movl $0x7, -0x25c(%rbp)
jmp 0x41b639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b672
leaq 0x1892f1(%rip), %rsi    # 0x5a47b1
leaq -0x188(%rbp), %rdi
callq 0x492450
jmp 0x41b4ce
leaq -0x338(%rbp), %rdi
leaq -0x318(%rbp), %rsi
movl $0x1, %edx
callq 0x41ff10
jmp 0x41b4e8
leaq -0x338(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
cmpq $0x50, %rax
jbe 0x41b5f4
leaq 0x19073e(%rip), %rsi    # 0x5abc4a
leaq -0x188(%rbp), %rdi
callq 0x492450
movq %rax, -0x460(%rbp)
jmp 0x41b521
movq -0x1c0(%rbp), %rax
movq %rax, -0x470(%rbp)
leaq -0x359(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x426c50
movq -0x470(%rbp), %rsi
movq -0x468(%rbp), %rcx
leaq -0x358(%rbp), %rdi
movl $0x20, %edx
callq 0x410200
jmp 0x41b563
movq -0x460(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x4a5160
jmp 0x41b578
leaq -0x358(%rbp), %rdi
callq 0x4a2730
leaq -0x359(%rbp), %rdi
callq 0x426c70
movq $0x0, -0x1e8(%rbp)
jmp 0x41b60e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b666
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b5e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x4a2730
leaq -0x359(%rbp), %rdi
callq 0x426c70
jmp 0x41b666
leaq -0x338(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x4a5160
jmp 0x41b623
leaq -0x338(%rbp), %rdi
callq 0x4a2730
movl $0x0, -0x25c(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x41c6a0
movl -0x25c(%rbp), %eax
testl %eax, %eax
je 0x41b653
jmp 0x41b651
jmp 0x41b655
jmp 0x41b655
leaq -0x2b0(%rbp), %rdi
callq 0x420360
jmp 0x41b3fe
leaq -0x338(%rbp), %rdi
callq 0x4a2730
leaq -0x318(%rbp), %rdi
callq 0x41c6a0
jmp 0x41b8c9
movq -0x418(%rbp), %rdi
addq $0x68, %rdi
callq 0x4a2c50
testb $0x1, %al
jne 0x41b88e
movq -0x418(%rbp), %rdi
movq %rdi, %rax
addq $0x88, %rax
movq %rax, -0x480(%rbp)
movq %rdi, %rsi
addq $0x68, %rsi
callq 0x41c9d0
movq %rax, -0x478(%rbp)
jmp 0x41b6c7
movq -0x480(%rbp), %rdi
movq -0x478(%rbp), %rax
movq (%rax), %rsi
callq 0x420380
movq %rax, %rsi
leaq -0x3b8(%rbp), %rdi
callq 0x41cce0
jmp 0x41b6ee
leaq -0x3d8(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
xorl %edx, %edx
callq 0x41ff10
jmp 0x41b705
leaq -0x3d8(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
cmpq $0x50, %rax
jbe 0x41b82b
leaq 0x190521(%rip), %rsi    # 0x5abc4a
leaq -0x188(%rbp), %rdi
callq 0x492450
movq %rax, -0x488(%rbp)
jmp 0x41b73e
movq -0x1c0(%rbp), %rax
movq %rax, -0x498(%rbp)
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0x490(%rbp)
callq 0x426c50
movq -0x498(%rbp), %rsi
movq -0x490(%rbp), %rcx
leaq -0x3f8(%rbp), %rdi
movl $0x20, %edx
callq 0x410200
jmp 0x41b780
movq -0x488(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0x4a5160
jmp 0x41b795
leaq -0x3f8(%rbp), %rdi
callq 0x4a2730
leaq -0x3f9(%rbp), %rdi
callq 0x426c70
movq $0x0, -0x1e8(%rbp)
jmp 0x41b845
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b880
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b874
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
jmp 0x41b81d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x190(%rbp)
movl %eax, -0x194(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x4a2730
leaq -0x3f9(%rbp), %rdi
callq 0x426c70
jmp 0x41b874
leaq -0x3d8(%rbp), %rdi
callq 0x4a2950
addq -0x1e8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x188(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x4a5160
jmp 0x41b85a
leaq -0x3d8(%rbp), %rdi
callq 0x4a2730
leaq -0x3b8(%rbp), %rdi
callq 0x41c6a0
jmp 0x41b88e
leaq -0x3d8(%rbp), %rdi
callq 0x4a2730
leaq -0x3b8(%rbp), %rdi
callq 0x41c6a0
jmp 0x41b8c9
movq -0x428(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x49b740
jmp 0x41b8a3
movl $0x1, -0x25c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x497350
movq -0x420(%rbp), %rax
addq $0x4a0, %rsp            # imm = 0x4A0
popq %rbp
retq
leaq -0x188(%rbp), %rdi
callq 0x497350
movq -0x190(%rbp), %rdi
callq 0x4d0770
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)