// File: moya-lang[P]Arguments/./Arguments.h
// Function: Moya::System::Arguments::Help::run()
int run()
        {
            computeMaxIntroLengths();

            const auto commandIdentifier = parser.find("/");

            bool explicitHelp = false;
            if (commandIdentifier != parser.end()) {

                if (commandIdentifier->second == "version") {
                    std::cout << syntax.programVersion << std::endl;
                    return 0;
                }

                if (commandIdentifier->second == "help")
                    explicitHelp = true;
            }

            const auto commandHelp = parser.find("/command");
            if (commandHelp != parser.end()) {
                if (commandHelp->second == "version")
                    printGenericHelp();
                else
                    printCommandHelp(commandHelp->second);
            }
            else
                printGenericHelp();

            const bool implicitHelp = arguments.getNumberOfArguments() <= 1;
            return (explicitHelp || implicitHelp) ? 0 : -1;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x6170
movq -0xb0(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa8(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x33a0
movq -0xa0(%rbp), %rdx
leaq 0x5546(%rip), %rsi      # 0x9055
leaq -0x38(%rbp), %rdi
callq 0x37b0
jmp 0x3b1a
movq -0xa8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x5db0
movq %rax, -0xb8(%rbp)
jmp 0x3b33
movq -0xb8(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3140
leaq -0x39(%rbp), %rdi
callq 0x3260
movq -0xb0(%rbp), %rax
movb $0x0, -0x4d(%rbp)
movq 0x8(%rax), %rdi
callq 0x5de0
movq %rax, -0x58(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x62c0
testb $0x1, %al
jne 0x3b7e
jmp 0x3c2e
leaq -0x18(%rbp), %rdi
callq 0x62f0
movq %rax, %rdi
addq $0x20, %rdi
leaq 0x54b5(%rip), %rsi      # 0x904a
callq 0x5b90
testb $0x1, %al
jne 0x3ba0
jmp 0x3c06
movq -0xb0(%rbp), %rax
movq (%rax), %rsi
addq $0x20, %rsi
movq 0x9423(%rip), %rdi      # 0xcfd8
callq 0x31d0
movq %rax, %rdi
movq 0x9404(%rip), %rsi      # 0xcfc8
callq 0x3230
movl $0x0, -0x4(%rbp)
jmp 0x3db2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3bf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3140
leaq -0x39(%rbp), %rdi
callq 0x3260
jmp 0x3dbe
leaq -0x18(%rbp), %rdi
callq 0x62f0
movq %rax, %rdi
addq $0x20, %rdi
leaq 0x543c(%rip), %rsi      # 0x9059
callq 0x5b90
testb $0x1, %al
jne 0x3c28
jmp 0x3c2c
movb $0x1, -0x4d(%rbp)
jmp 0x3c2e
movq -0xb0(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xc8(%rbp)
leaq -0x81(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x33a0
movq -0xc0(%rbp), %rdx
leaq 0x5400(%rip), %rsi      # 0x9061
leaq -0x80(%rbp), %rdi
callq 0x37b0
jmp 0x3c6c
movq -0xc8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x5db0
movq %rax, -0xd0(%rbp)
jmp 0x3c85
movq -0xd0(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3140
leaq -0x81(%rbp), %rdi
callq 0x3260
movq -0xb0(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x5de0
movq %rax, -0x90(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x62c0
testb $0x1, %al
jne 0x3cd5
jmp 0x3d57
leaq -0x60(%rbp), %rdi
callq 0x62f0
movq %rax, %rdi
addq $0x20, %rdi
leaq 0x535e(%rip), %rsi      # 0x904a
callq 0x5b90
testb $0x1, %al
jne 0x3cf7
jmp 0x3d39
movq -0xb0(%rbp), %rdi
callq 0x6310
jmp 0x3d55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x3d28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3140
leaq -0x81(%rbp), %rdi
callq 0x3260
jmp 0x3dbe
leaq -0x60(%rbp), %rdi
callq 0x62f0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0x6af0
jmp 0x3d63
movq -0xb0(%rbp), %rdi
callq 0x6310
movq -0xb0(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x4a10
cmpq $0x1, %rax
setbe %al
andb $0x1, %al
movb %al, -0x91(%rbp)
movb $0x1, %al
testb $0x1, -0x4d(%rbp)
movb %al, -0xd1(%rbp)
jne 0x3d9c
movb -0x91(%rbp), %al
movb %al, -0xd1(%rbp)
movb -0xd1(%rbp), %dl
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3390
nopw (%rax,%rax)