// File: moya-lang[P]Arguments/./Arguments.h
// Function: Moya::System::Arguments::Help::printCommandHelp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const
void printCommandHelp(const std::string &commandName) const
        {
            const Command *command = syntax.findCommandByName(commandName.c_str());
            if (!command)
                return;

            std::string usage = "Usage: " + getApplicationName();
            if (syntax.commands.size() > 1)
                usage += " " + command->name;

            for (const Parameter &parameter : command->parameters) {

                std::string paramBrief = parameter.name;
                if (parameter.hasValue) {
                    if (parameter.isRequired)
                        paramBrief += " " + parameter.identifier;
                    else
                        paramBrief += " <" + parameter.identifier + ">";
                }

                usage += parameter.isRequired ? " <" + paramBrief + ">" : " [" + paramBrief + "]";
            }

            print(margin, "", syntax.programName + ", version: " + syntax.programVersion);
            print(margin, "", usage);

            if (!command->remarks.empty()) {
                std::cout << std::endl;
                print(margin, "", command->remarks);
            }

            if (command->parameters.empty())
                return;

            std::cout << std::endl << "Command parameters:" << std::endl;
            for (const Parameter &parameter : command->parameters) {

                std::string intro = std::string(margin, ' ') + parameter.name;
                if (parameter.hasValue)
                    intro += " <" + parameter.identifier + ">";

                intro.append(maxParameterIntroLength - intro.length(), ' ');
                print(maxParameterIntroLength, intro, parameter.remarks);
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3e0, %rsp            # imm = 0x3E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x390(%rbp)
movq (%rax), %rax
movq %rax, -0x388(%rbp)
movq -0x10(%rbp), %rdi
callq 0x30f0
movq -0x388(%rbp), %rdi
movq %rax, %rsi
callq 0x4930
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x6b40
jmp 0x75ba
movq -0x390(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x75e0
movq -0x398(%rbp), %rdx
leaq 0x2511(%rip), %rsi      # 0x9076
leaq -0x38(%rbp), %rdi
callq 0x7c00
jmp 0x6b70
leaq -0x58(%rbp), %rdi
callq 0x3140
movq -0x390(%rbp), %rax
movq (%rax), %rdi
addq $0x40, %rdi
callq 0x4040
cmpq $0x1, %rax
jbe 0x6c1b
movq -0x18(%rbp), %rdx
addq $0x20, %rdx
leaq 0x24d7(%rip), %rsi      # 0x907c
leaq -0x88(%rbp), %rdi
callq 0x57f0
jmp 0x6bb3
leaq -0x38(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x32d0
jmp 0x6bc5
leaq -0x88(%rbp), %rdi
callq 0x3140
jmp 0x6c1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x3140
jmp 0x75cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x75c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3140
jmp 0x75c3
movq -0x18(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
callq 0x5ad0
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rdi
callq 0x5b00
movq %rax, -0xa0(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x5b30
testb $0x1, %al
jne 0x6c6e
jmp 0x6f46
leaq -0x98(%rbp), %rdi
callq 0x5b60
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rsi
addq $0x20, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x3100
jmp 0x6c9a
movq -0xa8(%rbp), %rax
testb $0x1, 0x61(%rax)
je 0x6dc8
movq -0xa8(%rbp), %rax
testb $0x1, 0x60(%rax)
je 0x6d28
movq -0xa8(%rbp), %rdx
leaq 0x23b6(%rip), %rsi      # 0x907c
leaq -0xe8(%rbp), %rdi
callq 0x57f0
jmp 0x6cd4
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x32d0
jmp 0x6ce9
leaq -0xe8(%rbp), %rdi
callq 0x3140
jmp 0x6dc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6f35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x3140
jmp 0x6f35
movq -0xa8(%rbp), %rdx
leaq 0x23c8(%rip), %rsi      # 0x90fe
leaq -0x128(%rbp), %rdi
callq 0x57f0
jmp 0x6d44
leaq 0x23b6(%rip), %rdx      # 0x9101
leaq -0x108(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x7b20
jmp 0x6d60
leaq -0xc8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x32d0
jmp 0x6d75
leaq -0x108(%rbp), %rdi
callq 0x3140
leaq -0x128(%rbp), %rdi
callq 0x3140
jmp 0x6dc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6db5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x3140
leaq -0x128(%rbp), %rdi
callq 0x3140
jmp 0x6f35
jmp 0x6dc8
movq -0xa8(%rbp), %rax
movb 0x60(%rax), %al
movb $0x0, -0x169(%rbp)
movb $0x0, -0x191(%rbp)
testb $0x1, %al
je 0x6e25
leaq 0x2313(%rip), %rsi      # 0x90fe
leaq -0x168(%rbp), %rdi
leaq -0xc8(%rbp), %rdx
callq 0x57f0
jmp 0x6e00
movb $0x1, -0x169(%rbp)
leaq 0x22f3(%rip), %rdx      # 0x9101
leaq -0x148(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x7b20
jmp 0x6e23
jmp 0x6e66
leaq 0x22d7(%rip), %rsi      # 0x9103
leaq -0x190(%rbp), %rdi
leaq -0xc8(%rbp), %rdx
callq 0x57f0
jmp 0x6e41
movb $0x1, -0x191(%rbp)
leaq 0x226c(%rip), %rdx      # 0x90bb
leaq -0x148(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7b20
jmp 0x6e64
jmp 0x6e66
leaq -0x38(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x32d0
jmp 0x6e78
leaq -0x148(%rbp), %rdi
callq 0x3140
testb $0x1, -0x191(%rbp)
jne 0x6e8f
jmp 0x6e9b
leaq -0x190(%rbp), %rdi
callq 0x3140
testb $0x1, -0x169(%rbp)
jne 0x6ea6
jmp 0x6eb2
leaq -0x168(%rbp), %rdi
callq 0x3140
leaq -0xc8(%rbp), %rdi
callq 0x3140
leaq -0x98(%rbp), %rdi
callq 0x5bc0
jmp 0x6c52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6f1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6f03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x3140
testb $0x1, -0x191(%rbp)
jne 0x6f0e
jmp 0x6f1a
leaq -0x190(%rbp), %rdi
callq 0x3140
jmp 0x6f1c
testb $0x1, -0x169(%rbp)
jne 0x6f27
jmp 0x6f33
leaq -0x168(%rbp), %rdi
callq 0x3140
jmp 0x6f35
leaq -0xc8(%rbp), %rdi
callq 0x3140
jmp 0x75c3
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x33a0
movq -0x3a0(%rbp), %rdx
leaq 0x2116(%rip), %rsi      # 0x907d
leaq -0x1b8(%rbp), %rdi
callq 0x37b0
jmp 0x6f75
movq -0x390(%rbp), %rax
movq (%rax), %rsi
leaq 0x20e4(%rip), %rdx      # 0x906a
leaq -0x200(%rbp), %rdi
callq 0x7aa0
jmp 0x6f94
movq -0x390(%rbp), %rax
movq (%rax), %rdx
addq $0x20, %rdx
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x7a50
jmp 0x6fb7
movq -0x390(%rbp), %rdi
movl $0x3, %esi
leaq -0x1b8(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
callq 0x7770
jmp 0x6fd8
leaq -0x1e0(%rbp), %rdi
callq 0x3140
leaq -0x200(%rbp), %rdi
callq 0x3140
leaq -0x1b8(%rbp), %rdi
callq 0x3140
leaq -0x1b9(%rbp), %rdi
callq 0x3260
leaq -0x221(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x33a0
movq -0x3a8(%rbp), %rdx
leaq 0x2054(%rip), %rsi      # 0x907d
leaq -0x220(%rbp), %rdi
callq 0x37b0
jmp 0x7037
leaq -0x248(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3100
jmp 0x7049
movq -0x390(%rbp), %rdi
movl $0x3, %esi
leaq -0x220(%rbp), %rdx
leaq -0x248(%rbp), %rcx
callq 0x7770
jmp 0x706a
leaq -0x248(%rbp), %rdi
callq 0x3140
leaq -0x220(%rbp), %rdi
callq 0x3140
leaq -0x221(%rbp), %rdi
callq 0x3260
movq -0x18(%rbp), %rdi
addq $0x60, %rdi
callq 0x3360
testb $0x1, %al
jne 0x7254
movq 0x5f2e(%rip), %rdi      # 0xcfd8
movq 0x5f17(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x70b8
leaq -0x269(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x33a0
movq -0x3b0(%rbp), %rdx
leaq 0x1fa4(%rip), %rsi      # 0x907d
leaq -0x268(%rbp), %rdi
callq 0x37b0
jmp 0x70e7
movq -0x18(%rbp), %rsi
addq $0x60, %rsi
leaq -0x290(%rbp), %rdi
callq 0x3100
jmp 0x70fd
movq -0x390(%rbp), %rdi
movl $0x3, %esi
leaq -0x268(%rbp), %rdx
leaq -0x290(%rbp), %rcx
callq 0x7770
jmp 0x711e
leaq -0x290(%rbp), %rdi
callq 0x3140
leaq -0x268(%rbp), %rdi
callq 0x3140
leaq -0x269(%rbp), %rdi
callq 0x3260
jmp 0x7254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x71a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7195
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7189
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3140
leaq -0x200(%rbp), %rdi
callq 0x3140
leaq -0x1b8(%rbp), %rdi
callq 0x3140
leaq -0x1b9(%rbp), %rdi
callq 0x3260
jmp 0x75c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x71f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x71e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x3140
leaq -0x220(%rbp), %rdi
callq 0x3140
leaq -0x221(%rbp), %rdi
callq 0x3260
jmp 0x75c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7243
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7237
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3140
leaq -0x268(%rbp), %rdi
callq 0x3140
leaq -0x269(%rbp), %rdi
callq 0x3260
jmp 0x75c3
movq -0x18(%rbp), %rdi
addq $0x80, %rdi
callq 0x7c50
testb $0x1, %al
jne 0x726a
jmp 0x7279
movl $0x1, -0x294(%rbp)
jmp 0x75b1
movq 0x5d58(%rip), %rdi      # 0xcfd8
movq 0x5d41(%rip), %rsi      # 0xcfc8
callq 0x3230
movq %rax, -0x3b8(%rbp)
jmp 0x7295
movq -0x3b8(%rbp), %rdi
leaq 0x1e63(%rip), %rsi      # 0x9106
callq 0x31f0
movq %rax, -0x3c0(%rbp)
jmp 0x72b1
movq -0x3c0(%rbp), %rdi
movq 0x5d09(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x72c6
movq -0x18(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rdi
callq 0x5ad0
movq %rax, -0x2a8(%rbp)
movq -0x2a0(%rbp), %rdi
callq 0x5b00
movq %rax, -0x2b0(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x5b30
testb $0x1, %al
jne 0x7319
jmp 0x75a7
leaq -0x2a8(%rbp), %rdi
callq 0x5b60
movq %rax, -0x2b8(%rbp)
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x33a0
movq -0x3c8(%rbp), %rcx
leaq -0x2f8(%rbp), %rdi
movl $0x3, %esi
movl $0x20, %edx
callq 0x7b70
jmp 0x735e
movq -0x2b8(%rbp), %rdx
addq $0x20, %rdx
leaq -0x2d8(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x7a50
jmp 0x737e
leaq -0x2f8(%rbp), %rdi
callq 0x3140
leaq -0x2f9(%rbp), %rdi
callq 0x3260
movq -0x2b8(%rbp), %rax
testb $0x1, 0x61(%rax)
je 0x748d
movq -0x2b8(%rbp), %rdx
leaq 0x1d49(%rip), %rsi      # 0x90fe
leaq -0x340(%rbp), %rdi
callq 0x57f0
jmp 0x73c3
leaq 0x1d37(%rip), %rdx      # 0x9101
leaq -0x320(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x7b20
jmp 0x73df
leaq -0x2d8(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x32d0
jmp 0x73f4
leaq -0x320(%rbp), %rdi
callq 0x3140
leaq -0x340(%rbp), %rdi
callq 0x3140
jmp 0x748d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7434
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x3140
leaq -0x2f9(%rbp), %rdi
callq 0x3260
jmp 0x75c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x7599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x747c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x3140
leaq -0x340(%rbp), %rdi
callq 0x3140
jmp 0x7599
movq -0x390(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x3d8(%rbp)
leaq -0x2d8(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x3320
movq -0x3d8(%rbp), %rsi
movq -0x3d0(%rbp), %rdi
subq %rax, %rsi
movl $0x20, %edx
callq 0x3250
jmp 0x74cf
movq -0x390(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x360(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x3100
jmp 0x74f6
movq -0x2b8(%rbp), %rsi
addq $0x40, %rsi
leaq -0x380(%rbp), %rdi
callq 0x3100
jmp 0x750f
movq -0x3e0(%rbp), %rsi
movq -0x390(%rbp), %rdi
leaq -0x360(%rbp), %rdx
leaq -0x380(%rbp), %rcx
callq 0x7770
jmp 0x7532
leaq -0x380(%rbp), %rdi
callq 0x3140
leaq -0x360(%rbp), %rdi
callq 0x3140
leaq -0x2d8(%rbp), %rdi
callq 0x3140
leaq -0x2a8(%rbp), %rdi
callq 0x5bc0
jmp 0x72fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x758d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x3140
leaq -0x360(%rbp), %rdi
callq 0x3140
leaq -0x2d8(%rbp), %rdi
callq 0x3140
jmp 0x75c3
movl $0x0, -0x294(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3140
addq $0x3e0, %rsp            # imm = 0x3E0
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x3140
movq -0x60(%rbp), %rdi
callq 0x3390
nopw %cs:(%rax,%rax)
nop