// File: moya-lang[P]Arguments/./Arguments.h
// Function: Moya::System::Arguments::Help::printGenericHelp() const
void printGenericHelp() const
        {
            const size_t numberOfCommands = syntax.commands.size();
            if (numberOfCommands == 1) {
                printCommandHelp(syntax.commands.front().name);
                return;
            }

            std::string executableName = getApplicationName();
            print(margin, "", syntax.programName + ", version: " + syntax.programVersion);

            if (numberOfCommands < 1) {
                print(margin, "", "Usage: " + executableName + " [--version] [--help]");
                return;
            }

            print(margin, "", "Usage: " + executableName + " [--version] [--help] <command> [<args>]");
            std::cout << std::endl << "Commands:" << std::endl;
            for (const Command &command : syntax.commands) {

                std::string intro = std::string(margin, ' ') + command.name;
                intro.append(maxCommandIntroLength - margin - command.name.length(), ' ');
                print(maxCommandIntroLength, intro, command.brief);
            }

            std::cout << std::endl;
            print(margin, "", "See '" + executableName + " help <command>' to read about specific command.");
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x298(%rbp)
movq (%rax), %rdi
addq $0x40, %rdi
callq 0x4040
movq %rax, -0x10(%rbp)
cmpq $0x1, -0x10(%rbp)
jne 0x636c
movq -0x298(%rbp), %rax
movq (%rax), %rdi
addq $0x40, %rdi
callq 0x4900
movq -0x298(%rbp), %rdi
movq %rax, %rsi
addq $0x20, %rsi
callq 0x6af0
jmp 0x6a60
movq -0x298(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x75e0
leaq -0x51(%rbp), %rdi
movq %rdi, -0x2a0(%rbp)
callq 0x33a0
movq -0x2a0(%rbp), %rdx
leaq 0x2ce3(%rip), %rsi      # 0x907d
leaq -0x50(%rbp), %rdi
callq 0x37b0
jmp 0x63a5
movq -0x298(%rbp), %rax
movq (%rax), %rsi
leaq 0x2cb4(%rip), %rdx      # 0x906a
leaq -0xa8(%rbp), %rdi
callq 0x7aa0
jmp 0x63c4
movq -0x298(%rbp), %rax
movq (%rax), %rdx
addq $0x20, %rdx
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x7a50
jmp 0x63e7
movq -0x298(%rbp), %rdi
movl $0x3, %esi
leaq -0x50(%rbp), %rdx
leaq -0x88(%rbp), %rcx
callq 0x7770
jmp 0x6405
leaq -0x88(%rbp), %rdi
callq 0x3140
leaq -0xa8(%rbp), %rdi
callq 0x3140
leaq -0x50(%rbp), %rdi
callq 0x3140
leaq -0x51(%rbp), %rdi
callq 0x3260
cmpq $0x1, -0x10(%rbp)
jae 0x65ce
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x33a0
movq -0x2a8(%rbp), %rdx
leaq 0x2c22(%rip), %rsi      # 0x907d
leaq -0xc8(%rbp), %rdi
callq 0x37b0
jmp 0x6469
leaq 0x2c06(%rip), %rsi      # 0x9076
leaq -0x110(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x57f0
jmp 0x6482
leaq 0x2bf5(%rip), %rdx      # 0x907e
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x7b20
jmp 0x649e
movq -0x298(%rbp), %rdi
movl $0x3, %esi
leaq -0xc8(%rbp), %rdx
leaq -0xf0(%rbp), %rcx
callq 0x7770
jmp 0x64bf
leaq -0xf0(%rbp), %rdi
callq 0x3140
leaq -0x110(%rbp), %rdi
callq 0x3140
leaq -0xc8(%rbp), %rdi
callq 0x3140
leaq -0xc9(%rbp), %rdi
callq 0x3260
movl $0x1, -0x114(%rbp)
jmp 0x6a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6555
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x654c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6540
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3140
leaq -0xa8(%rbp), %rdi
callq 0x3140
leaq -0x50(%rbp), %rdi
callq 0x3140
leaq -0x51(%rbp), %rdi
callq 0x3260
jmp 0x6acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x65bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x65b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x65a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x3140
leaq -0x110(%rbp), %rdi
callq 0x3140
leaq -0xc8(%rbp), %rdi
callq 0x3140
leaq -0xc9(%rbp), %rdi
callq 0x3260
jmp 0x6acf
leaq -0x139(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x33a0
movq -0x2b0(%rbp), %rdx
leaq 0x2a8e(%rip), %rsi      # 0x907d
leaq -0x138(%rbp), %rdi
callq 0x37b0
jmp 0x65fd
leaq 0x2a72(%rip), %rsi      # 0x9076
leaq -0x180(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x57f0
jmp 0x6616
leaq 0x2a77(%rip), %rdx      # 0x9094
leaq -0x160(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x7b20
jmp 0x6632
movq -0x298(%rbp), %rdi
movl $0x3, %esi
leaq -0x138(%rbp), %rdx
leaq -0x160(%rbp), %rcx
callq 0x7770
jmp 0x6653
leaq -0x160(%rbp), %rdi
callq 0x3140
leaq -0x180(%rbp), %rdi
callq 0x3140
leaq -0x138(%rbp), %rdi
callq 0x3140
leaq -0x139(%rbp), %rdi
callq 0x3260
movq 0x694e(%rip), %rdi      # 0xcfd8
movq 0x6937(%rip), %rsi      # 0xcfc8
callq 0x3230
movq %rax, -0x2b8(%rbp)
jmp 0x669f
movq -0x2b8(%rbp), %rdi
leaq 0x2a10(%rip), %rsi      # 0x90bd
callq 0x31f0
movq %rax, -0x2c0(%rbp)
jmp 0x66bb
movq -0x2c0(%rbp), %rdi
movq 0x68ff(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x66d0
movq -0x298(%rbp), %rax
movq (%rax), %rax
addq $0x40, %rax
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rdi
callq 0x6020
movq %rax, -0x190(%rbp)
movq -0x188(%rbp), %rdi
callq 0x60f0
movq %rax, -0x198(%rbp)
leaq -0x190(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x6120
testb $0x1, %al
jne 0x6727
jmp 0x6983
leaq -0x190(%rbp), %rdi
callq 0x6050
movq %rax, -0x1a0(%rbp)
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x33a0
movq -0x2c8(%rbp), %rcx
leaq -0x1e0(%rbp), %rdi
movl $0x3, %esi
movl $0x20, %edx
callq 0x7b70
jmp 0x676c
movq -0x1a0(%rbp), %rdx
addq $0x20, %rdx
leaq -0x1c0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x7a50
jmp 0x678c
leaq -0x1e0(%rbp), %rdi
callq 0x3140
leaq -0x1e1(%rbp), %rdi
callq 0x3260
movq -0x298(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x2d0(%rbp)
movq -0x1a0(%rbp), %rdi
addq $0x20, %rdi
callq 0x3320
movq -0x2d0(%rbp), %rsi
subq %rax, %rsi
addq $-0x3, %rsi
leaq -0x1c0(%rbp), %rdi
movl $0x20, %edx
callq 0x3250
jmp 0x67e7
movq -0x298(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x2d8(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x3100
jmp 0x680e
movq -0x1a0(%rbp), %rsi
addq $0x40, %rsi
leaq -0x228(%rbp), %rdi
callq 0x3100
jmp 0x6827
movq -0x2d8(%rbp), %rsi
movq -0x298(%rbp), %rdi
leaq -0x208(%rbp), %rdx
leaq -0x228(%rbp), %rcx
callq 0x7770
jmp 0x684a
leaq -0x228(%rbp), %rdi
callq 0x3140
leaq -0x208(%rbp), %rdi
callq 0x3140
leaq -0x1c0(%rbp), %rdi
callq 0x3140
leaq -0x190(%rbp), %rdi
callq 0x6150
jmp 0x670b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x68d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x68cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x68c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x3140
leaq -0x180(%rbp), %rdi
callq 0x3140
leaq -0x138(%rbp), %rdi
callq 0x3140
leaq -0x139(%rbp), %rdi
callq 0x3260
jmp 0x6acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6921
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x3140
leaq -0x1e1(%rbp), %rdi
callq 0x3260
jmp 0x6acf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6972
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6966
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x3140
leaq -0x208(%rbp), %rdi
callq 0x3140
leaq -0x1c0(%rbp), %rdi
callq 0x3140
jmp 0x6acf
movq 0x664e(%rip), %rdi      # 0xcfd8
movq 0x6637(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x6998
leaq -0x249(%rbp), %rdi
movq %rdi, -0x2e0(%rbp)
callq 0x33a0
movq -0x2e0(%rbp), %rdx
leaq 0x26c4(%rip), %rsi      # 0x907d
leaq -0x248(%rbp), %rdi
callq 0x37b0
jmp 0x69c7
leaq 0x26f9(%rip), %rsi      # 0x90c7
leaq -0x290(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x57f0
jmp 0x69e0
leaq 0x26e6(%rip), %rdx      # 0x90cd
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x7b20
jmp 0x69fc
movq -0x298(%rbp), %rdi
movl $0x3, %esi
leaq -0x248(%rbp), %rdx
leaq -0x270(%rbp), %rcx
callq 0x7770
jmp 0x6a1d
leaq -0x270(%rbp), %rdi
callq 0x3140
leaq -0x290(%rbp), %rdi
callq 0x3140
leaq -0x248(%rbp), %rdi
callq 0x3140
leaq -0x249(%rbp), %rdi
callq 0x3260
movl $0x0, -0x114(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3140
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6ac3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6ab7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x6aab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x3140
leaq -0x290(%rbp), %rdi
callq 0x3140
leaq -0x248(%rbp), %rdi
callq 0x3140
leaq -0x249(%rbp), %rdi
callq 0x3260
leaq -0x30(%rbp), %rdi
callq 0x3140
movq -0x60(%rbp), %rdi
callq 0x3390
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)