// File: xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::clara::detail::Opt::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Catch::clara::detail::TokenStream const&) const
auto parse( std::string const&, TokenStream const &tokens ) const -> InternalParseResult override {
            auto validationResult = validate();
            if( !validationResult )
                return InternalParseResult( validationResult );

            auto remainingTokens = tokens;
            if( remainingTokens && remainingTokens->type == TokenType::Option ) {
                auto const &token = *remainingTokens;
                if( isMatch(token.token ) ) {
                    if( m_ref->isFlag() ) {
                        auto flagRef = static_cast<detail::BoundFlagRefBase*>( m_ref.get() );
                        auto result = flagRef->setFlag( true );
                        if( !result )
                            return InternalParseResult( result );
                        if( result.value() == ParseResultType::ShortCircuitAll )
                            return InternalParseResult::ok( ParseState( result.value(), remainingTokens ) );
                    } else {
                        auto valueRef = static_cast<detail::BoundValueRefBase*>( m_ref.get() );
                        ++remainingTokens;
                        if( !remainingTokens )
                            return InternalParseResult::runtimeError( "Expected argument following " + token.token );
                        auto const &argToken = *remainingTokens;
                        if( argToken.type != TokenType::Argument )
                            return InternalParseResult::runtimeError( "Expected argument following " + token.token );
                        auto result = valueRef->setValue( argToken.token );
                        if( !result )
                            return InternalParseResult( result );
                        if( result.value() == ParseResultType::ShortCircuitAll )
                            return InternalParseResult::ok( ParseState( result.value(), remainingTokens ) );
                    }
                    return InternalParseResult::ok( ParseState( ParseResultType::Matched, ++remainingTokens ) );
                }
            }
            return InternalParseResult::ok( ParseState( ParseResultType::NoMatch, remainingTokens ) );
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2d0, %rsp            # imm = 0x2D0
movq %rdi, -0x280(%rbp)
movq %rdi, %rax
movq %rax, -0x278(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0x270(%rbp)
movq (%rsi), %rax
movq 0x10(%rax), %rax
leaq -0x50(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq *%rax
movq -0x268(%rbp), %rdi
callq 0x9c770
movb %al, -0x259(%rbp)
jmp 0x9b04f
movb -0x259(%rbp), %al
testb $0x1, %al
jne 0x9b08a
jmp 0x9b05b
movq -0x280(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9c790
jmp 0x9b06d
movl $0x1, -0x60(%rbp)
jmp 0x9b6a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b6c0
movq -0x20(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x991c0
jmp 0x9b09c
leaq -0x88(%rbp), %rdi
callq 0x9c860
movb %al, -0x281(%rbp)
jmp 0x9b0b0
movb -0x281(%rbp), %al
testb $0x1, %al
jne 0x9b0bf
jmp 0x9b62d
leaq -0x88(%rbp), %rdi
callq 0x9c8b0
movq %rax, -0x290(%rbp)
jmp 0x9b0d4
movq -0x290(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x9b62d
leaq -0xb8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x9c910
jmp 0x9b0f9
movq -0x270(%rbp), %rdi
leaq -0xb8(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rsi
addq $0x8, %rsi
callq 0x9c990
movb %al, -0x291(%rbp)
jmp 0x9b126
movb -0x291(%rbp), %al
testb $0x1, %al
jne 0x9b135
jmp 0x9b601
movq -0x270(%rbp), %rdi
addq $0x10, %rdi
callq 0x9cab0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movb %al, -0x292(%rbp)
jmp 0x9b159
movb -0x292(%rbp), %al
testb $0x1, %al
jne 0x9b168
jmp 0x9b2df
movq -0x270(%rbp), %rdi
addq $0x10, %rdi
callq 0x9cad0
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rsi
movq (%rsi), %rax
movq 0x20(%rax), %rax
leaq -0xf0(%rbp), %rdi
movl $0x1, %edx
callq *%rax
jmp 0x9b19d
leaq -0xf0(%rbp), %rdi
callq 0x9caf0
movb %al, -0x293(%rbp)
jmp 0x9b1b1
movb -0x293(%rbp), %al
testb $0x1, %al
jne 0x9b211
jmp 0x9b1bd
movq -0x280(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x9cb10
jmp 0x9b1d2
movl $0x1, -0x60(%rbp)
jmp 0x9b2b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b699
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b61f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b2ce
leaq -0xf0(%rbp), %rdi
callq 0x9cbc0
movq %rax, -0x2a0(%rbp)
jmp 0x9b226
movq -0x2a0(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x9b2a9
leaq -0xf0(%rbp), %rdi
callq 0x9cbc0
movq %rax, -0x2a8(%rbp)
jmp 0x9b247
movq -0x2a8(%rbp), %rax
movl (%rax), %esi
leaq -0x120(%rbp), %rdi
leaq -0x88(%rbp), %rdx
callq 0x98f60
jmp 0x9b265
movq -0x280(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x98f30
jmp 0x9b27a
leaq -0x120(%rbp), %rdi
callq 0x98f90
movl $0x1, -0x60(%rbp)
jmp 0x9b2b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x98f90
jmp 0x9b2ce
movl $0x0, -0x60(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x9a630
movl -0x60(%rbp), %eax
testl %eax, %eax
jne 0x9b608
jmp 0x9b2c9
jmp 0x9b591
leaq -0xf0(%rbp), %rdi
callq 0x9a630
jmp 0x9b61f
movq -0x270(%rbp), %rdi
addq $0x10, %rdi
callq 0x9cad0
movq %rax, -0x128(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x9cbf0
jmp 0x9b304
leaq -0x88(%rbp), %rdi
callq 0x9c860
movb %al, -0x2a9(%rbp)
jmp 0x9b318
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0x9b38e
jmp 0x9b324
movq -0x90(%rbp), %rdx
addq $0x8, %rdx
leaq 0xa500d(%rip), %rsi     # 0x140343
leaq -0x148(%rbp), %rdi
callq 0x8e240
jmp 0x9b344
movq -0x280(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x9cc90
jmp 0x9b359
leaq -0x148(%rbp), %rdi
callq 0x52e58
movl $0x1, -0x60(%rbp)
jmp 0x9b608
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x52e58
jmp 0x9b61f
leaq -0x178(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x9c910
jmp 0x9b3a3
leaq -0x178(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rax
cmpl $0x1, (%rax)
je 0x9b438
movq -0x90(%rbp), %rdx
addq $0x8, %rdx
leaq 0xa4f74(%rip), %rsi     # 0x140343
leaq -0x198(%rbp), %rdi
callq 0x8e240
jmp 0x9b3dd
movq -0x280(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x9cc90
jmp 0x9b3f2
leaq -0x198(%rbp), %rdi
callq 0x52e58
movl $0x1, -0x60(%rbp)
jmp 0x9b559
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b580
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x52e58
jmp 0x9b580
movq -0x128(%rbp), %rsi
movq -0x150(%rbp), %rdx
addq $0x8, %rdx
movq (%rsi), %rax
movq 0x20(%rax), %rax
leaq -0x1c8(%rbp), %rdi
callq *%rax
jmp 0x9b45c
leaq -0x1c8(%rbp), %rdi
callq 0x9caf0
movb %al, -0x2aa(%rbp)
jmp 0x9b470
movb -0x2aa(%rbp), %al
testb $0x1, %al
jne 0x9b4ae
jmp 0x9b47c
movq -0x280(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x9cb10
jmp 0x9b491
movl $0x1, -0x60(%rbp)
jmp 0x9b54d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x9b574
leaq -0x1c8(%rbp), %rdi
callq 0x9cbc0
movq %rax, -0x2b8(%rbp)
jmp 0x9b4c3
movq -0x2b8(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x9b546
leaq -0x1c8(%rbp), %rdi
callq 0x9cbc0
movq %rax, -0x2c0(%rbp)
jmp 0x9b4e4
movq -0x2c0(%rbp), %rax
movl (%rax), %esi
leaq -0x1f8(%rbp), %rdi
leaq -0x88(%rbp), %rdx
callq 0x98f60
jmp 0x9b502
movq -0x280(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x98f30
jmp 0x9b517
leaq -0x1f8(%rbp), %rdi
callq 0x98f90
movl $0x1, -0x60(%rbp)
jmp 0x9b54d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x98f90
jmp 0x9b574
movl $0x0, -0x60(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x9a630
leaq -0x178(%rbp), %rdi
callq 0x999d0
movl -0x60(%rbp), %eax
testl %eax, %eax
jne 0x9b608
jmp 0x9b572
jmp 0x9b591
leaq -0x1c8(%rbp), %rdi
callq 0x9a630
leaq -0x178(%rbp), %rdi
callq 0x999d0
jmp 0x9b61f
leaq -0x88(%rbp), %rdi
callq 0x9cbf0
movq %rax, -0x2c8(%rbp)
jmp 0x9b5a6
movq -0x2c8(%rbp), %rdx
leaq -0x228(%rbp), %rdi
xorl %esi, %esi
callq 0x98f60
jmp 0x9b5bd
movq -0x280(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x98f30
jmp 0x9b5d2
leaq -0x228(%rbp), %rdi
callq 0x98f90
movl $0x1, -0x60(%rbp)
jmp 0x9b608
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x98f90
jmp 0x9b61f
movl $0x0, -0x60(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x999d0
movl -0x60(%rbp), %eax
testl %eax, %eax
jne 0x9b68b
jmp 0x9b61d
jmp 0x9b62d
leaq -0xb8(%rbp), %rdi
callq 0x999d0
jmp 0x9b699
leaq -0x258(%rbp), %rdi
movl $0x1, %esi
leaq -0x88(%rbp), %rdx
callq 0x98f60
jmp 0x9b647
movq -0x280(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x98f30
jmp 0x9b65c
leaq -0x258(%rbp), %rdi
callq 0x98f90
movl $0x1, -0x60(%rbp)
jmp 0x9b68b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x98f90
jmp 0x9b699
leaq -0x88(%rbp), %rdi
callq 0x99ab0
jmp 0x9b6a7
leaq -0x88(%rbp), %rdi
callq 0x99ab0
jmp 0x9b6c0
leaq -0x50(%rbp), %rdi
callq 0x98dc0
movq -0x278(%rbp), %rax
addq $0x2d0, %rsp            # imm = 0x2D0
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x98dc0
movq -0x58(%rbp), %rdi
callq 0x52c90
nopw %cs:(%rax,%rax)
nopl (%rax)