// File: AndreRenaud[P]simple_options/./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(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_(-1);

        result_str = "failed";
        result_color = ACUTEST_COLOR_RED_;
        verbose_level = 2;
        acutest_test_failures_++;
        acutest_test_already_logged_++;
    }

    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) {
#ifdef ACUTEST_WIN_
            const char* lastsep1 = strrchr(file, '\\');
            const char* lastsep2 = strrchr(file, '/');
            if(lastsep1 == NULL)
                lastsep1 = file-1;
            if(lastsep2 == NULL)
                lastsep2 = file-1;
            file = (lastsep1 > lastsep2 ? lastsep1 : lastsep2) + 1;
#else
            const char* lastsep = strrchr(file, '/');
            if(lastsep != NULL)
                file = lastsep+1;
#endif
            printf("%s:%d: Check ", 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_cond_failed_ = (cond == 0);
    return !acutest_cond_failed_;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
testb %al, %al
je 0x30c1
movaps %xmm0, -0xe0(%rbp)
movaps %xmm1, -0xd0(%rbp)
movaps %xmm2, -0xc0(%rbp)
movaps %xmm3, -0xb0(%rbp)
movaps %xmm4, -0xa0(%rbp)
movaps %xmm5, -0x90(%rbp)
movaps %xmm6, -0x80(%rbp)
movaps %xmm7, -0x70(%rbp)
movq %r9, -0xe8(%rbp)
movq %r8, -0xf0(%rbp)
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, -0x4(%rbp)
je 0x30fe
leaq 0x4316(%rip), %rax      # 0x7400
movq %rax, -0x28(%rbp)
movl $0x1, -0x2c(%rbp)
movl $0x3, -0x30(%rbp)
jmp 0x3152
cmpl $0x0, 0x806b(%rip)      # 0xb170
jne 0x311b
cmpq $0x0, 0x8069(%rip)      # 0xb178
je 0x311b
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x32c0
leaq 0x4046(%rip), %rax      # 0x7168
movq %rax, -0x28(%rbp)
movl $0x2, -0x2c(%rbp)
movl $0x2, -0x30(%rbp)
movl 0x8046(%rip), %eax      # 0xb180
addl $0x1, %eax
movl %eax, 0x803d(%rip)      # 0xb180
movl 0x8027(%rip), %eax      # 0xb170
addl $0x1, %eax
movl %eax, 0x801e(%rip)      # 0xb170
movl 0x8000(%rip), %eax      # 0xb158
cmpl -0x30(%rbp), %eax
jl 0x328a
cmpl $0x0, 0x801c(%rip)      # 0xb184
jne 0x31b8
movsbl 0x801f(%rip), %eax      # 0xb190
cmpl $0x0, %eax
je 0x31b8
movl $0x1, %edi
callq 0x33f0
movl $0x3, %edi
leaq 0x3fe3(%rip), %rsi      # 0x716f
leaq 0x7ffd(%rip), %rdx      # 0xb190
movb $0x0, %al
callq 0x3470
movl 0x7fd0(%rip), %eax      # 0xb170
addl $0x1, %eax
movl %eax, 0x7fc7(%rip)      # 0xb170
movl 0x7fd5(%rip), %eax      # 0xb184
addl $0x1, %eax
movl %eax, 0x7fcc(%rip)      # 0xb184
movsbl 0x7fd1(%rip), %ecx      # 0xb190
movl $0x1, %edi
movl $0x2, %eax
cmpl $0x0, %ecx
cmovnel %eax, %edi
callq 0x33f0
cmpq $0x0, -0x10(%rbp)
je 0x3215
movq -0x10(%rbp), %rdi
movl $0x2f, %esi
callq 0x2110
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x3200
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
leaq 0x3f6b(%rip), %rdi      # 0x7179
movb $0x0, %al
callq 0x2100
leaq -0x50(%rbp), %rax
leaq -0x110(%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 0x21d0
leaq -0x50(%rbp), %rax
leaq 0x4bb1(%rip), %rdi      # 0x7e02
movb $0x0, %al
callq 0x2100
movl -0x2c(%rbp), %edi
movq -0x28(%rbp), %rdx
leaq 0x3deb(%rip), %rsi      # 0x7051
movb $0x0, %al
callq 0x3470
leaq 0x4362(%rip), %rdi      # 0x75d6
movb $0x0, %al
callq 0x2100
movl 0x7eef(%rip), %eax      # 0xb170
addl $0x1, %eax
movl %eax, 0x7ee6(%rip)      # 0xb170
movl -0x4(%rbp), %eax
testl %eax, %eax
sete %al
movzbl %al, %eax
movl %eax, 0x7f35(%rip)      # 0xb1d0
movl 0x7f2f(%rip), %eax      # 0xb1d0
testl %eax, %eax
sete %al
movzbl %al, %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopw %cs:(%rax,%rax)