// File: /workspace/github_cpp_makefile_star2_O3/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 0x160da
movq 0x30(%rbx), %r13
movq 0x38(%rbx), %rbp
cmpq %rbp, %r13
je 0x1608d
movq (%r13), %r12
movq (%r12), %rax
movq %r12, %rdi
callq *0x30(%rax)
testb %al, %al
je 0x16077
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
testb %al, %al
je 0x160ec
movq (%r12), %rax
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq *0x18(%rax)
addq $0x8, %r13
jmp 0x16052
movq 0x170(%rbx), %rdi
testq %rdi, %rdi
je 0x160a5
movq (%rdi), %rax
movq %r15, %rsi
movq %r14, %rdx
callq *0x18(%rax)
cmpq $0x0, 0x130(%rbx)
jne 0x160da
cmpb $0x1, 0x128(%rbx)
jne 0x160da
movq 0x30(%rbx), %rdi
movq 0x38(%rbx), %r14
movq %r14, %rsi
callq 0x18195
cmpq %r14, %rax
jne 0x16159
cmpb $0x1, 0x16a(%rbx)
je 0x16159
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 0x5540
leaq 0x13cc9(%rip), %rsi     # 0x29dc9
movl $0x22, %edx
movq %rbx, %rdi
callq 0x5470
movl $0x10, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x28(%rsp), %rsi
movq %rsp, %rdi
callq 0x5610
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x54d0
leaq 0x2262c(%rip), %rax     # 0x38768
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x22340(%rip), %rsi     # 0x38488
movq 0x22e79(%rip), %rdx     # 0x38fc8
movq %r14, %rdi
callq 0x5670
jmp 0x161c4
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x5540
leaq 0x13c7f(%rip), %rsi     # 0x29dec
movl $0x13, %edx
movq %rbx, %rdi
callq 0x5470
movl $0x10, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x28(%rsp), %rsi
movq %rsp, %rdi
callq 0x5610
movb $0x1, %bpl
movq %rsp, %rsi
movq %r14, %rdi
callq 0x54d0
leaq 0x225bf(%rip), %rax     # 0x38768
movq %rax, (%r14)
xorl %ebp, %ebp
leaq 0x222d3(%rip), %rsi     # 0x38488
movq 0x22e0c(%rip), %rdx     # 0x38fc8
movq %r14, %rdi
callq 0x5670
jmp 0x161ca
jmp 0x161e7
jmp 0x161f4
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x161e0
callq 0x53d0
testb %bpl, %bpl
jne 0x161ea
jmp 0x161f7
movq %rax, %rbx
movq %r14, %rdi
callq 0x52e0
jmp 0x161f7
movq %rax, %rbx
movq 0x22dc2(%rip), %rsi     # 0x38fc0
leaq 0x20(%rsp), %rdi
callq 0x5220
leaq 0x90(%rsp), %rdi
callq 0x5160
movq %rbx, %rdi
callq 0x56b0
nop