// File: /workspace/github_c_makefile_star2_O0/giannisdravilas[P]Disease-Monitor/tests/../include/acutest.h
// Function: main
int
main(int argc, char** argv)
{
    int i;
    test_argv0__ = argv[0];

#if defined ACUTEST_UNIX__
    test_colorize__ = isatty(STDOUT_FILENO);
#elif defined ACUTEST_WIN__
 #if defined __BORLANDC__
    test_colorize__ = isatty(_fileno(stdout));
 #else
    test_colorize__ = _isatty(_fileno(stdout));
 #endif
#else
    test_colorize__ = 0;
#endif

    /* Count all test units */
    test_list_size__ = 0;
    for(i = 0; test_list__[i].func != NULL; i++)
        test_list_size__++;

    test_details__ = (struct test_detail__*)calloc(test_list_size__, sizeof(struct test_detail__));
    if(test_details__ == NULL) {
        fprintf(stderr, "Out of memory.\n");
        exit(2);
    }

    /* Parse options */
    test_cmdline_read__(test_cmdline_options__, argc, argv, test_cmdline_callback__);

    /* Initialize the proper timer. */
    test_timer_init__();

#if defined(ACUTEST_WIN__)
    SetUnhandledExceptionFilter(test_seh_exception_filter__);
#endif

    /* By default, we want to run all tests. */
    if(test_count__ == 0) {
        for(i = 0; test_list__[i].func != NULL; i++)
            test_remember__(i);
    }

    /* Guess whether we want to run unit tests as child processes. */
    if(test_no_exec__ < 0) {
        test_no_exec__ = 0;

        if(test_count__ <= 1) {
            test_no_exec__ = 1;
        } else {
#ifdef ACUTEST_WIN__
            if(IsDebuggerPresent())
                test_no_exec__ = 1;
#endif
#ifdef ACUTEST_LINUX__
            if(test_is_tracer_present__())
                test_no_exec__ = 1;
#endif
#ifdef RUNNING_ON_VALGRIND
            /* RUNNING_ON_VALGRIND is provided by valgrind.h */
            if(RUNNING_ON_VALGRIND)
                test_no_exec__ = 1;
#endif
        }
    }

    if(test_tap__) {
        /* TAP requires we know test result ("ok", "not ok") before we output
         * anything about the test, and this gets problematic for larger verbose
         * levels. */
        if(test_verbose_level__ > 2)
            test_verbose_level__ = 2;

        /* TAP harness should provide some summary. */
        test_no_summary__ = 1;

        if(!test_worker__)
            printf("1..%d\n", (int) test_count__);
    }

    int index = test_worker_index__;
    for(i = 0; test_list__[i].func != NULL; i++) {
        int run = (test_details__[i].flags & TEST_FLAG_RUN__);
        if (test_skip_mode__) /* Run all tests except those listed. */
            run = !run;
        if(run)
            test_run__(&test_list__[i], index++, i);
    }

    /* Write a summary */
    if(!test_no_summary__ && test_verbose_level__ >= 1) {
        if(test_verbose_level__ >= 3) {
            test_print_in_color__(TEST_COLOR_DEFAULT_INTENSIVE__, "Summary:\n");

            printf("  Count of all unit tests:     %4d\n", (int) test_list_size__);
            printf("  Count of run unit tests:     %4d\n", test_stat_run_units__);
            printf("  Count of failed unit tests:  %4d\n", test_stat_failed_units__);
            printf("  Count of skipped unit tests: %4d\n", (int) test_list_size__ - test_stat_run_units__);
        }

        if(test_stat_failed_units__ == 0) {
            test_print_in_color__(TEST_COLOR_GREEN_INTENSIVE__, "SUCCESS:");
            printf(" All unit tests have passed.\n");
        } else {
            test_print_in_color__(TEST_COLOR_RED_INTENSIVE__, "FAILED:");
            printf(" %d of %d unit tests %s failed.\n",
                    test_stat_failed_units__, test_stat_run_units__,
                    (test_stat_failed_units__ == 1) ? "has" : "have");
        }

        if(test_verbose_level__ >= 3)
            printf("\n");
    }

    if (test_xml_output__) {
#if defined ACUTEST_UNIX__
        char *suite_name = basename(argv[0]);
#elif defined ACUTEST_WIN__
        char suite_name[_MAX_FNAME];
        _splitpath(argv[0], NULL, NULL, suite_name, NULL);
#else
        const char *suite_name = argv[0];
#endif
        fprintf(test_xml_output__, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
        fprintf(test_xml_output__, "<testsuite name=\"%s\" tests=\"%d\" errors=\"%d\" failures=\"%d\" skip=\"%d\">\n",
            suite_name, (int)test_list_size__, test_stat_failed_units__, test_stat_failed_units__,
            (int)test_list_size__ - test_stat_run_units__);
        for(i = 0; test_list__[i].func != NULL; i++) {
            struct test_detail__ *details = &test_details__[i];
            fprintf(test_xml_output__, "  <testcase name=\"%s\" time=\"%.2f\">\n", test_list__[i].name, details->duration);
            if (details->flags & TEST_FLAG_FAILURE__)
                fprintf(test_xml_output__, "    <failure />\n");
            if (!(details->flags & TEST_FLAG_FAILURE__) && !(details->flags & TEST_FLAG_SUCCESS__))
                fprintf(test_xml_output__, "    <skipped />\n");
            fprintf(test_xml_output__, "  </testcase>\n");
        }
        fprintf(test_xml_output__, "</testsuite>\n");
        fclose(test_xml_output__);
    }

    free((void*) test_details__);

    return (test_stat_failed_units__ == 0) ? 0 : 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, 0xc7c1(%rip)      # 0xf678
movl $0x1, %edi
callq 0x2070
movl %eax, 0xc7b9(%rip)      # 0xf680
movq $0x0, 0xc7b6(%rip) # 0xf688
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xbe7c(%rip), %rax      # 0xed60
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x2f0f
movq 0xc78f(%rip), %rax      # 0xf688
addq $0x1, %rax
movq %rax, 0xc784(%rip)      # 0xf688
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x2ed9
movq 0xc772(%rip), %rdi      # 0xf688
movl $0x10, %esi
callq 0x2150
movq %rax, 0xc769(%rip)      # 0xf690
cmpq $0x0, 0xc761(%rip)      # 0xf690
jne 0x2f53
movq 0xc0c0(%rip), %rax      # 0xeff8
movq (%rax), %rdi
leaq 0x8224(%rip), %rsi      # 0xb166
movb $0x0, %al
callq 0x2170
movl $0x2, %edi
callq 0x2240
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq 0xbc7f(%rip), %rdi      # 0xebe0
leaq 0x968(%rip), %rcx       # 0x38d0
callq 0x3410
callq 0x3e50
cmpq $0x0, 0xc71e(%rip)      # 0xf698
jne 0x2fb1
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xbdd2(%rip), %rax      # 0xed60
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x2faf
movl -0x14(%rbp), %edi
callq 0x3e80
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x2f83
jmp 0x2fb1
cmpl $0x0, 0xc1bc(%rip)      # 0xf174
jge 0x3063
movl $0x0, 0xc1ac(%rip)      # 0xf174
cmpq $0x1, 0xc6c8(%rip)      # 0xf698
ja 0x2fe1
movl $0x1, 0xc198(%rip)      # 0xf174
jmp 0x3061
callq 0x3ee0
cmpl $0x0, %eax
je 0x2ff5
movl $0x1, 0xc17f(%rip)      # 0xf174
movq $0x1001, -0x50(%rbp)    # imm = 0x1001
movq $0x0, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
leaq -0x50(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpl $0x0, %eax
je 0x305f
movl $0x1, 0xc115(%rip)      # 0xf174
jmp 0x3061
jmp 0x3063
cmpl $0x0, 0xc636(%rip)      # 0xf6a0
je 0x30ab
cmpl $0x2, 0xc0fd(%rip)      # 0xf170
jle 0x307f
movl $0x2, 0xc0f1(%rip)      # 0xf170
movl $0x1, 0xc61b(%rip)      # 0xf6a4
cmpl $0x0, 0xc618(%rip)      # 0xf6a8
jne 0x30a9
movq 0xc5ff(%rip), %rax      # 0xf698
movl %eax, %esi
leaq 0x80d4(%rip), %rdi      # 0xb176
movb $0x0, %al
callq 0x20e0
jmp 0x30ab
movl 0xc5fb(%rip), %eax      # 0xf6ac
movl %eax, -0x64(%rbp)
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xbc9a(%rip), %rax      # 0xed60
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x3144
movq 0xc5b5(%rip), %rax      # 0xf690
movslq -0x14(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movzbl (%rax), %eax
andl $0x1, %eax
movl %eax, -0x68(%rbp)
cmpl $0x0, 0xc5ba(%rip)      # 0xf6b0
je 0x3109
cmpl $0x0, -0x68(%rbp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x68(%rbp)
cmpl $0x0, -0x68(%rbp)
je 0x3134
movslq -0x14(%rbp), %rax
leaq 0xbc46(%rip), %rdi      # 0xed60
shlq $0x4, %rax
addq %rax, %rdi
movl -0x64(%rbp), %esi
movl %esi, %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
movl -0x14(%rbp), %edx
callq 0x4070
jmp 0x3136
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x30bb
cmpl $0x0, 0xc559(%rip)      # 0xf6a4
jne 0x3263
cmpl $0x1, 0xc018(%rip)      # 0xf170
jl 0x3263
cmpl $0x3, 0xc00b(%rip)      # 0xf170
jl 0x31d6
movl $0x3, %edi
leaq 0x800a(%rip), %rsi      # 0xb17d
movb $0x0, %al
callq 0x2770
movq 0xc507(%rip), %rax      # 0xf688
movl %eax, %esi
leaq 0x7ffd(%rip), %rdi      # 0xb187
movb $0x0, %al
callq 0x20e0
movl 0xc51d(%rip), %esi      # 0xf6b4
leaq 0x800d(%rip), %rdi      # 0xb1ab
movb $0x0, %al
callq 0x20e0
movl 0xc50d(%rip), %esi      # 0xf6b8
leaq 0x801d(%rip), %rdi      # 0xb1cf
movb $0x0, %al
callq 0x20e0
movq 0xc4c8(%rip), %rax      # 0xf688
movl %eax, %esi
subl 0xc4ec(%rip), %esi      # 0xf6b4
leaq 0x8024(%rip), %rdi      # 0xb1f3
movb $0x0, %al
callq 0x20e0
cmpl $0x0, 0xc4db(%rip)      # 0xf6b8
jne 0x3202
movl $0x4, %edi
leaq 0x802c(%rip), %rsi      # 0xb217
movb $0x0, %al
callq 0x2770
leaq 0x8027(%rip), %rdi      # 0xb220
movb $0x0, %al
callq 0x20e0
jmp 0x324a
movl $0x5, %edi
leaq 0x8030(%rip), %rsi      # 0xb23e
movb $0x0, %al
callq 0x2770
movl 0xc49d(%rip), %esi      # 0xf6b8
movl 0xc493(%rip), %edx      # 0xf6b4
movl 0xc491(%rip), %edi      # 0xf6b8
leaq 0x803d(%rip), %rcx      # 0xb26b
leaq 0x8032(%rip), %rax      # 0xb267
cmpl $0x1, %edi
cmoveq %rax, %rcx
leaq 0x8003(%rip), %rdi      # 0xb246
movb $0x0, %al
callq 0x20e0
cmpl $0x3, 0xbf1f(%rip)      # 0xf170
jl 0x3261
leaq 0x8595(%rip), %rdi      # 0xb7ef
movb $0x0, %al
callq 0x20e0
jmp 0x3263
cmpq $0x0, 0xc455(%rip)      # 0xf6c0
je 0x33de
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x2190
movq %rax, -0x70(%rbp)
movq 0xc438(%rip), %rdi      # 0xf6c0
leaq 0x7fe1(%rip), %rsi      # 0xb270
movb $0x0, %al
callq 0x2170
movq 0xc423(%rip), %rdi      # 0xf6c0
movq -0x70(%rbp), %rdx
movq 0xc3e0(%rip), %rax      # 0xf688
movl %eax, %ecx
movl 0xc407(%rip), %r8d      # 0xf6b8
movl 0xc400(%rip), %r9d      # 0xf6b8
movq 0xc3c9(%rip), %rax      # 0xf688
subl 0xc3ef(%rip), %eax      # 0xf6b4
leaq 0x7fcc(%rip), %rsi      # 0xb298
movl %eax, (%rsp)
movb $0x0, %al
callq 0x2170
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xba78(%rip), %rax      # 0xed60
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x33bd
movq 0xc38f(%rip), %rax      # 0xf690
movslq -0x14(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq 0xc3a9(%rip), %rdi      # 0xf6c0
movslq -0x14(%rbp), %rcx
leaq 0xba3e(%rip), %rax      # 0xed60
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x78(%rbp), %rax
movsd 0x8(%rax), %xmm0
leaq 0x7fa2(%rip), %rsi      # 0xb2de
movb $0x1, %al
callq 0x2170
movq -0x78(%rbp), %rax
movzbl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x3367
movq 0xc367(%rip), %rdi      # 0xf6c0
leaq 0x7fa2(%rip), %rsi      # 0xb302
movb $0x0, %al
callq 0x2170
movq -0x78(%rbp), %rax
movzbl (%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
jne 0x339a
movq -0x78(%rbp), %rax
movzbl (%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
jne 0x339a
movq 0xc334(%rip), %rdi      # 0xf6c0
leaq 0x7f80(%rip), %rsi      # 0xb313
movb $0x0, %al
callq 0x2170
movq 0xc31f(%rip), %rdi      # 0xf6c0
leaq 0x7f7c(%rip), %rsi      # 0xb324
movb $0x0, %al
callq 0x2170
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x32dd
movq 0xc2fc(%rip), %rdi      # 0xf6c0
leaq 0x7f68(%rip), %rsi      # 0xb333
movb $0x0, %al
callq 0x2170
movq 0xc2e7(%rip), %rdi      # 0xf6c0
callq 0x20a0
movq 0xc2ab(%rip), %rdi      # 0xf690
callq 0x22a0
movl 0xc2c8(%rip), %edx      # 0xf6b8
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovel %ecx, %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)