// File: /workspace/github_cpp_makefile_star2_O2/BU-DiSC[P]BF-Shared-Hashing/./args.hxx
// Function: args::Command::Validate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) const
virtual void Validate(const std::string &shortprefix, const std::string &longprefix) const override
            {
                if (!Matched())
                {
                    return;
                }

                for (Base *child: Children())
                {
                    if (child->IsGroup() && !child->Matched())
                    {
                        std::ostringstream problem;
                        problem << "Group validation failed somewhere!";
#ifdef ARGS_NOEXCEPT
                        error = Error::Validation;
                        errorMsg = problem.str();
#else
                        throw ValidationError(problem.str());
#endif
                    }

                    child->Validate(shortprefix, longprefix);
                }

                if (subparser != nullptr)
                {
                    subparser->Validate(shortprefix, longprefix);
                }

                if (selectedCommand == nullptr && commandIsRequired && (Group::HasCommand() || subparserHasCommand))
                {
                    std::ostringstream problem;
                    problem << "Command is required";
#ifdef ARGS_NOEXCEPT
                    error = Error::Validation;
                    errorMsg = problem.str();
#else
                    throw ValidationError(problem.str());
#endif
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq (%rdi), %rax
callq *0x10(%rax)
testb %al, %al
je 0x125bb
movq 0x30(%rbx), %r13
movq 0x38(%rbx), %rbp
cmpq %rbp, %r13
je 0x1257b
movq (%r13), %r12
movq (%r12), %rax
movq %r12, %rdi
callq *0x30(%rax)
testb %al, %al
je 0x12565
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x125cd
movq (%r12), %rax
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq *0x18(%rax)
addq $0x8, %r13
jmp 0x12540
movq 0x170(%rbx), %rdi
testq %rdi, %rdi
je 0x12593
movq (%rdi), %rax
movq %r15, %rsi
movq %r14, %rdx
callq *0x18(%rax)
cmpq $0x0, 0x130(%rbx)
jne 0x125bb
cmpb $0x1, 0x128(%rbx)
jne 0x125bb
movq %rbx, %rdi
callq 0x131e2
testb %al, %al
jne 0x12629
cmpb $0x1, 0x16a(%rbx)
je 0x12629
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x6560
leaq 0x107d8(%rip), %rsi     # 0x22db9
movq %rbx, %rdi
callq 0x6410
pushq $0x10
popq %rdi
callq 0x6220
movq %rax, %r14
leaq 0x28(%rsp), %rsi
movq %rsp, %rdi
callq 0x6610
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x14656
xorl %ebp, %ebp
leaq 0x21da0(%rip), %rsi     # 0x343b8
movq 0x229a1(%rip), %rdx     # 0x34fc0
movq %r14, %rdi
callq 0x6680
jmp 0x12683
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x6560
leaq 0x1079f(%rip), %rsi     # 0x22ddc
movq %rbx, %rdi
callq 0x6410
pushq $0x10
popq %rdi
callq 0x6220
movq %rax, %r14
leaq 0x28(%rsp), %rsi
movq %rsp, %rdi
callq 0x6610
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x14656
xorl %ebp, %ebp
leaq 0x21d44(%rip), %rsi     # 0x343b8
movq 0x22945(%rip), %rdx     # 0x34fc0
movq %r14, %rdi
callq 0x6680
jmp 0x12689
jmp 0x1269b
jmp 0x126a8
movq %rax, %rbx
movq %rsp, %rdi
callq 0x61f0
testb %bpl, %bpl
jne 0x1269e
jmp 0x126ab
movq %rax, %rbx
movq %r14, %rdi
callq 0x62f0
jmp 0x126ab
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x6100
movq %rbx, %rdi
callq 0x66b0
nop