// File: yeonnic[P]solparser/././argx.hpp
// 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
movq %rsp, %rbp
subq $0x3b0, %rsp            # imm = 0x3B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x390(%rbp)
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0xa381
jmp 0xa68d
movq -0x390(%rbp), %rdi
callq 0xdc60
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xdc80
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
callq 0xdcb0
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xdce0
testb $0x1, %al
jne 0xa3c1
jmp 0xa516
leaq -0x28(%rbp), %rdi
callq 0xdd20
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x30(%rax)
testb $0x1, %al
jne 0xa3e4
jmp 0xa4f6
movq -0x38(%rbp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
testb $0x1, %al
jne 0xa4f6
leaq -0x1b0(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x64b0
movq -0x398(%rbp), %rdi
leaq 0x2cde8(%rip), %rsi     # 0x371ff
callq 0x6320
jmp 0xa41e
movb $0x1, -0x1e1(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x3a0(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x6340
jmp 0xa44b
movq -0x3a0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x158e0
jmp 0xa460
movq -0x3a0(%rbp), %rdi
movb $0x0, -0x1e1(%rbp)
leaq 0x41f63(%rip), %rsi     # 0x4c3d8
leaq -0x180c(%rip), %rdx     # 0x8c70
callq 0x65e0
jmp 0xa6a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa4e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa4cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x61f0
testb $0x1, -0x1e1(%rbp)
jne 0xa4d7
jmp 0xa4e3
movq -0x3a0(%rbp), %rdi
callq 0x6270
jmp 0xa4e5
leaq -0x1b0(%rbp), %rdi
callq 0x60b0
jmp 0xa696
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x18(%rax)
leaq -0x28(%rbp), %rdi
callq 0xdd40
jmp 0xa3ab
movq -0x390(%rbp), %rax
cmpq $0x0, 0x170(%rax)
je 0xa543
movq -0x390(%rbp), %rax
movq 0x170(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x18(%rax)
movq -0x390(%rbp), %rax
cmpq $0x0, 0x130(%rax)
jne 0xa68d
movq -0x390(%rbp), %rax
testb $0x1, 0x128(%rax)
je 0xa68d
movq -0x390(%rbp), %rdi
callq 0xc380
testb $0x1, %al
jne 0xa590
movq -0x390(%rbp), %rax
testb $0x1, 0x16a(%rax)
je 0xa68d
leaq -0x360(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x64b0
movq -0x3a8(%rbp), %rdi
leaq 0x2cc71(%rip), %rsi     # 0x37222
callq 0x6320
jmp 0xa5b8
movb $0x1, -0x381(%rbp)
movl $0x10, %edi
callq 0x61a0
movq %rax, -0x3b0(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x6340
jmp 0xa5e5
movq -0x3b0(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x158e0
jmp 0xa5fa
movq -0x3b0(%rbp), %rdi
movb $0x0, -0x381(%rbp)
leaq 0x41dc9(%rip), %rsi     # 0x4c3d8
leaq -0x19a6(%rip), %rdx     # 0x8c70
callq 0x65e0
jmp 0xa6a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa67f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
jmp 0xa666
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x61f0
testb $0x1, -0x381(%rbp)
jne 0xa671
jmp 0xa67d
movq -0x3b0(%rbp), %rdi
callq 0x6270
jmp 0xa67f
leaq -0x360(%rbp), %rdi
callq 0x60b0
jmp 0xa696
addq $0x3b0, %rsp            # imm = 0x3B0
popq %rbp
retq
movq -0x1b8(%rbp), %rdi
callq 0x6620
nopw %cs:(%rax,%rax)
nopl (%rax)