// File: moya-lang[P]Arguments/./Arguments.h
// Function: Moya::System::Arguments::Help::print(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
void print(size_t newLineIndent, std::string intro, std::string message) const
        {
            std::string singleLine, singleWord;
            singleLine.reserve(message.size() + 1);
            singleWord.reserve(message.size() + 1);

            if (intro.length() < maxLineLength)
                singleWord = intro;
            else
                std::cout << intro << std::endl;

            bool hasLineStarted = false;
            size_t length = message.length();
            for (size_t i = 0; i <= length; i++) {
                char character = message[i];

                bool isWhitespace = isspace(character) || !character;
                if (!isWhitespace) {
                    singleWord += character;
                    continue;
                }

                if (hasLineStarted && singleLine.length() + singleWord.length() + 1 > maxLineLength) {
                    std::cout << singleLine << std::endl;
                    singleLine.assign(newLineIndent, ' ');
                    hasLineStarted = false;
                }

                if (!singleWord.empty()) {
                    if (hasLineStarted)
                        singleLine += " ";

                    hasLineStarted = true;
                    singleLine += singleWord;
                    singleWord = "";
                }
            }

            if (hasLineStarted)
                std::cout << singleLine << std::endl;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdx, -0xa0(%rbp)
movq %rcx, -0x98(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x32f0
leaq -0x60(%rbp), %rdi
callq 0x32f0
movq -0x98(%rbp), %rdi
callq 0x3170
movq -0x90(%rbp), %rdi
movq %rax, %rsi
incq %rsi
callq 0x3340
jmp 0x77d2
movq -0x98(%rbp), %rdi
callq 0x3170
movq %rax, %rsi
incq %rsi
leaq -0x60(%rbp), %rdi
callq 0x3340
jmp 0x77ef
movq -0xa0(%rbp), %rdi
callq 0x3320
cmpq $0x61, %rax
jae 0x7838
movq -0xa0(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x3040
jmp 0x7813
jmp 0x786b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3140
leaq -0x40(%rbp), %rdi
callq 0x3140
jmp 0x7a46
movq -0xa0(%rbp), %rsi
movq 0x5792(%rip), %rdi      # 0xcfd8
callq 0x31d0
movq %rax, -0xa8(%rbp)
jmp 0x7854
movq -0xa8(%rbp), %rdi
movq 0x5766(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x7869
jmp 0x786b
movq -0x98(%rbp), %rdi
movb $0x0, -0x6d(%rbp)
callq 0x3320
movq %rax, -0x78(%rbp)
movq $0x0, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpq -0x78(%rbp), %rax
ja 0x79f5
movq -0x98(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x33f0
movq %rax, -0xb0(%rbp)
jmp 0x78ae
movq -0xb0(%rbp), %rax
movb (%rax), %al
movb %al, -0x81(%rbp)
movsbl -0x81(%rbp), %edi
callq 0x3050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xb1(%rbp)
jne 0x78ea
cmpb $0x0, -0x81(%rbp)
setne %al
xorb $-0x1, %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
andb $0x1, %al
movb %al, -0x82(%rbp)
testb $0x1, -0x82(%rbp)
jne 0x7918
movsbl -0x81(%rbp), %esi
leaq -0x60(%rbp), %rdi
callq 0x3150
jmp 0x7913
jmp 0x79e4
testb $0x1, -0x6d(%rbp)
je 0x7994
leaq -0x40(%rbp), %rdi
callq 0x3320
movq %rax, -0xc0(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3320
movq %rax, %rcx
movq -0xc0(%rbp), %rax
addq %rcx, %rax
addq $0x1, %rax
cmpq $0x61, %rax
jbe 0x7994
movq 0x5683(%rip), %rdi      # 0xcfd8
leaq -0x40(%rbp), %rsi
callq 0x31d0
movq %rax, -0xc8(%rbp)
jmp 0x7967
movq -0xc8(%rbp), %rdi
movq 0x5653(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x797c
movq -0x10(%rbp), %rsi
leaq -0x40(%rbp), %rdi
movl $0x20, %edx
callq 0x3380
jmp 0x7990
movb $0x0, -0x6d(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3360
testb $0x1, %al
jne 0x79e2
testb $0x1, -0x6d(%rbp)
je 0x79bb
leaq 0x16ce(%rip), %rsi      # 0x907c
leaq -0x40(%rbp), %rdi
callq 0x31e0
jmp 0x79b9
jmp 0x79bb
movb $0x1, -0x6d(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x32d0
jmp 0x79ce
leaq 0x16a8(%rip), %rsi      # 0x907d
leaq -0x60(%rbp), %rdi
callq 0x32e0
jmp 0x79e0
jmp 0x79e2
jmp 0x79e4
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x7887
testb $0x1, -0x6d(%rbp)
je 0x7a2b
movq 0x55d6(%rip), %rdi      # 0xcfd8
leaq -0x40(%rbp), %rsi
callq 0x31d0
movq %rax, -0xd0(%rbp)
jmp 0x7a14
movq -0xd0(%rbp), %rdi
movq 0x55a6(%rip), %rsi      # 0xcfc8
callq 0x3230
jmp 0x7a29
jmp 0x7a2b
leaq -0x60(%rbp), %rdi
callq 0x3140
leaq -0x40(%rbp), %rdi
callq 0x3140
addq $0xd0, %rsp
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x3390
nop