// File: /workspace/github_cpp_makefile_star2_O1/ahupowerdns[P]mcounter/./ext/doctest.h
// Function: doctest::detail::ContextState::finalizeTestCaseData()
void finalizeTestCaseData() {
            seconds = timer.getElapsedSeconds();

            // update the non-atomic counters
            numAsserts += numAssertsCurrentTest_atomic;
            numAssertsFailed += numAssertsFailedCurrentTest_atomic;
            numAssertsCurrentTest       = numAssertsCurrentTest_atomic;
            numAssertsFailedCurrentTest = numAssertsFailedCurrentTest_atomic;

            if(numAssertsFailedCurrentTest)
                failure_flags |= TestCaseFailureReason::AssertFailure;

            if(Approx(currentTest->m_timeout).epsilon(DBL_EPSILON) != 0 &&
               Approx(seconds).epsilon(DBL_EPSILON) > currentTest->m_timeout)
                failure_flags |= TestCaseFailureReason::Timeout;

            if(currentTest->m_should_fail) {
                if(failure_flags) {
                    failure_flags |= TestCaseFailureReason::ShouldHaveFailedAndDid;
                } else {
                    failure_flags |= TestCaseFailureReason::ShouldHaveFailedButDidnt;
                }
            } else if(failure_flags && currentTest->m_may_fail) {
                failure_flags |= TestCaseFailureReason::CouldHaveFailedAndDid;
            } else if(currentTest->m_expected_failures > 0) {
                if(numAssertsFailedCurrentTest == currentTest->m_expected_failures) {
                    failure_flags |= TestCaseFailureReason::FailedExactlyNumTimes;
                } else {
                    failure_flags |= TestCaseFailureReason::DidntFailExactlyNumTimes;
                }
            }

            bool ok_to_fail = (TestCaseFailureReason::ShouldHaveFailedAndDid & failure_flags) ||
                              (TestCaseFailureReason::CouldHaveFailedAndDid & failure_flags) ||
                              (TestCaseFailureReason::FailedExactlyNumTimes & failure_flags);

            // if any subcase has failed - the whole test case has failed
            testCaseSuccess = !(failure_flags && !ok_to_fail);
            if(!testCaseSuccess)
                numTestCasesFailed++;
        }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
xorl %r15d, %r15d
movq %rsp, %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x5580
imulq $0xf4240, (%r14), %rax  # imm = 0xF4240
addq 0x8(%r14), %rax
subq 0x10f0(%rbx), %rax
movq %rax, %xmm0
punpckldq 0x4db9(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x4dc1(%rip), %xmm0     # 0x1b2b0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd 0x4dbd(%rip), %xmm1     # 0x1b2c0
movsd %xmm1, 0xa8(%rbx)
xorl %eax, %eax
movl 0xb8(%rbx,%rax), %ecx
addl %ecx, %r15d
addq $0x40, %rax
cmpq $0x800, %rax            # imm = 0x800
jne 0x1650d
addl %r15d, 0x98(%rbx)
xorl %eax, %eax
xorl %ecx, %ecx
movl 0x8b8(%rbx,%rcx), %edx
addl %edx, %eax
addq $0x40, %rcx
cmpq $0x800, %rcx            # imm = 0x800
jne 0x1652e
addl %eax, 0x9c(%rbx)
xorl %eax, %eax
xorl %ecx, %ecx
movl 0xb8(%rbx,%rcx), %edx
addl %edx, %eax
addq $0x40, %rcx
cmpq $0x800, %rcx            # imm = 0x800
jne 0x1654e
movl %eax, 0xa0(%rbx)
xorl %eax, %eax
xorl %ecx, %ecx
movl 0x8b8(%rbx,%rcx), %edx
addl %edx, %eax
addq $0x40, %rcx
cmpq $0x800, %rcx            # imm = 0x800
jne 0x1656e
movl %eax, 0xa4(%rbx)
testl %eax, %eax
je 0x16595
orb $0x1, 0xb0(%rbx)
movq 0x20(%rbx), %rcx
movsd 0x48(%rcx), %xmm0
xorpd %xmm3, %xmm3
xorpd %xmm4, %xmm4
subsd %xmm0, %xmm4
movapd 0x4cce(%rip), %xmm1     # 0x1b280
andpd %xmm1, %xmm4
movapd %xmm0, %xmm2
andpd %xmm1, %xmm2
movapd %xmm2, %xmm5
maxsd %xmm3, %xmm5
addsd 0x4cfa(%rip), %xmm5     # 0x1b2c8
mulsd 0x4cfa(%rip), %xmm5     # 0x1b2d0
ucomisd %xmm4, %xmm5
ja 0x16617
movsd 0xa8(%rbx), %xmm3
ucomisd %xmm0, %xmm3
jbe 0x16617
subsd %xmm3, %xmm0
andpd %xmm1, %xmm0
andpd %xmm1, %xmm3
maxsd %xmm2, %xmm3
addsd 0x4cc6(%rip), %xmm3     # 0x1b2c8
mulsd 0x4cc6(%rip), %xmm3     # 0x1b2d0
ucomisd %xmm0, %xmm3
ja 0x16617
orb $0x10, 0xb0(%rbx)
movl 0xb0(%rbx), %edx
cmpb $0x1, 0x3c(%rcx)
jne 0x16634
movl %edx, %eax
orl $0x40, %eax
testl %edx, %edx
movl $0x20, %edx
cmovnel %eax, %edx
jmp 0x1665f
testl %edx, %edx
je 0x16646
cmpb $0x1, 0x3b(%rcx)
jne 0x16646
orl $0x200, %edx            # imm = 0x200
jmp 0x1665f
movl 0x40(%rcx), %ecx
testl %ecx, %ecx
jle 0x16665
cmpl %ecx, %eax
jne 0x16659
orl $0x100, %edx            # imm = 0x100
jmp 0x1665f
orl $0x80, %edx
movl %edx, 0xb0(%rbx)
movl 0xb0(%rbx), %eax
testl $0x340, %eax            # imm = 0x340
setne %cl
testl %eax, %eax
sete %al
orb %cl, %al
movb %al, 0xb4(%rbx)
jne 0x16688
incl 0x94(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq