// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::App::get_subcommands(std::function<bool (CLI::App const*)> const&) const
std::vector<const App *> get_subcommands(const std::function<bool(const App *)> &filter) const {
        std::vector<const App *> subcomms(subcommands_.size());
        std::transform(std::begin(subcommands_), std::end(subcommands_), std::begin(subcomms), [](const App_p &v) {
            return v.get();
        });

        if(filter) {
            subcomms.erase(std::remove_if(std::begin(subcomms),
                                          std::end(subcomms),
                                          [&filter](const App *app) { return !filter(app); }),
                           std::end(subcomms));
        }

        return subcomms;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0xb0(%rbp)
movq %rdi, %rax
movq %rax, -0xc0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
movb $0x0, -0x19(%rbp)
addq $0x158, %rdi            # imm = 0x158
callq 0x126e0
movq %rax, -0xa8(%rbp)
leaq -0x1a(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x12700
movq -0xb0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rdx
callq 0x12720
jmp 0x91e6
leaq -0x1a(%rbp), %rdi
callq 0x12790
movq -0xb8(%rbp), %rdi
addq $0x158, %rdi            # imm = 0x158
callq 0x12830
movq %rax, -0xc8(%rbp)
jmp 0x920b
movq -0xb8(%rbp), %rdi
movq -0xc8(%rbp), %rax
movq %rax, -0x38(%rbp)
addq $0x158, %rdi            # imm = 0x158
callq 0x12860
movq %rax, -0xd0(%rbp)
jmp 0x9232
movq -0xb0(%rbp), %rdi
movq -0xd0(%rbp), %rax
movq %rax, -0x40(%rbp)
callq 0x12890
movq %rax, -0xd8(%rbp)
jmp 0x9252
movq -0xd8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x127b0
movq %rax, -0xe0(%rbp)
jmp 0x9277
movq -0xe0(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rdi
callq 0x128c0
testb $0x1, %al
jne 0x9294
jmp 0x93a5
movq -0xb0(%rbp), %rdi
callq 0x12890
movq %rax, -0xe8(%rbp)
jmp 0x92a9
movq -0xb0(%rbp), %rdi
movq -0xe8(%rbp), %rax
movq %rax, -0x70(%rbp)
callq 0x129d0
movq %rax, -0xf0(%rbp)
jmp 0x92c9
movq -0xf0(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x70(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x12970
movq %rax, -0xf8(%rbp)
jmp 0x92f6
movq -0xf8(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x12a00
movq -0xb0(%rbp), %rdi
callq 0x129d0
movq %rax, -0x100(%rbp)
jmp 0x9323
movq -0x100(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq -0x88(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x12a00
movq -0xb0(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x88(%rbp), %rdx
callq 0x128e0
movq %rax, -0x108(%rbp)
jmp 0x9364
movq -0x108(%rbp), %rax
movq %rax, -0x98(%rbp)
jmp 0x93a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1a(%rbp), %rdi
callq 0x12790
jmp 0x93cb
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x95f0
jmp 0x93cb
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x93bb
movq -0xb0(%rbp), %rdi
callq 0x95f0
movq -0xc0(%rbp), %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x6750
nopw %cs:(%rax,%rax)
nop