// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::Formatter::make_usage(CLI::App const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
inline std::string Formatter::make_usage(const App *app, std::string name) const {
    std::stringstream out;

    out << get_label("Usage") << ":" << (name.empty() ? "" : " ") << name;

    std::vector<std::string> groups = app->get_groups();

    // Print an Options badge if any options exist
    std::vector<const Option *> non_pos_options =
        app->get_options([](const Option *opt) { return opt->nonpositional(); });
    if(!non_pos_options.empty())
        out << " [" << get_label("OPTIONS") << "]";

    // Positionals need to be listed here
    std::vector<const Option *> positionals = app->get_options([](const Option *opt) { return opt->get_positional(); });

    // Print out positionals if any are left
    if(!positionals.empty()) {
        // Convert to help names
        std::vector<std::string> positional_names(positionals.size());
        std::transform(positionals.begin(), positionals.end(), positional_names.begin(), [this](const Option *opt) {
            return make_option_usage(opt);
        });

        out << " " << detail::join(positional_names, " ");
    }

    // Add a marker if subcommands are expected or optional
    if(!app->get_subcommands({}).empty()) {
        out << " " << (app->get_require_subcommand_min() == 0 ? "[" : "")
            << get_label(app->get_require_subcommand_max() < 2 || app->get_require_subcommand_min() > 1 ? "SUBCOMMAND"
                                                                                                        : "SUBCOMMANDS")
            << (app->get_require_subcommand_min() == 0 ? "]" : "");
    }

    out << std::endl;

    return out.str();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x510, %rsp            # imm = 0x510
movq %rcx, -0x420(%rbp)
movq %rdi, -0x418(%rbp)
movq %rdi, %rax
movq %rax, -0x410(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x408(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x62e0
leaq -0x198(%rbp), %rax
movq %rax, -0x400(%rbp)
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x6770
movq -0x3f8(%rbp), %rdx
leaq 0x35b0e(%rip), %rsi     # 0x41987
leaq -0x1e8(%rbp), %rdi
callq 0x8eb0
jmp 0xbe87
movq -0x408(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rdx
callq 0x316f0
jmp 0xbea3
movq -0x400(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x6390
movq %rax, -0x428(%rbp)
jmp 0xbebf
movq -0x428(%rbp), %rdi
leaq 0x3573d(%rip), %rsi     # 0x4160a
callq 0x63d0
movq %rax, -0x430(%rbp)
jmp 0xbedb
movq -0x420(%rbp), %rdi
callq 0x66e0
movq -0x430(%rbp), %rdi
movb %al, %cl
leaq 0x35a8b(%rip), %rax     # 0x41982
leaq 0x35a87(%rip), %rsi     # 0x41985
testb %cl, %cl
cmovneq %rax, %rsi
callq 0x63d0
movq %rax, -0x438(%rbp)
jmp 0xbf12
movq -0x420(%rbp), %rsi
movq -0x438(%rbp), %rdi
callq 0x6390
jmp 0xbf27
leaq -0x1c8(%rbp), %rdi
callq 0x6280
leaq -0x1e8(%rbp), %rdi
callq 0x6280
leaq -0x1e9(%rbp), %rdi
callq 0x6460
movq -0x18(%rbp), %rsi
leaq -0x218(%rbp), %rdi
callq 0x30770
jmp 0xbf5d
movq -0x18(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x250(%rbp), %rdi
movq %rdi, -0x440(%rbp)
leaq -0x251(%rbp), %rsi
callq 0x32d30
movq -0x448(%rbp), %rsi
movq -0x440(%rbp), %rdx
leaq -0x230(%rbp), %rdi
callq 0x82e0
jmp 0xbf9e
leaq -0x250(%rbp), %rdi
callq 0x85a0
leaq -0x230(%rbp), %rdi
callq 0x30990
testb $0x1, %al
jne 0xc196
leaq -0x198(%rbp), %rdi
leaq 0x359c1(%rip), %rsi     # 0x4198d
callq 0x63d0
movq %rax, -0x450(%rbp)
jmp 0xbfda
leaq -0x299(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x6770
movq -0x458(%rbp), %rdx
leaq 0x35995(%rip), %rsi     # 0x41990
leaq -0x298(%rbp), %rdi
callq 0x8eb0
jmp 0xc009
movq -0x408(%rbp), %rsi
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rdx
callq 0x316f0
jmp 0xc025
movq -0x450(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x6390
movq %rax, -0x460(%rbp)
jmp 0xc041
movq -0x460(%rbp), %rdi
leaq 0x35949(%rip), %rsi     # 0x41998
callq 0x63d0
jmp 0xc056
leaq -0x278(%rbp), %rdi
callq 0x6280
leaq -0x298(%rbp), %rdi
callq 0x6280
leaq -0x299(%rbp), %rdi
callq 0x6460
jmp 0xc196
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc0d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc0c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x6280
leaq -0x1e8(%rbp), %rdi
callq 0x6280
leaq -0x1e9(%rbp), %rdi
callq 0x6460
jmp 0xc77f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc77f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x85a0
jmp 0xc773
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc767
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc185
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc179
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x6280
leaq -0x298(%rbp), %rdi
callq 0x6280
leaq -0x299(%rbp), %rdi
callq 0x6460
jmp 0xc767
movq -0x18(%rbp), %rax
movq %rax, -0x470(%rbp)
leaq -0x2d8(%rbp), %rdi
movq %rdi, -0x468(%rbp)
leaq -0x2d9(%rbp), %rsi
callq 0x32dc0
movq -0x470(%rbp), %rsi
movq -0x468(%rbp), %rdx
leaq -0x2b8(%rbp), %rdi
callq 0x82e0
jmp 0xc1d7
leaq -0x2d8(%rbp), %rdi
callq 0x85a0
leaq -0x2b8(%rbp), %rdi
callq 0x30990
testb $0x1, %al
jne 0xc448
leaq -0x2b8(%rbp), %rdi
callq 0x31310
movq %rax, -0x480(%rbp)
leaq -0x2f9(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x2b0d0
movq -0x480(%rbp), %rsi
movq -0x478(%rbp), %rdx
leaq -0x2f8(%rbp), %rdi
callq 0x32e50
jmp 0xc239
leaq -0x2f9(%rbp), %rdi
callq 0x11790
leaq -0x2b8(%rbp), %rdi
movq %rdi, -0x490(%rbp)
callq 0x85c0
movq -0x490(%rbp), %rdi
movq %rax, -0x308(%rbp)
callq 0x85f0
movq %rax, -0x310(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x11de0
movq %rax, %rcx
movq -0x408(%rbp), %rax
movq %rcx, -0x318(%rbp)
movq %rax, -0x320(%rbp)
movq -0x308(%rbp), %rdi
movq -0x310(%rbp), %rsi
movq -0x318(%rbp), %rdx
movq -0x320(%rbp), %rcx
callq 0x32ec0
movq %rax, -0x488(%rbp)
jmp 0xc2c0
movq -0x488(%rbp), %rax
movq %rax, -0x328(%rbp)
leaq -0x198(%rbp), %rdi
leaq 0x356a9(%rip), %rsi     # 0x41985
callq 0x63d0
movq %rax, -0x498(%rbp)
jmp 0xc2ea
leaq -0x369(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0x6770
movq -0x4a0(%rbp), %rdx
leaq 0x3567a(%rip), %rsi     # 0x41985
leaq -0x368(%rbp), %rdi
callq 0x8eb0
jmp 0xc319
leaq -0x348(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
leaq -0x368(%rbp), %rdx
callq 0x15ef0
jmp 0xc335
movq -0x498(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x6390
jmp 0xc34a
leaq -0x348(%rbp), %rdi
callq 0x6280
leaq -0x368(%rbp), %rdi
callq 0x6280
leaq -0x369(%rbp), %rdi
callq 0x6460
leaq -0x2f8(%rbp), %rdi
callq 0x8710
jmp 0xc448
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x85a0
jmp 0xc767
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x2f9(%rbp), %rdi
callq 0x11790
jmp 0xc75b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc437
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc42b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc41f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x6280
leaq -0x368(%rbp), %rdi
callq 0x6280
leaq -0x369(%rbp), %rdi
callq 0x6460
leaq -0x2f8(%rbp), %rdi
callq 0x8710
jmp 0xc75b
movq -0x18(%rbp), %rax
movq %rax, -0x4b0(%rbp)
leaq -0x3a8(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x93e0
movq -0x4b0(%rbp), %rsi
movq -0x4a8(%rbp), %rdx
leaq -0x388(%rbp), %rdi
callq 0x9170
jmp 0xc482
leaq -0x388(%rbp), %rdi
callq 0x32f50
xorb $-0x1, %al
movb %al, -0x4b1(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x95f0
leaq -0x3a8(%rbp), %rdi
callq 0x9420
movb -0x4b1(%rbp), %al
testb $0x1, %al
jne 0xc4bd
jmp 0xc6f1
leaq -0x198(%rbp), %rdi
leaq 0x354ba(%rip), %rsi     # 0x41985
callq 0x63d0
movq %rax, -0x4c0(%rbp)
jmp 0xc4d9
movq -0x18(%rbp), %rdi
callq 0x32f90
movq %rax, -0x4c8(%rbp)
jmp 0xc4eb
movq -0x4c0(%rbp), %rdi
movq -0x4c8(%rbp), %rax
testq %rax, %rax
leaq 0x362ff(%rip), %rax     # 0x42802
leaq 0x35478(%rip), %rsi     # 0x41982
cmoveq %rax, %rsi
callq 0x63d0
movq %rax, -0x4d0(%rbp)
jmp 0xc51c
movq -0x18(%rbp), %rdi
callq 0x32fb0
movq %rax, -0x4d8(%rbp)
jmp 0xc52e
movq -0x4d8(%rbp), %rcx
movb $0x1, %al
cmpq $0x2, %rcx
movb %al, -0x4d9(%rbp)
jb 0xc569
movq -0x18(%rbp), %rdi
callq 0x32f90
movq %rax, -0x4e8(%rbp)
jmp 0xc555
movq -0x4e8(%rbp), %rax
cmpq $0x1, %rax
seta %al
movb %al, -0x4d9(%rbp)
movb -0x4d9(%rbp), %dl
leaq 0x35424(%rip), %rcx     # 0x4199a
leaq 0x35428(%rip), %rax     # 0x419a5
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x4f8(%rbp)
leaq -0x3e9(%rbp), %rdi
movq %rdi, -0x4f0(%rbp)
callq 0x6770
movq -0x4f8(%rbp), %rsi
movq -0x4f0(%rbp), %rdx
leaq -0x3e8(%rbp), %rdi
callq 0x8eb0
jmp 0xc5ba
movq -0x408(%rbp), %rsi
leaq -0x3c8(%rbp), %rdi
leaq -0x3e8(%rbp), %rdx
callq 0x316f0
jmp 0xc5d6
movq -0x4d0(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x6390
movq %rax, -0x500(%rbp)
jmp 0xc5f2
movq -0x18(%rbp), %rdi
callq 0x32f90
movq %rax, -0x508(%rbp)
jmp 0xc604
movq -0x500(%rbp), %rdi
movq -0x508(%rbp), %rax
testq %rax, %rax
leaq 0x3537c(%rip), %rax     # 0x41998
leaq 0x3535f(%rip), %rsi     # 0x41982
cmoveq %rax, %rsi
callq 0x63d0
jmp 0xc62e
leaq -0x3c8(%rbp), %rdi
callq 0x6280
leaq -0x3e8(%rbp), %rdi
callq 0x6280
leaq -0x3e9(%rbp), %rdi
callq 0x6460
jmp 0xc6f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x9420
jmp 0xc75b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc75b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc6e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
jmp 0xc6d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1f8(%rbp)
movl %eax, -0x1fc(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x6280
leaq -0x3e8(%rbp), %rdi
callq 0x6280
leaq -0x3e9(%rbp), %rdi
callq 0x6460
jmp 0xc75b
leaq -0x198(%rbp), %rdi
movq 0x51899(%rip), %rsi     # 0x5df98
callq 0x6430
jmp 0xc706
movq -0x418(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x63c0
jmp 0xc71b
leaq -0x2b8(%rbp), %rdi
callq 0x9110
leaq -0x230(%rbp), %rdi
callq 0x9110
leaq -0x218(%rbp), %rdi
callq 0x8710
leaq -0x1a8(%rbp), %rdi
callq 0x6320
movq -0x410(%rbp), %rax
addq $0x510, %rsp            # imm = 0x510
popq %rbp
retq
leaq -0x2b8(%rbp), %rdi
callq 0x9110
leaq -0x230(%rbp), %rdi
callq 0x9110
leaq -0x218(%rbp), %rdi
callq 0x8710
leaq -0x1a8(%rbp), %rdi
callq 0x6320
movq -0x1f8(%rbp), %rdi
callq 0x6750
nopw (%rax,%rax)