// File: AndreRenaud[P]simple_uart/./acutest.h
// Function: acutest_check_
acutest_check_(int cond, const char* file, int line, const char* fmt, ...)
{
    const char *result_str;
    int result_color;
    int verbose_level;

    if(acutest_test_skip_count_) {
        /* We've skipped the test. We shouldn't be here: The test implementation
         * should have already return before. So lets suppress the following
         * output. */
        cond = 1;
        goto skip_check;
    }

    if(cond) {
        result_str = "ok";
        result_color = ACUTEST_COLOR_GREEN_;
        verbose_level = 3;
    } else {
        if(!acutest_test_already_logged_  &&  acutest_current_test_ != NULL)
            acutest_finish_test_line_(ACUTEST_STATE_FAILED);

        acutest_test_failures_++;
        acutest_test_already_logged_++;

        result_str = "failed";
        result_color = ACUTEST_COLOR_RED_;
        verbose_level = 2;
    }

    if(acutest_verbose_level_ >= verbose_level) {
        va_list args;

        if(!acutest_case_already_logged_  &&  acutest_case_name_[0]) {
            acutest_line_indent_(1);
            acutest_colored_printf_(ACUTEST_COLOR_DEFAULT_INTENSIVE_, "Case %s:\n", acutest_case_name_);
            acutest_test_already_logged_++;
            acutest_case_already_logged_++;
        }

        acutest_line_indent_(acutest_case_name_[0] ? 2 : 1);
        if(file != NULL) {
            file = acutest_basename_(file);
            printf("%s:%d: ", file, line);
        }

        va_start(args, fmt);
        vprintf(fmt, args);
        va_end(args);

        printf("... ");
        acutest_colored_printf_(result_color, "%s", result_str);
        printf("\n");
        acutest_test_already_logged_++;
    }

    acutest_test_check_count_++;

skip_check:
    acutest_cond_failed_ = (cond == 0);
    return !acutest_cond_failed_;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
testb %al, %al
je 0x271e
movaps %xmm0, -0xd0(%rbp)
movaps %xmm1, -0xc0(%rbp)
movaps %xmm2, -0xb0(%rbp)
movaps %xmm3, -0xa0(%rbp)
movaps %xmm4, -0x90(%rbp)
movaps %xmm5, -0x80(%rbp)
movaps %xmm6, -0x70(%rbp)
movaps %xmm7, -0x60(%rbp)
movq %r9, -0xd8(%rbp)
movq %r8, -0xe0(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, 0xabef(%rip)      # 0xd330
je 0x274f
movl $0x1, -0x4(%rbp)
jmp 0x28f3
cmpl $0x0, -0x4(%rbp)
je 0x2770
leaq 0x7127(%rip), %rax      # 0x9883
movq %rax, -0x28(%rbp)
movl $0x2, -0x2c(%rbp)
movl $0x3, -0x30(%rbp)
jmp 0x27c4
cmpl $0x0, 0xabad(%rip)      # 0xd324
jne 0x278d
cmpq $0x0, 0xaba7(%rip)      # 0xd328
je 0x278d
movl $0x1, %edi
callq 0x2920
movl 0xaba1(%rip), %eax      # 0xd334
addl $0x1, %eax
movl %eax, 0xab98(%rip)      # 0xd334
movl 0xab82(%rip), %eax      # 0xd324
addl $0x1, %eax
movl %eax, 0xab79(%rip)      # 0xd324
leaq 0x6961(%rip), %rax      # 0x9113
movq %rax, -0x28(%rbp)
movl $0x1, -0x2c(%rbp)
movl $0x2, -0x30(%rbp)
movl 0xaa3e(%rip), %eax      # 0xd208
cmpl -0x30(%rbp), %eax
jl 0x28e4
cmpl $0x0, 0xab5e(%rip)      # 0xd338
jne 0x282a
movsbl 0xab5d(%rip), %eax      # 0xd340
cmpl $0x0, %eax
je 0x282a
movl $0x1, %edi
callq 0x2aa0
movl $0xa, %edi
leaq 0x691c(%rip), %rsi      # 0x911a
leaq 0xab3b(%rip), %rdx      # 0xd340
movb $0x0, %al
callq 0x2b70
movl 0xab12(%rip), %eax      # 0xd324
addl $0x1, %eax
movl %eax, 0xab09(%rip)      # 0xd324
movl 0xab17(%rip), %eax      # 0xd338
addl $0x1, %eax
movl %eax, 0xab0e(%rip)      # 0xd338
movsbl 0xab0f(%rip), %ecx      # 0xd340
movl $0x1, %edi
movl $0x2, %eax
cmpl $0x0, %ecx
cmovnel %eax, %edi
callq 0x2aa0
cmpq $0x0, -0x10(%rbp)
je 0x286f
movq -0x10(%rbp), %rdi
callq 0x2b20
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
leaq 0x68a3(%rip), %rdi      # 0x910b
movb $0x0, %al
callq 0x2160
leaq -0x50(%rbp), %rax
leaq -0x100(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x20, (%rax)
movq -0x20(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x22a0
leaq -0x50(%rbp), %rax
leaq 0x79e8(%rip), %rdi      # 0xa293
movb $0x0, %al
callq 0x2160
movl -0x2c(%rbp), %edi
movq -0x28(%rbp), %rdx
leaq 0x7044(%rip), %rsi      # 0x9904
movb $0x0, %al
callq 0x2b70
leaq 0x71b1(%rip), %rdi      # 0x9a7f
movb $0x0, %al
callq 0x2160
movl 0xaa49(%rip), %eax      # 0xd324
addl $0x1, %eax
movl %eax, 0xaa40(%rip)      # 0xd324
movl 0xaa36(%rip), %eax      # 0xd320
addl $0x1, %eax
movl %eax, 0xaa2d(%rip)      # 0xd320
movl -0x4(%rbp), %eax
testl %eax, %eax
sete %al
movzbl %al, %eax
movl %eax, 0xaa7c(%rip)      # 0xd380
movl 0xaa76(%rip), %eax      # 0xd380
testl %eax, %eax
sete %al
movzbl %al, %eax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax,%rax)