// File: /workspace/github_cpp_makefile_star2_O2/meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::App::_process_requirements()
void _process_requirements() {
        for(const Option_p &opt : options_) {

            // Required or partially filled
            if(opt->get_required() || opt->count() != 0) {
                // Make sure enough -N arguments parsed (+N is already handled in parsing function)
                if(opt->get_items_expected() < 0 && opt->count() < static_cast<size_t>(-opt->get_items_expected()))
                    throw ArgumentMismatch::AtLeast(opt->get_name(), -opt->get_items_expected());

                // Required but empty
                if(opt->get_required() && opt->count() == 0)
                    throw RequiredError(opt->get_name());
            }
            // Requires
            for(const Option *opt_req : opt->needs_)
                if(opt->count() > 0 && opt_req->count() == 0)
                    throw RequiresError(opt->get_name(), opt_req->get_name());
            // Excludes
            for(const Option *opt_ex : opt->excludes_)
                if(opt->count() > 0 && opt_ex->count() != 0)
                    throw ExcludesError(opt->get_name(), opt_ex->get_name());
        }

        auto selected_subcommands = get_subcommands();
        if(require_subcommand_min_ > selected_subcommands.size())
            throw RequiredError::Subcommand(require_subcommand_min_);

        // Max error cannot occur, the extra subcommand will parse as an ExtrasError or a remaining item.

        for(App_p &sub : subcommands_) {
            if(sub->count() > 0)
                sub->_process_requirements();
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
movq 0x98(%rdi), %r12
movq 0xa0(%rdi), %r13
cmpq %r13, %r12
je 0x118fc
movq (%r12), %r14
cmpb $0x0, 0x20(%r14)
jne 0x11816
movq 0x1b0(%r14), %rax
cmpq 0x1a8(%r14), %rax
je 0x11869
movq %r14, %rdi
callq 0x6880
testl %eax, %eax
jns 0x1184a
movq (%r12), %rdi
movq 0x1b0(%rdi), %r14
subq 0x1a8(%rdi), %r14
sarq $0x5, %r14
callq 0x6880
negl %eax
cltq
cmpq %rax, %r14
jb 0x11a7b
movq (%r12), %r14
cmpb $0x1, 0x20(%r14)
jne 0x11869
movq 0x1b0(%r14), %rax
cmpq 0x1a8(%r14), %rax
je 0x11a2b
movq 0x138(%r14), %rax
leaq 0x128(%r14), %rbp
cmpq %rbp, %rax
je 0x118ae
movq 0x1b0(%r14), %rcx
cmpq 0x1a8(%r14), %rcx
je 0x118a4
movq 0x20(%rax), %r15
movq 0x1b0(%r15), %rcx
cmpq 0x1a8(%r15), %rcx
je 0x1196b
movq %rax, %rdi
callq 0x5330
jmp 0x11877
movq 0x168(%r14), %rax
leaq 0x158(%r14), %rbp
cmpq %rbp, %rax
je 0x118f3
movq 0x1b0(%r14), %rcx
cmpq 0x1a8(%r14), %rcx
je 0x118e9
movq 0x20(%rax), %r15
movq 0x1b0(%r15), %rcx
cmpq 0x1a8(%r15), %rcx
jne 0x119cb
movq %rax, %rdi
callq 0x5330
jmp 0x118bc
addq $0x8, %r12
jmp 0x117f2
leaq 0x140(%rbx), %rsi
movq %rsp, %r14
movq %r14, %rdi
callq 0x13fc2
movq 0x8(%r14), %rax
subq (%r14), %rax
sarq $0x3, %rax
cmpq %rax, 0x188(%rbx)
ja 0x11ad5
movq 0x158(%rbx), %r14
movq 0x160(%rbx), %rbx
cmpq %rbx, %r14
je 0x11951
movq (%r14), %rdi
cmpq $0x0, 0x180(%rdi)
je 0x1194b
callq 0x117d0
addq $0x8, %r14
jmp 0x11934
movq %rsp, %rdi
callq 0xe91c
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x38
popq %rdi
callq 0x51a0
movq %rax, %r14
movq (%r12), %rsi
leaq 0x78(%rsp), %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
leaq 0x58(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
movb $0x1, %bpl
leaq 0x78(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movq %r14, %rdi
callq 0x13c62
xorl %ebp, %ebp
leaq 0x16019(%rip), %rsi     # 0x279d0
leaq 0x2848(%rip), %rdx      # 0x14206
movq %r14, %rdi
callq 0x54e0
jmp 0x11b05
pushq $0x38
popq %rdi
callq 0x51a0
movq %rax, %r14
movq (%r12), %rsi
leaq 0x38(%rsp), %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
leaq 0x18(%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
movb $0x1, %bpl
leaq 0x38(%rsp), %rsi
leaq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x13ce0
xorl %ebp, %ebp
leaq 0x15fd1(%rip), %rsi     # 0x279e8
leaq 0x27e8(%rip), %rdx      # 0x14206
movq %r14, %rdi
callq 0x54e0
jmp 0x11b05
pushq $0x38
popq %rdi
callq 0x51a0
movq %rax, %r14
movq (%r12), %rsi
leaq 0x98(%rsp), %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
movb $0x1, %bpl
leaq 0x98(%rsp), %rsi
movq %r14, %rdi
callq 0x13c0e
xorl %ebp, %ebp
leaq 0x15f51(%rip), %rsi     # 0x279b8
leaq 0x2798(%rip), %rdx      # 0x14206
movq %r14, %rdi
callq 0x54e0
jmp 0x11b05
pushq $0x38
popq %rdi
callq 0x51a0
movq %rax, %r14
movq (%r12), %rsi
leaq 0xb8(%rsp), %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0xa9b8
movq (%r12), %rdi
callq 0x6880
negl %eax
movb $0x1, %bpl
leaq 0xb8(%rsp), %rsi
movq %r14, %rdi
movl %eax, %edx
callq 0x13b34
xorl %ebp, %ebp
leaq 0x15cf4(%rip), %rsi     # 0x277b8
leaq 0x273b(%rip), %rdx      # 0x14206
movq %r14, %rdi
callq 0x54e0
jmp 0x11b05
pushq $0x38
popq %rdi
callq 0x51a0
movq %rax, %r14
movq 0x188(%rbx), %rsi
movq %rax, %rdi
callq 0x13d5e
leaq 0x15ec2(%rip), %rsi     # 0x279b8
leaq 0x2709(%rip), %rdx      # 0x14206
movq %r14, %rdi
callq 0x54e0
jmp 0x11b32
movq %rax, %rbx
movq %r14, %rdi
callq 0x5240
jmp 0x11b35
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
jmp 0x11b75
jmp 0x11b83
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
jmp 0x11b75
jmp 0x11b83
movq %rax, %rbx
movq %rsp, %rdi
callq 0xe91c
jmp 0x11b8e
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x5180
jmp 0x11b54
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x38(%rsp), %rdi
jmp 0x11b75
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x5180
jmp 0x11b70
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x78(%rsp), %rdi
callq 0x5180
testb %bpl, %bpl
jne 0x11b86
jmp 0x11b8e
jmp 0x11b83
movq %rax, %rbx
movq %r14, %rdi
callq 0x5240
movq %rbx, %rdi
callq 0x5510