// File: dadocolussi[P]gdc-nanomap/unit_tests/catch.hpp
// Function: Catch::RunContext::runTest(Catch::TestCase const&)
Totals runTest( TestCase const& testCase ) {
            Totals prevTotals = m_totals;

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

            TestCaseInfo testInfo = testCase.getTestCaseInfo();

            m_reporter->testCaseStarting( testInfo );

            m_activeTestCase = &testCase;

            do {
                m_trackerContext.startRun();
                do {
                    m_trackerContext.startCycle();
                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, testInfo.name );
                    runCurrentTest( redirectedCout, redirectedCerr );
                }
                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
            }
            // !TBD: deprecated - this will be replaced by indexed trackers
            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !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 = CATCH_NULL;
            m_testCaseTracker = CATCH_NULL;

            return deltaTotals;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x348(%rbp)
movq %rdi, -0x340(%rbp)
movq %rsi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x338(%rbp)
movups 0x110(%rax), %xmm0
movups 0x120(%rax), %xmm1
movups 0x130(%rax), %xmm2
movaps %xmm2, -0x20(%rbp)
movaps %xmm1, -0x30(%rbp)
movaps %xmm0, -0x40(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xc780
leaq -0x80(%rbp), %rdi
callq 0xc780
movq -0x10(%rbp), %rdi
callq 0xe690
movq %rax, %rsi
leaq -0x190(%rbp), %rdi
callq 0x10170
jmp 0x2b8e9
movq -0x338(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0x2bc90
movq %rax, -0x350(%rbp)
jmp 0x2b905
movq -0x350(%rbp), %rdi
movq (%rdi), %rax
movq 0x40(%rax), %rax
leaq -0x190(%rbp), %rsi
callq *%rax
jmp 0x2b91e
movq -0x338(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, 0x38(%rax)
movq -0x338(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
callq 0x3da00
jmp 0x2b942
jmp 0x2b944
movq -0x338(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
callq 0x3daf0
jmp 0x2b959
movq -0x338(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
leaq -0x190(%rbp), %rsi
callq 0x376d0
movq %rax, -0x358(%rbp)
jmp 0x2b97c
movq -0x338(%rbp), %rdi
movq -0x358(%rbp), %rax
movq %rax, 0x40(%rdi)
leaq -0x60(%rbp), %rsi
leaq -0x80(%rbp), %rdx
callq 0x3db30
jmp 0x2b99d
jmp 0x2b99f
movq -0x338(%rbp), %rax
movq 0x40(%rax), %rdi
movq (%rdi), %rax
movq 0x30(%rax), %rax
callq *%rax
movb %al, -0x359(%rbp)
jmp 0x2b9bb
movb -0x359(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x35a(%rbp)
jne 0x2b9f6
jmp 0x2b9d0
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
movb %al, -0x35b(%rbp)
jmp 0x2b9e8
movb -0x35b(%rbp), %al
xorb $-0x1, %al
movb %al, -0x35a(%rbp)
movb -0x35a(%rbp), %al
testb $0x1, %al
jne 0x2b944
jmp 0x2ba06
callq 0xd0e0
movq %rax, -0x368(%rbp)
jmp 0x2ba14
movq -0x368(%rbp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movb %al, -0x369(%rbp)
jmp 0x2ba2c
movb -0x369(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x36a(%rbp)
jne 0x2ba41
jmp 0x2ba67
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
movb %al, -0x36b(%rbp)
jmp 0x2ba59
movb -0x36b(%rbp), %al
xorb $-0x1, %al
movb %al, -0x36a(%rbp)
movb -0x36a(%rbp), %al
testb $0x1, %al
jne 0x2b92d
movq -0x348(%rbp), %rdi
movq -0x338(%rbp), %rsi
addq $0x110, %rsi            # imm = 0x110
leaq -0x40(%rbp), %rdx
callq 0x3e140
jmp 0x2ba95
leaq -0x190(%rbp), %rdi
callq 0x10340
testb $0x1, %al
jne 0x2baa7
jmp 0x2bb10
movq -0x348(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x2bb10
movq -0x348(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq 0x18(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x18(%rax)
movq 0x20(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rax)
jmp 0x2bb10
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x2bc2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
jmp 0x2bc1e
movq -0x338(%rbp), %rdi
movq -0x348(%rbp), %rsi
addq $0x18, %rsi
addq $0x128, %rdi            # imm = 0x128
callq 0x3e1c0
jmp 0x2bb30
movq -0x338(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0x2bc90
movq %rax, -0x378(%rbp)
jmp 0x2bb4c
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
callq *%rax
movb %al, -0x379(%rbp)
jmp 0x2bb64
movq -0x348(%rbp), %rdx
movb -0x379(%rbp), %al
movzbl %al, %r9d
andl $0x1, %r9d
leaq -0x330(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x60(%rbp), %rcx
leaq -0x80(%rbp), %r8
callq 0x39e90
jmp 0x2bb96
movq -0x378(%rbp), %rdi
movq (%rdi), %rax
movq 0x68(%rax), %rax
leaq -0x330(%rbp), %rsi
callq *%rax
jmp 0x2bbaf
leaq -0x330(%rbp), %rdi
callq 0x15320
movq -0x338(%rbp), %rax
movq $0x0, 0x38(%rax)
movq $0x0, 0x40(%rax)
leaq -0x190(%rbp), %rdi
callq 0x2d040
leaq -0x80(%rbp), %rdi
callq 0xcac0
leaq -0x60(%rbp), %rdi
callq 0xcac0
movq -0x340(%rbp), %rax
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x198(%rbp)
movl %eax, -0x19c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x15320
leaq -0x190(%rbp), %rdi
callq 0x2d040
leaq -0x80(%rbp), %rdi
callq 0xcac0
leaq -0x60(%rbp), %rdi
callq 0xcac0
movq -0x198(%rbp), %rdi
callq 0xc990
nopl (%rax,%rax)