// File: /workspace/github_c_makefile_star2_O1/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 %rbx
xorl %ebx, %ebx
movsd 0x1c13(%rip), %xmm0     # 0x3028
movsd 0x1c13(%rip), %xmm1     # 0x3030
movl $0x2, %edi
movl $0x1, %esi
xorl %edx, %edx
movl $0x1f, %ecx
movaps %xmm1, %xmm2
movaps %xmm1, %xmm3
callq 0x11f6
movsd 0x1bf7(%rip), %xmm1     # 0x3038
movl $0x2, %edi
movl $0x1, %esi
xorl %edx, %edx
movl $0x1, %ecx
movsd 0x1bce(%rip), %xmm0     # 0x3028
movaps %xmm0, %xmm2
movaps %xmm1, %xmm3
callq 0x11f6
movl $0x3, %edi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movsd 0x1bad(%rip), %xmm0     # 0x3028
movaps %xmm0, %xmm1
movaps %xmm0, %xmm2
movaps %xmm0, %xmm3
callq 0x11f6
movsd 0x1baf(%rip), %xmm0     # 0x3040
movsd 0x1baf(%rip), %xmm1     # 0x3048
movsd 0x1baf(%rip), %xmm2     # 0x3050
movsd 0x1baf(%rip), %xmm3     # 0x3058
movl $0x3, %edi
movl $0xf, %esi
movl $0x25, %edx
movl $0x2d, %ecx
callq 0x11f6
movsd 0x1b96(%rip), %xmm0     # 0x3060
movsd 0x1b96(%rip), %xmm1     # 0x3068
movsd 0x1b96(%rip), %xmm2     # 0x3070
movsd 0x1b96(%rip), %xmm3     # 0x3078
movl $0xc, %edi
movl $0x5, %esi
movl $0x1d, %edx
movl $0x2, %ecx
callq 0x11f6
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 0x1b08(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1ade(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1ab4(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1a8a(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1a60(%rip), %xmm0     # 0x3028
callq 0x11f6
movsd 0x1aab(%rip), %xmm0     # 0x3080
movsd 0x1aab(%rip), %xmm1     # 0x3088
movsd 0x1aab(%rip), %xmm3     # 0x3090
movl $0x1, %edi
movl $0x1, %esi
movl $0x186a0, %edx          # imm = 0x186A0
movl $0xf4240, %ecx          # imm = 0xF4240
movaps %xmm1, %xmm2
callq 0x11f6
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 0x1a02(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x19d8(%rip), %xmm1     # 0x3028
callq 0x11f6
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 0x19ae(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1984(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x195a(%rip), %xmm0     # 0x3028
callq 0x11f6
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 0x1930(%rip), %xmm1     # 0x3028
callq 0x11f6
movl 0x3949(%rip), %edi      # 0x504c
testl %edi, %edi
jg 0x170b
movl %ebx, %eax
popq %rbx
retq
callq 0x10b2
movl $0x1, %ebx
jmp 0x1707
nop