// File: /workspace/github_c_makefile_star2_O2/samtools[P]htslib/test/test_kfunc.c
// Function: main
int main(int argc, char **argv)
{
    test_fisher(2, 1, 0, 31,   1.0, 0.005347593583, 0.005347593583, 0.005347593583);
    test_fisher(2, 1, 0, 1,    1.0, 0.5, 1.0, 0.5);
    test_fisher(3, 1, 0, 0,    1.0, 1.0, 1.0, 1.0);
    test_fisher(3, 15, 37, 45, 0.021479750169, 0.995659202564, 0.033161943699, 0.017138952733);
    test_fisher(12, 5, 29, 2,  0.044554737835, 0.994525206022, 0.080268552074, 0.039079943857);

    test_fisher(781, 23171, 4963, 2455001,   1.0, 0.0, 0.0, 0.0);
    test_fisher(333, 381, 801722, 7664285,   1.0, 0.0, 0.0, 0.0);
    test_fisher(4155, 4903, 805463, 8507517, 1.0, 0.0, 0.0, 0.0);
    test_fisher(4455, 4903, 805463, 8507517, 1.0, 0.0, 0.0, 0.0);
    test_fisher(5455, 4903, 805463, 8507517, 1.0, 0.0, 0.0, 0.0);

    test_fisher(1, 1, 100000, 1000000, 0.991735477166, 0.173555146661, 0.173555146661, 0.165290623827);
    test_fisher(1000, 1000, 100000, 1000000, 1.0, 0.0, 0.0, 0.0);
    test_fisher(1000, 1000, 1000000, 100000, 0.0, 1.0, 0.0, 0.0);

    test_fisher(49999, 10001,  90001, 49999, 1.0, 0.0, 0.0, 0.0);
    test_fisher(50000, 10000,  90000, 50000, 1.0, 0.0, 0.0, 0.0);
    test_fisher(50001,  9999,  89999, 50001, 1.0, 0.0, 0.0, 0.0);
    test_fisher(10000, 50000, 130000, 10000, 0.0, 1.0, 0.0, 0.0);

    if (nfailed > 0) {
        const char *plural = (nfailed == 1)? "" : "s";
        fprintf(stderr, "Failed %d test case%s\n", nfailed, plural);
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
pushq $0x2
popq %r14
pushq $0x1
popq %rbx
xorl %ebp, %ebp
pushq $0x1f
popq %rcx
movsd 0x1d01(%rip), %xmm0     # 0x3028
movsd 0x1d01(%rip), %xmm1     # 0x3030
movl %r14d, %edi
movl %ebx, %esi
xorl %edx, %edx
movaps %xmm1, %xmm2
movaps %xmm1, %xmm3
callq 0x11b8
movsd 0x1cef(%rip), %xmm1     # 0x3038
movl %r14d, %edi
movl %ebx, %esi
xorl %edx, %edx
movl %ebx, %ecx
movsd 0x1cce(%rip), %xmm0     # 0x3028
movaps %xmm0, %xmm2
movaps %xmm1, %xmm3
callq 0x11b8
pushq $0x3
popq %r15
movl %r15d, %edi
movl %ebx, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movsd 0x1cae(%rip), %xmm0     # 0x3028
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movaps %xmm0, %xmm3
callq 0x11b8
pushq $0xf
popq %rsi
pushq $0x25
popq %rdx
pushq $0x2d
popq %rcx
movsd 0x1ca7(%rip), %xmm0     # 0x3040
movsd 0x1ca7(%rip), %xmm1     # 0x3048
movsd 0x1ca7(%rip), %xmm2     # 0x3050
movsd 0x1ca7(%rip), %xmm3     # 0x3058
movl %r15d, %edi
callq 0x11b8
pushq $0xc
popq %rdi
pushq $0x5
popq %rsi
pushq $0x1d
popq %rdx
movsd 0x1c96(%rip), %xmm0     # 0x3060
movsd 0x1c96(%rip), %xmm1     # 0x3068
movsd 0x1c96(%rip), %xmm2     # 0x3070
movsd 0x1c96(%rip), %xmm3     # 0x3078
movl %r14d, %ecx
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x30d, %edi            # imm = 0x30D
movl $0x5a83, %esi           # imm = 0x5A83
movl $0x1363, %edx           # imm = 0x1363
movl $0x2575d9, %ecx         # imm = 0x2575D9
movsd 0x1c19(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x14d, %edi            # imm = 0x14D
movl $0x17d, %esi            # imm = 0x17D
movl $0xc3bba, %edx          # imm = 0xC3BBA
movl $0x74f29d, %ecx         # imm = 0x74F29D
movsd 0x1bef(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x103b, %edi           # imm = 0x103B
movl $0x1327, %esi           # imm = 0x1327
movl $0xc4a57, %edx          # imm = 0xC4A57
movl $0x81d07d, %ecx         # imm = 0x81D07D
movsd 0x1bc5(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x1167, %edi           # imm = 0x1167
movl $0x1327, %esi           # imm = 0x1327
movl $0xc4a57, %edx          # imm = 0xC4A57
movl $0x81d07d, %ecx         # imm = 0x81D07D
movsd 0x1b9b(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x154f, %edi           # imm = 0x154F
movl $0x1327, %esi           # imm = 0x1327
movl $0xc4a57, %edx          # imm = 0xC4A57
movl $0x81d07d, %ecx         # imm = 0x81D07D
movsd 0x1b71(%rip), %xmm0     # 0x3028
callq 0x11b8
movsd 0x1bbc(%rip), %xmm0     # 0x3080
movsd 0x1bbc(%rip), %xmm1     # 0x3088
movsd 0x1bbc(%rip), %xmm3     # 0x3090
movl %ebx, %edi
movl %ebx, %esi
movl $0x186a0, %edx          # imm = 0x186A0
movl $0xf4240, %ecx          # imm = 0xF4240
movaps %xmm1, %xmm2
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x3e8, %edi            # imm = 0x3E8
movl $0x3e8, %esi            # imm = 0x3E8
movl $0x186a0, %edx          # imm = 0x186A0
movl $0xf4240, %ecx          # imm = 0xF4240
movsd 0x1b19(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x3e8, %edi            # imm = 0x3E8
movl $0x3e8, %esi            # imm = 0x3E8
movl $0xf4240, %edx          # imm = 0xF4240
movl $0x186a0, %ecx          # imm = 0x186A0
movsd 0x1aef(%rip), %xmm1     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0xc34f, %edi           # imm = 0xC34F
movl $0x2711, %esi           # imm = 0x2711
movl $0x15f91, %edx          # imm = 0x15F91
movl $0xc34f, %ecx           # imm = 0xC34F
movsd 0x1ac5(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0xc350, %edi           # imm = 0xC350
movl $0x2710, %esi           # imm = 0x2710
movl $0x15f90, %edx          # imm = 0x15F90
movl $0xc350, %ecx           # imm = 0xC350
movsd 0x1a9b(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm1, %xmm1
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0xc351, %edi           # imm = 0xC351
movl $0x270f, %esi           # imm = 0x270F
movl $0x15f8f, %edx          # imm = 0x15F8F
movl $0xc351, %ecx           # imm = 0xC351
movsd 0x1a71(%rip), %xmm0     # 0x3028
callq 0x11b8
xorps %xmm0, %xmm0
xorps %xmm2, %xmm2
xorps %xmm3, %xmm3
movl $0x2710, %edi           # imm = 0x2710
movl $0xc350, %esi           # imm = 0xC350
movl $0x1fbd0, %edx          # imm = 0x1FBD0
movl $0x2710, %ecx           # imm = 0x2710
movsd 0x1a47(%rip), %xmm1     # 0x3028
callq 0x11b8
movl 0x3a60(%rip), %edx      # 0x504c
testl %edx, %edx
jg 0x15fd
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x1, %edx
leaq 0x1ab6(%rip), %rax      # 0x30bd
leaq 0x1acb(%rip), %rcx      # 0x30d9
cmoveq %rax, %rcx
movq 0x39c7(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
leaq 0x1ab8(%rip), %rsi      # 0x30db
xorl %eax, %eax
callq 0x1050
movl %ebx, %ebp
jmp 0x15f0
nop