// File: /workspace/github_c_makefile_star2_O2/samtools[P]htslib/test/test_time_funcs.c
// Function: main
int main(int argc, char **argv) {
    int res = 0;

    if (test_normalised(0, INT_MAX - 1000, 1000) != 0)
        return EXIT_FAILURE;
    if (sizeof(time_t) >= 8) {
        if (test_normalised(INT_MAX - 1000,
                            (time_t)((int64_t) INT_MAX * 2), 1000) != 0)
            return EXIT_FAILURE;
    }

    // 2022-06-14 12:32:10
    res |= test_specific(2022, 6, 14, 12, 32, 10, 1655209930);
    // 2022-06-14 12:32:10
    res |= test_specific(1993, 9, 10514, 12, 32, 10, 1655209930);
    // 2022-02-28 12:00:00
    res |= test_specific(2020, 2, 28, 12, 0, 0, 1582891200);
    // 2022-02-29 12:00:00
    res |= test_specific(2020, 2, 29, 12, 0, 0, 1582977600);
    // 2022-03-01 12:00:00
    res |= test_specific(2020, 2, 30, 12, 0, 0, 1583064000);
    // 2022-02-29 12:00:00
    res |= test_specific(2020, 3, 0, 12, 0, 0, 1582977600);
    // 2020-02-01 12:00:00
    res |= test_specific(2019, 14, 1, 12, 0, 0, 1580558400);
    // 2020-03-01 12:00:00
    res |= test_specific(2019, 15, 1, 12, 0, 0, 1583064000);
    // 2021-03-01 12:00:00
    res |= test_specific(2019, 27, 1, 12, 0, 0, 1614600000);
    // 2024-02-01 12:00:00
    res |= test_specific(2019, 62, 1, 12, 0, 0, 1706788800);
    // 2024-03-01 12:00:00
    res |= test_specific(2019, 63, 1, 12, 0, 0, 1709294400);
    // 2020-12-31 23:59:59
    res |= test_specific(2021, 0, 31, 23, 59, 59, 1609459199);
    // 2020-03-01 12:00:00
    res |= test_specific(2021, -9, 1, 12, 0, 0, 1583064000);
    // 2020-02-01 12:00:00
    res |= test_specific(2021, -10, 1, 12, 0, 0, 1580558400);
    // 2019-02-01 12:00:00
    res |= test_specific(2021, -22, 1, 12, 0, 0, 1549022400);
    // 1970-01-01 00:00:00
    res |= test_specific(1970, 1, 1, 0, 0, 0, 0);
    // 2038-01-19 03:14:07
    res |= test_specific(1970, 1, 1, 0, 0, INT_MAX, INT_MAX);
    // 2038-01-19 03:14:07
    res |= test_specific(2038, 1, 19, 3, 14, 7, INT_MAX);
    if (sizeof(time_t) < 8) {
        // 2038-01-19 03:14:08
        res |= test_specific(2038, 1, 19, 3, 14, 8, (time_t) -1);
    } else {
        // 2038-01-19 03:14:08
        res |= test_specific(2038, 1, 19, 3, 14, 8,
                             (time_t)((int64_t) INT_MAX + 1));
    }

    return res == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl $0x7ffffc17, %esi       # imm = 0x7FFFFC17
movl $0x3e8, %edx            # imm = 0x3E8
xorl %edi, %edi
callq 0x115c
pushq $0x1
popq %rbx
testl %eax, %eax
jne 0x17ed
movl $0x80000000, %eax       # imm = 0x80000000
leaq 0x7ffffffe(%rax), %rsi
movl $0x7ffffc17, %edi       # imm = 0x7FFFFC17
movl $0x3e8, %edx            # imm = 0x3E8
callq 0x115c
testl %eax, %eax
jne 0x17ed
movl $0x62a87fca, %ebx       # imm = 0x62A87FCA
movq %rbx, (%rsp)
pushq $0x6
popq %rsi
pushq $0xe
popq %rdx
pushq $0xc
popq %rbp
pushq $0x20
popq %r14
pushq $0xa
popq %r15
movl $0x7e6, %edi            # imm = 0x7E6
movl %ebp, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
callq 0x1412
movl %eax, %r12d
movq %rbx, (%rsp)
pushq $0x9
popq %rsi
movl $0x7c9, %edi            # imm = 0x7C9
movl $0x2912, %edx           # imm = 0x2912
movl %ebp, %ecx
movl %r14d, %r8d
movl %r15d, %r9d
callq 0x1412
movl %eax, %r14d
orl %r12d, %r14d
movq $0x5e5900c0, (%rsp)     # imm = 0x5E5900C0
pushq $0x2
popq %r15
pushq $0x1c
popq %rdx
movl $0x7e4, %edi            # imm = 0x7E4
movl %r15d, %esi
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r13d
movl $0x5e5a5240, %ebx       # imm = 0x5E5A5240
movq %rbx, (%rsp)
pushq $0x1d
popq %rdx
movl $0x7e4, %edi            # imm = 0x7E4
movl %r15d, %esi
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r12d
orl %r13d, %r12d
orl %r14d, %r12d
movl $0x5e5ba3c0, %r14d      # imm = 0x5E5BA3C0
movq %r14, (%rsp)
pushq $0x1e
popq %rdx
movl $0x7e4, %edi            # imm = 0x7E4
movl %r15d, %esi
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r15d
movq %rbx, (%rsp)
pushq $0x3
popq %rsi
movl $0x7e4, %edi            # imm = 0x7E4
xorl %edx, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %ebx
orl %r15d, %ebx
movl $0x5e356840, %eax       # imm = 0x5E356840
movq %rax, (%rsp)
pushq $0x1
popq %r15
movl $0x7e3, %edi            # imm = 0x7E3
pushq $0xe
popq %rsi
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r13d
orl %ebx, %r13d
orl %r12d, %r13d
movq %r14, (%rsp)
pushq $0xf
popq %rsi
movl $0x7e3, %edi            # imm = 0x7E3
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %ebx
movq $0x603cd740, (%rsp)     # imm = 0x603CD740
pushq $0x1b
popq %rsi
movl $0x7e3, %edi            # imm = 0x7E3
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r12d
orl %ebx, %r12d
movq $0x65bb87c0, (%rsp)     # imm = 0x65BB87C0
pushq $0x3e
popq %rsi
movl $0x7e3, %edi            # imm = 0x7E3
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %ebx
orl %r12d, %ebx
movq $0x65e1c340, (%rsp)     # imm = 0x65E1C340
pushq $0x3f
popq %rsi
movl $0x7e3, %edi            # imm = 0x7E3
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r12d
orl %ebx, %r12d
orl %r13d, %r12d
movq $0x5fee65ff, (%rsp)     # imm = 0x5FEE65FF
pushq $0x1f
popq %rdx
pushq $0x17
popq %rcx
pushq $0x3b
popq %r8
movl $0x7e5, %edi            # imm = 0x7E5
xorl %esi, %esi
movl %r8d, %r9d
callq 0x1412
movl %eax, %ebx
movq %r14, (%rsp)
pushq $-0x9
popq %rsi
movl $0x7e5, %edi            # imm = 0x7E5
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r13d
orl %ebx, %r13d
movl $0x5e356840, %eax       # imm = 0x5E356840
movq %rax, (%rsp)
pushq $-0xa
popq %rsi
movl $0x7e5, %edi            # imm = 0x7E5
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %ebx
orl %r13d, %ebx
movq $0x5c5434c0, (%rsp)     # imm = 0x5C5434C0
pushq $-0x16
popq %rsi
movl $0x7e5, %edi            # imm = 0x7E5
movl %r15d, %edx
movl %ebp, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %r13d
orl %ebx, %r13d
andq $0x0, (%rsp)
movl $0x7b2, %edi            # imm = 0x7B2
movl %r15d, %esi
movl %r15d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x1412
movl %eax, %ebp
orl %r13d, %ebp
orl %r12d, %ebp
movl $0x7fffffff, %r14d      # imm = 0x7FFFFFFF
movq %r14, (%rsp)
movl $0x7b2, %edi            # imm = 0x7B2
movl %r15d, %esi
movl %r15d, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
callq 0x1412
movl %eax, %ebx
movq %r14, (%rsp)
pushq $0x13
popq %rdx
pushq $0x7
popq %r9
movl $0x7f6, %edi            # imm = 0x7F6
movl %r15d, %esi
pushq $0x3
popq %r12
movl %r12d, %ecx
pushq $0xe
popq %r14
movl %r14d, %r8d
callq 0x1412
movl %eax, %r13d
orl %ebx, %r13d
orl %ebp, %r13d
movl $0x80000000, %eax       # imm = 0x80000000
movq %rax, (%rsp)
pushq $0x8
popq %r9
movl $0x7f6, %edi            # imm = 0x7F6
movl %r15d, %esi
pushq $0x13
popq %rdx
movl %r12d, %ecx
movl %r14d, %r8d
callq 0x1412
xorl %ebx, %ebx
orl %r13d, %eax
setne %bl
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq