// File: /workspace/github_cpp_makefile_star2_O3/minimind[P]simple-graph/unittest/catch.hpp
// Function: Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
            m_reporter->sectionStarting( testCaseSection );
            Counts prevAssertions = m_totals.assertions;
            double duration = 0;
            try {
                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal );
                TestCaseTracker::Guard guard( *m_testCaseTracker );

                Timer timer;
                timer.start();
                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
                    StreamRedirect coutRedir( std::cout, redirectedCout );
                    StreamRedirect cerrRedir( std::cerr, redirectedCerr );
                    m_activeTestCase->invoke();
                }
                else {
                    m_activeTestCase->invoke();
                }
                duration = timer.getElapsedSeconds();
            }
            catch( TestFailureException& ) {
                // This just means the test was aborted due to failure
            }
            catch(...) {
                ResultBuilder exResult( m_lastAssertionInfo.macroName.c_str(),
                                        m_lastAssertionInfo.lineInfo,
                                        m_lastAssertionInfo.capturedExpression.c_str(),
                                        m_lastAssertionInfo.resultDisposition );
                exResult.useActiveException();
            }
            // If sections ended prematurely due to an exception we stored their
            // infos here so we can tear them down outside the unwind process.
            for( std::vector<UnfinishedSections>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
                        itEnd = m_unfinishedSections.rend();
                    it != itEnd;
                    ++it )
                sectionEnded( it->info, it->prevAssertions, it->durationInSeconds );
            m_unfinishedSections.clear();
            m_messages.clear();

            Counts assertions = m_totals.assertions - prevAssertions;
            bool missingAssertions = testForMissingAssertions( assertions );

            if( testCaseInfo.okToFail() ) {
                std::swap( assertions.failedButOk, assertions.failed );
                m_totals.assertions.failed -= assertions.failedButOk;
                m_totals.assertions.failedButOk += assertions.failedButOk;
            }

            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
            m_reporter->sectionEnded( testCaseSectionStats );
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4f8, %rsp            # imm = 0x4F8
movq %rdx, (%rsp)
movq %rsi, %r12
movq %rdi, %rbx
movq 0x38(%rdi), %r14
leaq 0xe0(%r14), %r13
leaq 0x40(%r14), %rcx
leaq 0x58(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0xcc0c
movq 0x1a8(%rbx), %rdi
movq (%rdi), %rax
movq %rbp, %rsi
callq *0x48(%rax)
movupd 0x178(%rbx), %xmm0
movapd %xmm0, 0x40(%rsp)
movq 0x188(%rbx), %rax
movq %rax, 0x38(%rsp)
leaq 0xd0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0x1b407(%rip), %rsi     # 0x3e171
leaq 0x1b409(%rip), %rdx     # 0x3e17a
leaq 0xc0(%rsp), %rdi
callq 0x2ace6
leaq 0x28(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1b7dd(%rip), %rdx     # 0x3e56b
leaq 0x18(%rsp), %rdi
movq %rdx, %rsi
callq 0x2ace6
leaq 0x258(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x18(%rsp), %rcx
movq %r13, %rdx
xorl %r8d, %r8d
callq 0xaef4
leaq 0x1e0(%rbx), %rdi
leaq 0x258(%rsp), %rsi
callq 0x93e0
leaq 0x200(%rbx), %rdi
leaq 0x278(%rsp), %r13
movq %r13, %rsi
callq 0x93e0
movq 0x20(%r13), %rax
movq %rax, 0x220(%rbx)
leaq 0x228(%rbx), %rdi
leaq 0x2a0(%rsp), %r13
movq %r13, %rsi
callq 0x93e0
movl 0x20(%r13), %eax
movl %eax, 0x248(%rbx)
movq (%r13), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x22e33
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x9330
leaq 0x288(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e54
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x9330
leaq 0x268(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x22e75
movq 0x268(%rsp), %rsi
incq %rsi
callq 0x9330
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x22e8c
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x9330
movq 0xc0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x22ea9
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x9330
movq 0x40(%rbx), %rax
movq %rax, 0x18(%rsp)
movq %rax, 0x60(%rax)
movb $0x0, 0x68(%rax)
cmpl $0x0, 0x20(%rax)
jne 0x22ec7
movl $0x1, 0x20(%rax)
leaq 0x258(%rsp), %r13
movq %r13, %rdi
xorl %esi, %esi
callq 0x94f0
movq (%r13), %rbp
movq 0x8(%r13), %r13
movq 0x1a8(%rbx), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
testb $0x1, %al
je 0x22f4e
movq 0x330c7(%rip), %rsi     # 0x55fc0
leaq 0x258(%rsp), %rdi
movq %r12, %rdx
callq 0x2365c
movq 0x330d8(%rip), %rsi     # 0x55fe8
leaq 0xc0(%rsp), %rdi
movq (%rsp), %rdx
callq 0x2365c
movq 0x38(%rbx), %rax
movq 0x110(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
leaq 0xc0(%rsp), %rdi
callq 0x236dc
leaq 0x258(%rsp), %rdi
callq 0x236dc
jmp 0x22f5f
movq 0x38(%rbx), %rax
movq 0x110(%rax), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
leaq 0x258(%rsp), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x94f0
movq (%r15), %rax
subq %rbp, %rax
movq 0x8(%r15), %rcx
subq %r13, %rcx
imulq $0xf4240, %rax, %rax    # imm = 0xF4240
addq %rcx, %rax
movq %rax, %xmm0
punpckldq 0x1a07b(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x1a083(%rip), %xmm0    # 0x3d020
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movapd %xmm1, (%rsp)
movq 0x18(%rsp), %r15
movq 0x40(%r15), %rax
leaq 0x30(%r15), %r12
movl $0x3, %ebp
cmpq %r12, %rax
je 0x22fda
cmpl $0x3, 0x60(%rax)
jne 0x22fd5
movq %rax, %rdi
callq 0x93a0
jmp 0x22fc0
movl $0x2, %ebp
movapd (%rsp), %xmm0
divsd 0x1a099(%rip), %xmm0    # 0x3d080
movapd %xmm0, (%rsp)
movl %ebp, 0x20(%r15)
leaq 0x250(%rbx), %r15
movq 0x250(%rbx), %r13
movq 0x258(%rbx), %rdx
cmpq %r13, %rdx
je 0x2302b
movsd -0x8(%rdx), %xmm0
movq (%rbx), %rax
leaq -0x88(%rdx), %r12
addq $-0x20, %rdx
movq %rbx, %rdi
movq %r12, %rsi
callq *0x20(%rax)
movq %r12, %rdx
jmp 0x23005
movq 0x250(%rbx), %rsi
movq %r15, %rdi
callq 0x23794
leaq 0x1b0(%rbx), %rdi
movq 0x1b0(%rbx), %rsi
callq 0x21e80
movdqu 0x178(%rbx), %xmm0
psubq 0x40(%rsp), %xmm0
leaq 0xc0(%rsp), %rsi
movdqa %xmm0, (%rsi)
movq 0x188(%rbx), %rax
subq 0x38(%rsp), %rax
movq %rax, 0x10(%rsi)
movq %rbx, %rdi
callq 0x224c8
testb $0xc, 0x108(%r14)
je 0x230b7
movq 0xc8(%rsp), %rcx
movq 0xd0(%rsp), %rdx
movq %rcx, 0xd0(%rsp)
movq %rdx, 0xc8(%rsp)
subq %rcx, 0x180(%rbx)
addq %rcx, 0x188(%rbx)
movzbl %al, %ecx
leaq 0x258(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
movapd (%rsp), %xmm0
callq 0x22590
movq 0x1a8(%rbx), %rdi
movq (%rdi), %rax
leaq 0x258(%rsp), %rsi
callq *0x60(%rax)
leaq 0x258(%rsp), %rdi
callq 0xf366
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2311c
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x9330
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2313d
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x9330
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x23158
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x9330
addq $0x4f8, %rsp            # imm = 0x4F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdx, %r13
movq %rax, %r12
leaq 0xc0(%rsp), %rdi
callq 0x236dc
jmp 0x23185
movq %rdx, %r13
movq %rax, %r12
leaq 0x258(%rsp), %rdi
callq 0x236dc
jmp 0x231bd
jmp 0x231b7
jmp 0x231b7
movq %rax, %rbx
leaq 0x258(%rsp), %rdi
callq 0xf366
jmp 0x232b9
jmp 0x232b6
jmp 0x232b6
movq %rdx, %r13
movq %rax, %r12
leaq 0x18(%rsp), %rdi
callq 0x2375e
jmp 0x23213
movq %rdx, %r13
movq %rax, %r12
movq 0x18(%rsp), %rdi
cmpq %r15, %rdi
je 0x231ee
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x9330
jmp 0x231ee
movq %rdx, %r13
movq %rax, %r12
movq 0xc0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x23213
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x9330
jmp 0x23213
movq %rdx, %r13
movq %rax, %r12
movq %r12, %rdi
callq 0x9130
cmpl $0x2, %r13d
jne 0x23234
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
callq 0x9540
jmp 0x22ff0
leaq 0x200(%rbx), %rdx
movq 0x1e0(%rbx), %rsi
movq 0x228(%rbx), %rcx
movl 0x248(%rbx), %r8d
leaq 0x258(%rsp), %rdi
callq 0xd996
leaq 0x258(%rsp), %rdi
xorl %esi, %esi
callq 0xdca0
leaq 0x258(%rsp), %rdi
callq 0x102ce
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
callq 0x9540
jmp 0x22ff0
jmp 0x232b6
movq %rax, %rbx
leaq 0x258(%rsp), %rdi
callq 0x102ce
jmp 0x232a3
movq %rax, %rbx
callq 0x9540
jmp 0x232b9
movq %rax, %rdi
callq 0xffa7
jmp 0x232b6
jmp 0x232b6
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x103ce
movq %rbx, %rdi
callq 0x95c0
nop