// File: dadocolussi[P]gdc-circular_queue/tests/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 );

                seedRng( *m_config );

                Timer timer;
                timer.start();
                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
                    invokeActiveTestCase();
                }
                else {
                    invokeActiveTestCase();
                }
                duration = timer.getElapsedSeconds();
            }
            catch( TestFailureException& ) {
                // This just means the test was aborted due to failure
            }
            catch(...) {
                makeUnexpectedResultBuilder().useActiveException();
            }
            m_testCaseTracker->close();
            handleUnfinishedSections();
            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
movq %rsp, %rbp
subq $0x860, %rsp            # imm = 0x860
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x818(%rbp)
movq 0x38(%rax), %rdi
callq 0x10b80
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdx
movq %rdx, %rsi
addq $0xe0, %rsi
movq %rdx, %rcx
addq $0x40, %rcx
leaq -0x88(%rbp), %rdi
callq 0x14160
movq -0x818(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0x19db0
movq %rax, -0x810(%rbp)
jmp 0x2bc4c
movq -0x810(%rbp), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
leaq -0x88(%rbp), %rsi
callq *%rax
jmp 0x2bc65
movq -0x818(%rbp), %rax
movq 0x120(%rax), %rcx
movq %rcx, -0xa0(%rbp)
movups 0x110(%rax), %xmm0
movaps %xmm0, -0xb0(%rbp)
movq $0x0, -0xb8(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0xeb70
movq -0x820(%rbp), %rdx
leaq 0x51fce(%rip), %rsi     # 0x7dc82
leaq -0x148(%rbp), %rdi
callq 0x18c80
jmp 0x2bcc2
movq -0x20(%rbp), %rax
addq $0xe0, %rax
movq %rax, -0x830(%rbp)
leaq -0x171(%rbp), %rdi
movq %rdi, -0x828(%rbp)
callq 0xeb70
movq -0x828(%rbp), %rdx
leaq 0x52d36(%rip), %rsi     # 0x7ea2a
leaq -0x170(%rbp), %rdi
callq 0x18c80
jmp 0x2bd02
movq -0x830(%rbp), %rdx
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x170(%rbp), %rcx
movl $0x1, %r8d
callq 0x11e80
jmp 0x2bd2b
movq -0x818(%rbp), %rdi
addq $0x160, %rdi            # imm = 0x160
leaq -0x128(%rbp), %rsi
movq %rsi, -0x840(%rbp)
callq 0x24390
movq -0x840(%rbp), %rdi
callq 0x1ab20
leaq -0x170(%rbp), %rdi
callq 0xecd8
leaq -0x171(%rbp), %rdi
callq 0xe710
leaq -0x148(%rbp), %rdi
callq 0xecd8
leaq -0x149(%rbp), %rdi
callq 0xe710
movq -0x818(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
callq 0x198b0
movq %rax, -0x838(%rbp)
jmp 0x2bda4
movq -0x838(%rbp), %rdi
callq 0x13f00
jmp 0x2bdb2
leaq -0x180(%rbp), %rdi
callq 0x1bb60
jmp 0x2bdc0
leaq -0x180(%rbp), %rdi
callq 0x13730
jmp 0x2bdce
movq -0x818(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0x19db0
movq %rax, -0x848(%rbp)
jmp 0x2bdea
movq -0x848(%rbp), %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movb %al, -0x849(%rbp)
jmp 0x2be02
movb -0x849(%rbp), %al
movb %al, -0x181(%rbp)
testb $0x1, -0x181(%rbp)
je 0x2c0b3
callq 0x11b50
movq %rax, %rsi
movq -0x10(%rbp), %rdx
leaq -0x318(%rbp), %rdi
callq 0x2c3d0
jmp 0x2be35
callq 0x10b70
movq %rax, %rsi
movq -0x18(%rbp), %rdx
leaq -0x4a8(%rbp), %rdi
callq 0x2c3d0
jmp 0x2be4f
movq -0x818(%rbp), %rdi
callq 0x2c480
jmp 0x2be5d
leaq -0x4a8(%rbp), %rdi
callq 0x2c4f0
leaq -0x318(%rbp), %rdi
callq 0x2c4f0
jmp 0x2c0c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2c1ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2beef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2bed7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x170(%rbp), %rdi
callq 0xecd8
leaq -0x171(%rbp), %rdi
callq 0xe710
leaq -0x148(%rbp), %rdi
callq 0xecd8
leaq -0x149(%rbp), %rdi
callq 0xe710
jmp 0x2bf4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2bf4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2bf43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x2c4f0
leaq -0x318(%rbp), %rdi
callq 0x2c4f0
movl -0x94(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0x2c067
movq -0x90(%rbp), %rdi
callq 0xe240
movq %rax, -0x750(%rbp)
callq 0xea70
jmp 0x2bf7c
jmp 0x2bf7e
movq -0x818(%rbp), %rax
movq 0x40(%rax), %rdi
movq (%rdi), %rax
movq 0x50(%rax), %rax
callq *%rax
jmp 0x2bf94
movq -0x818(%rbp), %rdi
callq 0x27ea0
jmp 0x2bfa2
movq -0x818(%rbp), %rdi
addq $0x148, %rdi            # imm = 0x148
callq 0x24370
movq -0x818(%rbp), %rsi
addq $0x110, %rsi            # imm = 0x110
leaq -0x768(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0x264c0
jmp 0x2bfd8
movq -0x818(%rbp), %rdi
leaq -0x768(%rbp), %rsi
callq 0x26530
movb %al, -0x84a(%rbp)
jmp 0x2bff3
movb -0x84a(%rbp), %al
andb $0x1, %al
movb %al, -0x769(%rbp)
movq -0x20(%rbp), %rdi
callq 0x12830
testb $0x1, %al
jne 0x2c013
jmp 0x2c12c
leaq -0x768(%rbp), %rdi
addq $0x10, %rdi
leaq -0x768(%rbp), %rsi
addq $0x8, %rsi
callq 0x2c570
movq -0x818(%rbp), %rax
movq -0x758(%rbp), %rdx
movq 0x118(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x118(%rax)
movq -0x758(%rbp), %rcx
addq 0x120(%rax), %rcx
movq %rcx, 0x120(%rax)
jmp 0x2c12c
movq -0x90(%rbp), %rdi
callq 0xe240
movq -0x818(%rbp), %rsi
leaq -0x748(%rbp), %rdi
callq 0x27e10
jmp 0x2c088
leaq -0x748(%rbp), %rdi
movl $0x1, %esi
callq 0x15a80
jmp 0x2c09b
leaq -0x748(%rbp), %rdi
callq 0x1b8a0
callq 0xea70
jmp 0x2c0ae
jmp 0x2bf7e
movq -0x818(%rbp), %rdi
callq 0x2c480
jmp 0x2c0c1
jmp 0x2c0c3
leaq -0x180(%rbp), %rdi
callq 0x137f0
movsd %xmm0, -0x858(%rbp)
jmp 0x2c0d9
movsd -0x858(%rbp), %xmm0
movsd %xmm0, -0xb8(%rbp)
jmp 0x2bf7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x2c120
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x1b8a0
callq 0xea70
jmp 0x2c127
jmp 0x2c1ce
movsd -0xb8(%rbp), %xmm0
movzbl -0x769(%rbp), %ecx
andl $0x1, %ecx
leaq -0x808(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x768(%rbp), %rdx
callq 0x26650
jmp 0x2c15a
movq -0x818(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0x19db0
movq %rax, -0x860(%rbp)
jmp 0x2c176
movq -0x860(%rbp), %rdi
movq (%rdi), %rax
movq 0x60(%rax), %rax
leaq -0x808(%rbp), %rsi
callq *%rax
jmp 0x2c18f
leaq -0x808(%rbp), %rdi
callq 0x177d0
leaq -0x88(%rbp), %rdi
callq 0x1bb80
addq $0x860, %rsp            # imm = 0x860
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x177d0
leaq -0x88(%rbp), %rdi
callq 0x1bb80
movq -0x90(%rbp), %rdi
callq 0xeb60
movq %rax, %rdi
callq 0x1aa10
nop