// File: /workspace/github_cpp_makefile_star2_O2/xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::makeTestCase(Catch::ITestInvoker*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Catch::NameAndTags const&, Catch::SourceLineInfo const&)
TestCase makeTestCase(  ITestInvoker* _testCase,
                            std::string const& _className,
                            NameAndTags const& nameAndTags,
                            SourceLineInfo const& _lineInfo )
    {
        bool isHidden = false;

        // Parse out tags
        std::vector<std::string> tags;
        std::string desc, tag;
        bool inTag = false;
        for (char c : nameAndTags.tags) {
            if( !inTag ) {
                if( c == '[' )
                    inTag = true;
                else
                    desc += c;
            }
            else {
                if( c == ']' ) {
                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
                    if( ( prop & TestCaseInfo::IsHidden ) != 0 )
                        isHidden = true;
                    else if( prop == TestCaseInfo::None )
                        enforceNotReservedTag( tag, _lineInfo );

                    // Merged hide tags like `[.approvals]` should be added as
                    // `[.][approvals]`. The `[.]` is added at later point, so
                    // we only strip the prefix
                    if (startsWith(tag, '.') && tag.size() > 1) {
                        tag.erase(0, 1);
                    }
                    tags.push_back( tag );
                    tag.clear();
                    inTag = false;
                }
                else
                    tag += c;
            }
        }
        if( isHidden ) {
            // Add all "hidden" tags to make them behave identically
            tags.insert( tags.end(), { ".", "!hide" } );
        }

        TestCaseInfo info( static_cast<std::string>(nameAndTags.name), _className, desc, tags, _lineInfo );
        return TestCase( _testCase, std::move(info) );
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %r8, -0x60(%rbp)
movq %rdx, -0xb0(%rbp)
movq %rsi, -0xa8(%rbp)
movq %rdi, -0xc0(%rbp)
xorps %xmm0, %xmm0
leaq -0xa0(%rbp), %rdx
andq $0x0, 0x10(%rdx)
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movaps %xmm0, (%rdx)
xorl %r12d, %r12d
movb %r12b, (%rax)
leaq -0x70(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %r12b, (%rax)
movq 0x10(%rcx), %r13
movq %rcx, -0xb8(%rbp)
movq 0x18(%rcx), %r14
leaq -0x80(%rbp), %r15
xorl %ebx, %ebx
movq $0x0, -0x38(%rbp)
cmpq %r12, %r14
je 0x317e2
movb (%r13,%r12), %al
movsbl %al, %esi
testb $0x1, %bl
je 0x3173a
cmpb $0x5d, %al
jne 0x31755
movq %r15, %rdi
callq 0x31a08
movb $0x1, %cl
testb $0x2, %al
jne 0x31794
testl %eax, %eax
je 0x31761
movq -0x38(%rbp), %rax
movl %eax, %ecx
jmp 0x31794
movb $0x1, %bl
cmpb $0x5b, %al
je 0x317da
leaq -0xe0(%rbp), %rdi
callq 0x244e0
jmp 0x317d8
movb $0x1, %bl
movq %r15, %rdi
callq 0x244e0
jmp 0x317da
movq %r15, %rdi
callq 0x31a08
testl %eax, %eax
setne %cl
movq -0x78(%rbp), %rax
testq %rax, %rax
sete %dl
orb %cl, %dl
jne 0x3179c
movq -0x80(%rbp), %rax
movzbl (%rax), %edi
callq 0x245c0
movq -0x38(%rbp), %rcx
testl %eax, %eax
je 0x318f4
movq -0x78(%rbp), %rax
movq %rcx, -0x38(%rbp)
testq %rax, %rax
je 0x317bd
cmpq $0x1, %rax
je 0x317bd
movq -0x80(%rbp), %rax
cmpb $0x2e, (%rax)
jne 0x317bd
movq %r15, %rdi
xorl %esi, %esi
pushq $0x1
popq %rdx
callq 0x24110
leaq -0xa0(%rbp), %rdi
movq %r15, %rsi
callq 0x3f2ea
andq $0x0, -0x78(%rbp)
movq -0x80(%rbp), %rax
movb $0x0, (%rax)
xorl %ebx, %ebx
incq %r12
jmp 0x31706
testb $0x1, -0x38(%rbp)
je 0x31853
movq -0x98(%rbp), %rbx
leaq 0x445ce(%rip), %rsi     # 0x75dc4
leaq -0x188(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0x24210
leaq -0x168(%rbp), %rdi
leaq 0x42f13(%rip), %rsi     # 0x74727
leaq -0x29(%rbp), %rdx
callq 0x24210
leaq -0xa0(%rbp), %rdi
leaq -0x188(%rbp), %rdx
pushq $0x2
popq %rcx
movq %rbx, %rsi
callq 0x3f326
pushq $0x20
popq %rbx
leaq (%rbx,%rbp), %rdi
addq $-0x188, %rdi           # imm = 0xFE78
callq 0x24ad8
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x31839
leaq -0x58(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x3d4fc
movq -0xc0(%rbp), %rbx
leaq -0x188(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0xe0(%rbp), %rcx
leaq -0xa0(%rbp), %r8
movq -0xb0(%rbp), %rdx
movq -0x60(%rbp), %r9
callq 0x31b8a
leaq -0x58(%rbp), %rdi
callq 0x24ad8
leaq -0x188(%rbp), %rdx
movq %rbx, %rdi
movq -0xa8(%rbp), %rsi
callq 0x31c86
leaq -0x188(%rbp), %rdi
callq 0x3e1ae
leaq -0x80(%rbp), %rdi
callq 0x24ad8
leaq -0xe0(%rbp), %rdi
callq 0x24ad8
leaq -0xa0(%rbp), %rdi
callq 0x3f34e
movq %rbx, %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x58(%rbp), %rdi
callq 0x30e18
movq -0x48(%rbp), %rdi
leaq 0x44372(%rip), %rsi     # 0x75c7a
callq 0x24570
movq -0x48(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x24510
movq -0x48(%rbp), %rdi
leaq 0x44361(%rip), %rsi     # 0x75c86
callq 0x24570
movq -0x48(%rbp), %rdi
leaq 0x44364(%rip), %rsi     # 0x75c99
callq 0x24570
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x2921b
movq -0x48(%rbp), %rsi
addq $0x8, %rsi
leaq -0x188(%rbp), %rdi
callq 0x24830
leaq -0x188(%rbp), %rdi
callq 0x255ca
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0x24ad8
jmp 0x3197b
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x30e5e
jmp 0x319df
jmp 0x319dc
movq %rax, %rbx
pushq $0x20
popq %r14
leaq (%r14,%rbp), %rdi
addq $-0x188, %rdi           # imm = 0xFE78
callq 0x24ad8
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x3198f
jmp 0x319df
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
jmp 0x319d1
jmp 0x319dc
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0x3e1ae
jmp 0x319df
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x24ad8
jmp 0x319df
jmp 0x319dc
jmp 0x319dc
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x24ad8
leaq -0xe0(%rbp), %rdi
callq 0x24ad8
leaq -0xa0(%rbp), %rdi
callq 0x3f34e
movq %rbx, %rdi
callq 0x24950