// File: /workspace/github_cpp_makefile_star2_O3/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 0x4e45(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x4e4d(%rip), %xmm0     # 0x1b2c0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd 0x4e49(%rip), %xmm1     # 0x1b2d0
movsd %xmm1, 0xa8(%rbx)
xorl %eax, %eax
movl 0xb8(%rbx,%rax), %ecx
addl %ecx, %r15d
addq $0x40, %rax
cmpq $0x800, %rax            # imm = 0x800
jne 0x16491
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 0x164b2
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 0x164d2
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 0x164f2
movl %eax, 0xa4(%rbx)
testl %eax, %eax
je 0x16519
orb $0x1, 0xb0(%rbx)
movq 0x20(%rbx), %rdx
movsd 0x48(%rdx), %xmm0
xorpd %xmm3, %xmm3
xorpd %xmm4, %xmm4
subsd %xmm0, %xmm4
movapd 0x4d5a(%rip), %xmm1     # 0x1b290
andpd %xmm1, %xmm4
movapd %xmm0, %xmm2
andpd %xmm1, %xmm2
movapd %xmm2, %xmm5
maxsd %xmm3, %xmm5
addsd 0x4d86(%rip), %xmm5     # 0x1b2d8
mulsd 0x4d86(%rip), %xmm5     # 0x1b2e0
ucomisd %xmm4, %xmm5
ja 0x1659b
movsd 0xa8(%rbx), %xmm3
ucomisd %xmm0, %xmm3
jbe 0x1659b
subsd %xmm3, %xmm0
andpd %xmm1, %xmm0
andpd %xmm1, %xmm3
maxsd %xmm2, %xmm3
addsd 0x4d52(%rip), %xmm3     # 0x1b2d8
mulsd 0x4d52(%rip), %xmm3     # 0x1b2e0
ucomisd %xmm0, %xmm3
ja 0x1659b
orb $0x10, 0xb0(%rbx)
movl 0xb0(%rbx), %ecx
cmpb $0x1, 0x3c(%rdx)
jne 0x165c1
movl $0x40, %esi
testl %ecx, %ecx
jne 0x165e5
movl $0x20, 0xb0(%rbx)
movl $0x20, %ecx
jmp 0x165fe
testl %ecx, %ecx
je 0x165d0
movl $0x200, %esi            # imm = 0x200
cmpb $0x0, 0x3b(%rdx)
jne 0x165e5
movl 0x40(%rdx), %edx
testl %edx, %edx
jle 0x165ed
xorl %esi, %esi
cmpl %edx, %eax
sete %sil
shll $0x7, %esi
subl $-0x80, %esi
orl %esi, %ecx
movl %ecx, 0xb0(%rbx)
testl $0x240, %ecx            # imm = 0x240
je 0x165fe
movb $0x1, 0xb4(%rbx)
jmp 0x1661b
movl %ecx, %eax
shrl $0x8, %eax
andl $0x1, %eax
testl %ecx, %ecx
sete %cl
orb %al, %cl
movb %cl, 0xb4(%rbx)
jne 0x1661b
incl 0x94(%rbx)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
nop