// File: /workspace/github_cpp_makefile_star2_O3/xelia-it[P]mustache/third-party/catch2/single_include/catch2/catch.hpp
// Function: Catch::RunContext::runTest(Catch::TestCase const&)
Totals RunContext::runTest(TestCase const& testCase) {
        Totals prevTotals = m_totals;

        std::string redirectedCout;
        std::string redirectedCerr;

        auto const& testInfo = testCase.getTestCaseInfo();

        m_reporter->testCaseStarting(testInfo);

        m_activeTestCase = &testCase;

        ITracker& rootTracker = m_trackerContext.startRun();
        assert(rootTracker.isSectionTracker());
        static_cast<SectionTracker&>(rootTracker).addInitialFilters(m_config->getSectionsToRun());
        do {
            m_trackerContext.startCycle();
            m_testCaseTracker = &SectionTracker::acquire(m_trackerContext, TestCaseTracking::NameAndLocation(testInfo.name, testInfo.lineInfo));
            runCurrentTest(redirectedCout, redirectedCerr);
        } while (!m_testCaseTracker->isSuccessfullyCompleted() && !aborting());

        Totals deltaTotals = m_totals.delta(prevTotals);
        if (testInfo.expectedToFail() && deltaTotals.testCases.passed > 0) {
            deltaTotals.assertions.failed++;
            deltaTotals.testCases.passed--;
            deltaTotals.testCases.failed++;
        }
        m_totals.testCases += deltaTotals.testCases;
        m_reporter->testCaseEnded(TestCaseStats(testInfo,
                                  deltaTotals,
                                  redirectedCout,
                                  redirectedCerr,
                                  aborting()));

        m_activeTestCase = nullptr;
        m_testCaseTracker = nullptr;

        return deltaTotals;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0xf8(%rsi), %rax
movq %rax, -0x50(%rbp)
movq 0x100(%rsi), %rax
movq %rax, -0x60(%rbp)
movq 0x108(%rsi), %rax
movq %rax, -0x58(%rbp)
movq 0x110(%rsi), %rax
movq %rax, -0x68(%rbp)
movq 0x118(%rsi), %r13
movq 0x120(%rsi), %r12
leaq -0xa0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x80(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq 0x128(%rsi), %rdi
movq (%rdi), %rax
movq %rdx, %rsi
callq *0x38(%rax)
movq %rbx, -0x48(%rbp)
movq %r14, 0x38(%r15)
leaq 0x1c8(%r15), %rdi
movq %rdi, -0x70(%rbp)
callq 0x29920
movq %rax, %rbx
movq (%rax), %rax
movq %rbx, %rdi
callq *0x70(%rax)
testb %al, %al
je 0x29892
movq 0xe0(%r15), %rdi
movq (%rdi), %rax
callq *0x98(%rax)
movq %rbx, %rdi
movq %rax, %rsi
callq 0x29a40
movq %r13, -0x38(%rbp)
movq %r12, -0x40(%rbp)
leaq 0x38(%r15), %rax
movq %rax, -0x30(%rbp)
movq %r14, %r12
leaq 0x90(%r14), %r13
leaq -0x1e0(%rbp), %rbx
movq 0x1c8(%r15), %rax
movq %rax, 0x1d8(%r15)
movl $0x1, 0x1e0(%r15)
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x2f400
movq -0x70(%rbp), %rdi
movq %rbx, %rsi
callq 0x29ad2
movq %rax, 0x40(%r15)
movq -0x1e0(%rbp), %rdi
leaq -0x1d0(%rbp), %rax
cmpq %rax, %rdi
je 0x296c1
callq 0x1b4d0
movq %r15, %rdi
leaq -0xb0(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0x29c6e
movq 0x40(%r15), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
testb %al, %al
jne 0x29704
movq 0xe0(%r15), %rdi
movq 0x100(%r15), %r14
movq (%rdi), %rax
callq *0x48(%rax)
cltq
cmpq %rax, %r14
jb 0x29672
movq -0x48(%rbp), %r13
movl $0x0, (%r13)
movq 0xf8(%r15), %rax
subq -0x50(%rbp), %rax
movq 0x100(%r15), %r14
movq 0x108(%r15), %rcx
xorl %edi, %edi
subq -0x58(%rbp), %rcx
setne %dil
shll $0x4, %edi
orq $0x20, %rdi
movq %r14, %rsi
subq -0x60(%rbp), %rsi
movq %rax, 0x8(%r13)
movq %rsi, 0x10(%r13)
movq %rcx, 0x18(%r13)
movq 0x110(%r15), %rdx
movq 0x118(%r15), %rcx
movq 0x120(%r15), %rax
movl $0x28, %r8d
cmoveq %rdi, %r8
movq %rdx, %rdi
subq -0x68(%rbp), %rdi
movq %rcx, %r9
subq -0x38(%rbp), %r9
movq %rax, %r10
subq -0x40(%rbp), %r10
movq %rdi, 0x20(%r13)
movq %r9, 0x28(%r13)
movq %r10, 0x30(%r13)
incq (%r13,%r8)
movb 0xa0(%r12), %r9b
shrb $0x2, %r9b
movq 0x20(%r13), %r8
movq 0x28(%r13), %rdi
testq %r8, %r8
setne %r10b
andb %r9b, %r10b
cmpb $0x1, %r10b
jne 0x297cb
incq %rsi
movq %rsi, 0x10(%r13)
decq %r8
movq %r8, 0x20(%r13)
incq %rdi
movq %rdi, 0x28(%r13)
addq %r8, %rdx
movq %rdx, 0x110(%r15)
addq %rdi, %rcx
movq %rcx, 0x118(%r15)
addq 0x30(%r13), %rax
movq %rax, 0x120(%r15)
movq 0x128(%r15), %rbx
movq 0xe0(%r15), %rdi
movq (%rdi), %rax
callq *0x48(%rax)
cltq
xorl %r9d, %r9d
cmpq %rax, %r14
setae %r9b
leaq -0x1e0(%rbp), %rdi
leaq -0xb0(%rbp), %rcx
leaq -0x90(%rbp), %r8
movq %r12, %rsi
movq %r13, %rdx
callq 0x24e16
movq (%rbx), %rax
leaq -0x1e0(%rbp), %rsi
movq %rbx, %rdi
callq *0x60(%rax)
leaq -0x1e0(%rbp), %rdi
callq 0x24f12
xorps %xmm0, %xmm0
movq -0x30(%rbp), %rax
movups %xmm0, (%rax)
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
leaq -0xa0(%rbp), %rbx
je 0x2986c
callq 0x1b4d0
movq -0xb0(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2987d
callq 0x1b4d0
movq %r13, %rax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x51b75(%rip), %rdi     # 0x7b40e
leaq 0x51635(%rip), %rsi     # 0x7aed5
leaq 0x51b86(%rip), %rcx     # 0x7b42d
movl $0x31d2, %edx           # imm = 0x31D2
callq 0x1b320
movq %rax, %rbx
leaq -0x1e0(%rbp), %rdi
callq 0x24f12
jmp 0x298ea
jmp 0x298e7
jmp 0x298e7
jmp 0x298e7
movq %rax, %rbx
movq -0x1e0(%rbp), %rdi
leaq -0x1d0(%rbp), %rax
cmpq %rax, %rdi
je 0x298ea
callq 0x1b4d0
jmp 0x298ea
jmp 0x298e7
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x298ff
callq 0x1b4d0
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x29917
callq 0x1b4d0
movq %rbx, %rdi
callq 0x1b910
nop