// File: /workspace/github_cpp_makefile_star2_O2/BU-DiSC[P]BF-Shared-Hashing/./args.hxx
// Function: args::ArgumentParser::Help(std::ostream&) const
void Help(std::ostream &help_) const
            {
                auto &command = SelectedCommand();
                const auto &commandDescription = command.Description().empty() ? command.Help() : command.Description();
                const auto description_text = Wrap(commandDescription, helpParams.width - helpParams.descriptionindent);
                const auto epilog_text = Wrap(command.Epilog(), helpParams.width - helpParams.descriptionindent);

                const bool hasoptions = command.HasFlag();
                const bool hasarguments = command.HasPositional();

                std::vector<std::string> prognameline;
                prognameline.push_back(helpParams.usageString);
                prognameline.push_back(Prog());
                auto commandProgLine = command.GetProgramLine(helpParams);
                prognameline.insert(prognameline.end(), commandProgLine.begin(), commandProgLine.end());

                const auto proglines = Wrap(prognameline.begin(), prognameline.end(),
                                            helpParams.width - (helpParams.progindent + helpParams.progtailindent),
                                            helpParams.width - helpParams.progindent);
                auto progit = std::begin(proglines);
                if (progit != std::end(proglines))
                {
                    help_ << std::string(helpParams.progindent, ' ') << *progit << '\n';
                    ++progit;
                }
                for (; progit != std::end(proglines); ++progit)
                {
                    help_ << std::string(helpParams.progtailindent, ' ') << *progit << '\n';
                }

                help_ << '\n';

                if (!description_text.empty())
                {
                    for (const auto &line: description_text)
                    {
                        help_ << std::string(helpParams.descriptionindent, ' ') << line << "\n";
                    }
                    help_ << "\n";
                }

                bool lastDescriptionIsNewline = false;

                if (!helpParams.optionsString.empty())
                {
                    help_ << std::string(helpParams.progindent, ' ') << helpParams.optionsString << "\n\n";
                }

                for (const auto &desc: command.GetDescription(helpParams, 0))
                {
                    lastDescriptionIsNewline = std::get<0>(desc).empty() && std::get<1>(desc).empty();
                    const auto groupindent = std::get<2>(desc) * helpParams.eachgroupindent;
                    const auto flags = Wrap(std::get<0>(desc), helpParams.width - (helpParams.flagindent + helpParams.helpindent + helpParams.gutter));
                    const auto info = Wrap(std::get<1>(desc), helpParams.width - (helpParams.helpindent + groupindent));

                    std::string::size_type flagssize = 0;
                    for (auto flagsit = std::begin(flags); flagsit != std::end(flags); ++flagsit)
                    {
                        if (flagsit != std::begin(flags))
                        {
                            help_ << '\n';
                        }
                        help_ << std::string(groupindent + helpParams.flagindent, ' ') << *flagsit;
                        flagssize = Glyphs(*flagsit);
                    }

                    auto infoit = std::begin(info);
                    // groupindent is on both sides of this inequality, and therefore can be removed
                    if ((helpParams.flagindent + flagssize + helpParams.gutter) > helpParams.helpindent || infoit == std::end(info) || helpParams.addNewlineBeforeDescription)
                    {
                        help_ << '\n';
                    } else
                    {
                        // groupindent is on both sides of the minus sign, and therefore doesn't actually need to be in here
                        help_ << std::string(helpParams.helpindent - (helpParams.flagindent + flagssize), ' ') << *infoit << '\n';
                        ++infoit;
                    }
                    for (; infoit != std::end(info); ++infoit)
                    {
                        help_ << std::string(groupindent + helpParams.helpindent, ' ') << *infoit << '\n';
                    }
                }
                if (hasoptions && hasarguments && helpParams.showTerminator)
                {
                    lastDescriptionIsNewline = false;
                    for (const auto &item: Wrap(std::string("\"") + terminator + "\" can be used to terminate flag options and force all following arguments to be treated as positional options", helpParams.width - helpParams.flagindent))
                    {
                        help_ << std::string(helpParams.flagindent, ' ') << item << '\n';
                    }
                }

                if (!lastDescriptionIsNewline)
                {
                    help_ << "\n";
                }

                for (const auto &line: epilog_text)
                {
                    help_ << std::string(helpParams.descriptionindent, ' ') << line << "\n";
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rsi, %rbx
movq %rdi, %r14
callq 0x1c19e
movq %rax, %r15
xorl %eax, %eax
cmpq $0x0, 0xb0(%r15)
setne %al
shll $0x5, %eax
leaq (%r15,%rax), %rsi
addq $0x88, %rsi
movl 0x210(%r14), %edx
subl 0x21c(%r14), %edx
leaq 0x110(%rsp), %rdi
xorl %ecx, %ecx
callq 0x1c1ae
leaq 0xc8(%r15), %rsi
movl 0x210(%r14), %edx
subl 0x21c(%r14), %edx
leaq 0xf8(%rsp), %rdi
xorl %ecx, %ecx
callq 0x1c1ae
movq (%r15), %rax
movq %r15, %rdi
callq *0x50(%rax)
movl %eax, %r12d
movq (%r15), %rax
movq %r15, %rdi
callq *0x58(%rax)
movl %eax, %r13d
xorps %xmm0, %xmm0
leaq 0x90(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x3e8(%r14), %rsi
callq 0x74c4
leaq 0x2b8(%r14), %rsi
leaq 0x90(%rsp), %rdi
callq 0x74c4
leaq 0x210(%r14), %rbp
movq (%r15), %rax
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
callq *0x68(%rax)
leaq 0x90(%rsp), %rdi
movq 0x8(%rdi), %rsi
movq 0xe0(%rsp), %rdx
movq 0xe8(%rsp), %rcx
callq 0x14c26
movq %rbp, 0x48(%rsp)
movq %r15, 0x50(%rsp)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
movl 0x210(%r14), %r8d
movl 0x214(%r14), %eax
movl 0x218(%r14), %edi
addl %eax, %edi
movl %r8d, %ecx
subl %edi, %ecx
subl %eax, %r8d
leaq 0xc8(%rsp), %rdi
xorl %r9d, %r9d
callq 0x1c3a7
movq 0xc8(%rsp), %r15
cmpq 0xd0(%rsp), %r15
movq %r14, 0x10(%rsp)
movb %r12b, 0xf(%rsp)
movb %r13b, 0xe(%rsp)
je 0x1badc
movl 0x214(%r14), %esi
leaq 0x28(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18(%rsp), %rdi
pushq $0x20
popq %rdx
callq 0x6470
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x63b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x63b0
pushq $0xa
popq %rsi
movq %rax, %rdi
callq 0x6480
leaq 0x18(%rsp), %rdi
callq 0x61f0
addq $0x20, %r15
leaq 0x18(%rsp), %r14
pushq $0x20
popq %r13
pushq $0xa
popq %r12
cmpq 0xd0(%rsp), %r15
je 0x1bb42
movq 0x10(%rsp), %rax
movl 0x218(%rax), %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r14, %rdi
movl %r13d, %edx
callq 0x6470
movq %rbx, %rdi
movq %r14, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movl %r12d, %esi
callq 0x6480
movq %r14, %rdi
callq 0x61f0
addq $0x20, %r15
jmp 0x1bae9
pushq $0xa
popq %rsi
movq %rbx, %rdi
callq 0x6480
movq 0x110(%rsp), %r15
movq 0x118(%rsp), %r14
cmpq %r14, %r15
je 0x1bbd3
leaq 0x18(%rsp), %r13
pushq $0x20
popq %rbp
leaq 0x74ec(%rip), %r12      # 0x2305d
cmpq %r14, %r15
je 0x1bbc4
movq 0x10(%rsp), %rax
movl 0x21c(%rax), %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r13, %rdi
movl %ebp, %edx
callq 0x6470
movq %rbx, %rdi
movq %r13, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r12, %rsi
callq 0x6410
movq %r13, %rdi
callq 0x61f0
addq $0x20, %r15
jmp 0x1bb71
leaq 0x7492(%rip), %rsi      # 0x2305d
movq %rbx, %rdi
callq 0x6410
movq 0x10(%rsp), %rbp
cmpq $0x0, 0x410(%rbp)
je 0x1bc32
movl 0x214(%rbp), %esi
leaq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
movq %rax, (%rdi)
pushq $0x20
popq %rdx
callq 0x6470
leaq 0x18(%rsp), %rsi
movq %rbx, %rdi
callq 0x63b0
leaq 0x408(%rbp), %rsi
movq %rax, %rdi
callq 0x63b0
leaq 0x743c(%rip), %rsi      # 0x2305c
movq %rax, %rdi
callq 0x6410
leaq 0x18(%rsp), %rdi
callq 0x61f0
movq 0x50(%rsp), %rsi
movq (%rsi), %rax
leaq 0xa8(%rsp), %rdi
movq 0x48(%rsp), %rdx
xorl %ecx, %ecx
callq *0x20(%rax)
movq 0xa8(%rsp), %rcx
movq 0xb0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
leaq 0x70(%rsp), %r13
leaq 0x18(%rsp), %r15
pushq $0x20
popq %r12
cmpq 0x48(%rsp), %rcx
je 0x1be74
cmpq $0x0, 0x30(%rcx)
je 0x1bc95
movq $0x0, 0x40(%rsp)
jmp 0x1bca2
cmpq $0x0, 0x10(%rcx)
sete %al
movq %rax, 0x40(%rsp)
movl 0x228(%rbp), %r14d
imull (%rcx), %r14d
leaq 0x28(%rcx), %rsi
movl 0x220(%rbp), %eax
addl 0x224(%rbp), %eax
movl 0x210(%rbp), %edx
addl 0x22c(%rbp), %eax
subl %eax, %edx
movq %r13, %rdi
movq %rcx, %r13
xorl %ecx, %ecx
callq 0x1c1ae
movq %r13, 0x50(%rsp)
leaq 0x8(%r13), %rsi
movl 0x210(%rbp), %edx
movl 0x224(%rbp), %eax
addl %r14d, %eax
subl %eax, %edx
leaq 0x58(%rsp), %rdi
xorl %ecx, %ecx
callq 0x1c1ae
movq 0x70(%rsp), %r13
xorl %eax, %eax
cmpq 0x78(%rsp), %r13
je 0x1bd6d
cmpq 0x70(%rsp), %r13
je 0x1bd1e
movq %rbx, %rdi
pushq $0xa
popq %rsi
callq 0x6480
movq 0x10(%rsp), %rax
movl 0x220(%rax), %esi
addl %r14d, %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r15, %rdi
movl %r12d, %edx
callq 0x6470
movq %rbx, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r13, %rsi
callq 0x63b0
movq %r15, %rdi
callq 0x61f0
movq %r13, %rdi
callq 0x1c526
addq $0x20, %r13
jmp 0x1bd05
movq 0x58(%rsp), %r13
movq 0x10(%rsp), %rdx
movl 0x220(%rdx), %ecx
movl 0x224(%rdx), %esi
addq %rcx, %rax
movl 0x22c(%rdx), %ecx
addq %rax, %rcx
cmpq %rsi, %rcx
ja 0x1bda9
cmpq 0x60(%rsp), %r13
je 0x1bda9
movq 0x10(%rsp), %rcx
cmpb $0x1, 0x42a(%rcx)
jne 0x1bdb6
movq %rbx, %rdi
pushq $0xa
popq %rsi
callq 0x6480
jmp 0x1bdf1
subq %rax, %rsi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r15, %rdi
movl %r12d, %edx
callq 0x6470
movq %rbx, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r13, %rsi
callq 0x63b0
movq %rax, %rdi
pushq $0xa
popq %rsi
callq 0x6480
jmp 0x1be3c
cmpq 0x60(%rsp), %r13
je 0x1be4a
movq 0x10(%rsp), %rax
movl 0x224(%rax), %esi
addl %r14d, %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r15, %rdi
movl %r12d, %edx
callq 0x6470
movq %rbx, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r13, %rsi
callq 0x63b0
movq %rax, %rdi
pushq $0xa
popq %rsi
callq 0x6480
movq %r15, %rdi
callq 0x61f0
addq $0x20, %r13
jmp 0x1bdf1
leaq 0x58(%rsp), %rdi
callq 0x739e
leaq 0x70(%rsp), %r13
movq %r13, %rdi
callq 0x739e
movq 0x50(%rsp), %rcx
addq $0x48, %rcx
movq 0x10(%rsp), %rbp
jmp 0x1bc78
leaq 0xa8(%rsp), %rdi
callq 0x136b0
movb 0xe(%rsp), %al
testb %al, 0xf(%rsp)
je 0x1bf89
cmpb $0x1, 0x230(%rbp)
jne 0x1bf89
leaq 0x71bc(%rip), %rsi      # 0x2305f
leaq 0x70(%rsp), %rdi
leaq 0x3f(%rsp), %rdx
callq 0x61b0
leaq 0x1d8(%rbp), %rdx
leaq 0xa8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x17640
leaq 0x718f(%rip), %rdx      # 0x23061
leaq 0x18(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xb514
movl 0x210(%rbp), %edx
subl 0x220(%rbp), %edx
leaq 0x58(%rsp), %rdi
leaq 0x18(%rsp), %rsi
xorl %ecx, %ecx
callq 0x1c1ae
leaq 0x18(%rsp), %r15
movq %r15, %rdi
callq 0x61f0
leaq 0xa8(%rsp), %rdi
callq 0x61f0
leaq 0x70(%rsp), %rdi
callq 0x61f0
movq 0x58(%rsp), %r12
movq 0x60(%rsp), %r14
pushq $0x20
popq %rbp
pushq $0xa
popq %r13
cmpq %r14, %r12
je 0x1bf92
movq 0x10(%rsp), %rax
movl 0x220(%rax), %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r15, %rdi
movl %ebp, %edx
callq 0x6470
movq %rbx, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r12, %rsi
callq 0x63b0
movq %rax, %rdi
movl %r13d, %esi
callq 0x6480
movq %r15, %rdi
callq 0x61f0
addq $0x20, %r12
jmp 0x1bf36
testb $0x1, 0x40(%rsp)
je 0x1bf9c
jmp 0x1bfab
leaq 0x58(%rsp), %rdi
callq 0x739e
leaq 0x70ba(%rip), %rsi      # 0x2305d
movq %rbx, %rdi
callq 0x6410
movq 0xf8(%rsp), %r15
movq 0x100(%rsp), %r14
leaq 0x18(%rsp), %r12
pushq $0x20
popq %rbp
leaq 0x7093(%rip), %r13      # 0x2305d
cmpq %r14, %r15
je 0x1c01d
movq 0x10(%rsp), %rax
movl 0x21c(%rax), %esi
leaq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %r12, %rdi
movl %ebp, %edx
callq 0x6470
movq %rbx, %rdi
movq %r12, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r15, %rsi
callq 0x63b0
movq %rax, %rdi
movq %r13, %rsi
callq 0x6410
movq %r12, %rdi
callq 0x61f0
addq $0x20, %r15
jmp 0x1bfca
leaq 0xc8(%rsp), %rdi
callq 0x739e
leaq 0xe0(%rsp), %rdi
callq 0x739e
leaq 0x90(%rsp), %rdi
callq 0x739e
leaq 0xf8(%rsp), %rdi
callq 0x739e
leaq 0x110(%rsp), %rdi
callq 0x739e
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x61f0
jmp 0x1c082
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x61f0
jmp 0x1c094
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
jmp 0x1c114
jmp 0x1c103
jmp 0x1c103
jmp 0x1c103
jmp 0x1c103
jmp 0x1c103
jmp 0x1c0a7
movq %rax, %rbx
jmp 0x1c161
jmp 0x1c0c9
jmp 0x1c0b3
movq %rax, %rbx
jmp 0x1c17b
movq %rax, %rbx
jmp 0x1c188
jmp 0x1c103
jmp 0x1c10c
jmp 0x1c10c
movq %rax, %rbx
jmp 0x1c16e
jmp 0x1c11f
movq %rax, %rbx
jmp 0x1c0eb
jmp 0x1c103
jmp 0x1c11f
jmp 0x1c126
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x61f0
leaq 0x58(%rsp), %rdi
callq 0x739e
jmp 0x1c154
jmp 0x1c103
movq %rax, %rbx
jmp 0x1c13d
movq %rax, %rbx
jmp 0x1c147
movq %rax, %rbx
jmp 0x1c154
jmp 0x1c10c
jmp 0x1c10c
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x61f0
jmp 0x1c154
jmp 0x1c11f
jmp 0x1c11f
movq %rax, %rbx
jmp 0x1c133
jmp 0x1c126
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x61f0
leaq 0x58(%rsp), %rdi
callq 0x739e
leaq 0x70(%rsp), %rdi
callq 0x739e
leaq 0xa8(%rsp), %rdi
callq 0x136b0
leaq 0xc8(%rsp), %rdi
callq 0x739e
leaq 0xe0(%rsp), %rdi
callq 0x739e
leaq 0x90(%rsp), %rdi
callq 0x739e
leaq 0xf8(%rsp), %rdi
callq 0x739e
leaq 0x110(%rsp), %rdi
callq 0x739e
movq %rbx, %rdi
callq 0x66b0
nop