// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdi, %r14
movq (%rdi), %rdi
movq (%rsi), %rsi
callq 0x2c5e
testq %rax, %rax
je 0x3bcf
movq %rax, %r15
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3d2a
leaq 0x190a(%rip), %rsi      # 0x509a
leaq -0xc0(%rbp), %rdi
movq %rbx, %rdx
callq 0x3fd2
leaq -0x48(%rbp), %rdi
callq 0x20d0
movq (%r14), %rax
cmpq $0x2, 0x50(%rax)
jb 0x37df
leaq 0x20(%r15), %rdx
leaq 0x18e3(%rip), %rsi      # 0x50a0
leaq -0x48(%rbp), %rdi
callq 0x3085
leaq -0xc0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x22a0
leaq -0x48(%rbp), %rdi
callq 0x20d0
movq %r14, -0x50(%rbp)
movq %r15, -0x80(%rbp)
leaq 0x80(%r15), %rbx
leaq -0x78(%rbp), %r13
leaq -0xa0(%rbp), %r15
movq %rbx, -0x58(%rbp)
movq (%rbx), %rbx
cmpq -0x58(%rbp), %rbx
je 0x3934
leaq 0x30(%rbx), %rsi
leaq -0x48(%rbp), %rdi
callq 0x21f0
cmpb $0x1, 0x71(%rbx)
jne 0x3884
leaq 0x10(%rbx), %rdx
cmpb $0x1, 0x70(%rbx)
jne 0x3847
movq %r13, %rdi
leaq 0x186f(%rip), %rsi      # 0x50a0
callq 0x3085
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x22a0
movq %r13, %rdi
jmp 0x387f
movq %r15, %rdi
leaq 0x18d1(%rip), %rsi      # 0x5122
callq 0x3085
movq %r13, %rdi
movq %r15, %rsi
leaq 0x18c2(%rip), %rdx      # 0x5125
callq 0x3fa9
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x22a0
movq %r13, %rdi
callq 0x20d0
movq %r15, %rdi
callq 0x20d0
movb 0x70(%rbx), %r12b
cmpb $0x1, %r12b
jne 0x38bf
leaq -0x1e0(%rbp), %r15
movq %r15, %rdi
leaq 0x1883(%rip), %rsi      # 0x5122
leaq -0x48(%rbp), %rdx
callq 0x3085
movq %r13, %r14
movq %r13, %rdi
movq %r15, %rsi
leaq 0x186d(%rip), %rdx      # 0x5125
callq 0x3fa9
jmp 0x38ee
leaq -0x1c0(%rbp), %r15
movq %r15, %rdi
leaq 0x1857(%rip), %rsi      # 0x5127
leaq -0x48(%rbp), %rdx
callq 0x3085
movq %r13, %r14
movq %r13, %rdi
movq %r15, %rsi
leaq 0x17f6(%rip), %rdx      # 0x50df
callq 0x3fa9
leaq -0xc0(%rbp), %rdi
movq %r14, %rsi
callq 0x22a0
movq %r14, %rdi
callq 0x20d0
testb %r12b, %r12b
je 0x3913
leaq -0x1e0(%rbp), %rdi
jmp 0x391a
leaq -0x1c0(%rbp), %rdi
callq 0x20d0
leaq -0xa0(%rbp), %r15
leaq -0x48(%rbp), %rdi
callq 0x20d0
jmp 0x37fd
leaq 0x1766(%rip), %rsi      # 0x50a1
leaq -0x180(%rbp), %rdi
leaq -0x78(%rbp), %rdx
callq 0x255a
movq -0x50(%rbp), %rbx
movq (%rbx), %rsi
leaq 0x1735(%rip), %rdx      # 0x508e
leaq -0x48(%rbp), %rdi
callq 0x3f71
movq -0x80(%rbp), %r14
movq (%rbx), %rdx
addq $0x20, %rdx
leaq -0x160(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3f48
pushq $0x3
popq %rsi
leaq -0x180(%rbp), %rdx
leaq -0x160(%rbp), %rcx
movq %rbx, %rdi
callq 0x3d96
leaq -0x160(%rbp), %rdi
callq 0x20d0
leaq -0x48(%rbp), %rdi
callq 0x20d0
leaq -0x180(%rbp), %rdi
callq 0x20d0
leaq 0x16e3(%rip), %rsi      # 0x50a1
leaq -0x140(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x255a
leaq -0x120(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x21f0
pushq $0x3
popq %rsi
leaq -0x140(%rbp), %rdx
leaq -0x120(%rbp), %rcx
movq %rbx, %rdi
callq 0x3d96
leaq -0x120(%rbp), %rdi
callq 0x20d0
leaq -0x140(%rbp), %rdi
callq 0x20d0
cmpq $0x0, 0x68(%r14)
je 0x3a84
movq 0x45b8(%rip), %rdi      # 0x7fd8
callq 0x20e0
leaq 0x1675(%rip), %rsi      # 0x50a1
leaq -0x100(%rbp), %rdi
leaq -0x48(%rbp), %rdx
callq 0x255a
movq -0x50(%rbp), %rbx
addq $0x60, %r14
leaq -0xe0(%rbp), %rdi
movq %r14, %rsi
callq 0x21f0
pushq $0x3
popq %rsi
leaq -0x100(%rbp), %rdx
leaq -0xe0(%rbp), %rcx
movq %rbx, %rdi
callq 0x3d96
leaq -0xe0(%rbp), %rdi
callq 0x20d0
leaq -0x100(%rbp), %rdi
callq 0x20d0
movq -0x58(%rbp), %rax
cmpq %rax, (%rax)
je 0x3bc3
movq 0x4540(%rip), %rdi      # 0x7fd8
callq 0x20e0
leaq 0x1686(%rip), %rsi      # 0x512a
movq %rax, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20e0
leaq -0x78(%rbp), %r13
leaq -0xa0(%rbp), %rbx
movq -0x58(%rbp), %r15
movq (%r15), %r15
cmpq -0x58(%rbp), %r15
je 0x3bc3
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq %r13, %rdi
pushq $0x3
popq %rsi
pushq $0x20
popq %rdx
callq 0x21c0
leaq 0x30(%r15), %rdx
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x3f48
movq %r13, %rdi
callq 0x20d0
cmpb $0x1, 0x71(%r15)
jne 0x3b49
leaq 0x10(%r15), %rdx
movq %rbx, %r12
movq %rbx, %rdi
leaq 0x160c(%rip), %rsi      # 0x5122
callq 0x3085
movq %r13, %rdi
movq %r12, %rsi
leaq 0x15fd(%rip), %rdx      # 0x5125
callq 0x3fa9
leaq -0x48(%rbp), %rdi
movq %r13, %rsi
callq 0x22a0
movq %r13, %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x20d0
movq -0x50(%rbp), %r12
movq 0x20(%r12), %rsi
subq -0x40(%rbp), %rsi
leaq -0x48(%rbp), %r14
movq %r14, %rdi
pushq $0x20
popq %rdx
callq 0x21a0
movq 0x20(%r12), %r12
leaq -0x1a0(%rbp), %rdi
movq %r14, %rsi
callq 0x21f0
leaq 0x50(%r15), %rsi
leaq -0x200(%rbp), %r14
movq %r14, %rdi
callq 0x21f0
movq -0x50(%rbp), %rdi
movq %r12, %rsi
leaq -0x1a0(%rbp), %r12
movq %r12, %rdx
movq %r14, %rcx
callq 0x3d96
movq %r14, %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x20d0
leaq -0x48(%rbp), %rdi
callq 0x20d0
jmp 0x3ac3
leaq -0xc0(%rbp), %rdi
callq 0x20d0
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3d09
jmp 0x3cdc
movq %rax, %rbx
leaq -0xe0(%rbp), %rdi
callq 0x20d0
jmp 0x3bff
movq %rax, %rbx
leaq -0x100(%rbp), %rdi
jmp 0x3d10
jmp 0x3cdc
movq %rax, %rbx
leaq -0x120(%rbp), %rdi
callq 0x20d0
jmp 0x3c24
movq %rax, %rbx
leaq -0x140(%rbp), %rdi
jmp 0x3d10
jmp 0x3cdc
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
callq 0x20d0
jmp 0x3c49
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x20d0
jmp 0x3c57
movq %rax, %rbx
leaq -0x180(%rbp), %rdi
jmp 0x3d10
jmp 0x3cdc
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
jmp 0x3d1c
jmp 0x3cdc
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0x3d02
jmp 0x3d09
jmp 0x3c91
jmp 0x3c8a
jmp 0x3d09
movq %rax, %rbx
jmp 0x3c9d
jmp 0x3d09
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20d0
leaq -0xa0(%rbp), %rdi
jmp 0x3d02
jmp 0x3d09
jmp 0x3d09
movq %rax, %rbx
jmp 0x3cfb
movq %rax, %rbx
jmp 0x3cf2
movq %rax, %rbx
jmp 0x3cc8
movq %rax, %rbx
leaq -0x200(%rbp), %rdi
callq 0x20d0
leaq -0x1a0(%rbp), %rdi
jmp 0x3d02
jmp 0x3cdc
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0x3d10
movq %rax, %rbx
jmp 0x3d15
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x20d0
testb %r12b, %r12b
je 0x3cfb
leaq -0x1e0(%rbp), %rdi
jmp 0x3d02
leaq -0x1c0(%rbp), %rdi
callq 0x20d0
jmp 0x3d0c
movq %rax, %rbx
leaq -0x48(%rbp), %rdi
callq 0x20d0
leaq -0xc0(%rbp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x2260
nop