// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/test/test_khash.c
// Function: main
int main(int argc, char **argv) {
    int opt, res = EXIT_SUCCESS;
    char *test = NULL;
    char *input_file = NULL;
    size_t max = 1000;
    double del_frac = 0.25;
    int show_stats = 0;

    while ((opt = getopt(argc, argv, "df:hi:n:t:")) != -1) {
        switch (opt) {
        case 'd':
            show_stats = 1;
            break;
        case 'f':
            del_frac = strtod(optarg, NULL);
            if (del_frac < 0 || del_frac > 1.0) {
                fprintf(stderr, "Error: -d must be between 0.0 and 1.0\n");
                return EXIT_FAILURE;
            }
            break;
        case 'h':
            show_usage(stdout, argv[0]);
            return EXIT_SUCCESS;
        case 'i':
            input_file = optarg;
            break;
        case 'n':
            max = strtoul(optarg, NULL, 0);
            if (max == 0 || max > 99999999) {
                fprintf(stderr, "Error: -n must be between 1 and %u\n",
                        MAX_ENTRIES);
                return EXIT_FAILURE;
            }
            break;
        case 't':
            test = optarg;
            break;
        default:
            show_usage(stderr, argv[0]);
            return EXIT_FAILURE;
        }
    }

    if (!test || strcmp(test, "str2int") == 0) {
        if (test_str2int(max, (size_t) (max * del_frac), show_stats) != 0)
            res = EXIT_FAILURE;
    }

    if (test && strcmp(test, "benchmark") == 0) {
        if (benchmark(input_file) != 0)
            res = EXIT_FAILURE;
    }

    return res;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rsi, %r12
movl %edi, %ebp
movq $0x0, 0x28(%rsp)
movsd 0x1c78(%rip), %xmm0     # 0x3008
movapd %xmm0, 0x40(%rsp)
movl $0x3e8, %eax            # imm = 0x3E8
movq %rax, 0x30(%rsp)
leaq 0x1cbd(%rip), %rbx      # 0x3064
movq 0x3c22(%rip), %r14      # 0x4fd0
leaq 0x1c83(%rip), %r15      # 0x3038
movq $0x0, 0x38(%rsp)
xorl %ecx, %ecx
movl %ecx, %r13d
movl %ebp, %edi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x1040
movl $0x1, %ecx
cmpl $0x64, %eax
je 0x13c0
movl %r13d, 0x10(%rsp)
leal -0x66(%rax), %ecx
cmpl $0x8, %ecx
ja 0x1427
movslq (%r15,%rcx,4), %rax
addq %r15, %rax
jmpq *%rax
movq (%r14), %rdi
xorl %esi, %esi
callq 0x1080
movapd %xmm0, 0x40(%rsp)
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
movl 0x10(%rsp), %ecx
ja 0x2081
movapd 0x40(%rsp), %xmm0
ucomisd 0x1bf0(%rip), %xmm0     # 0x3010
jbe 0x13c0
jmp 0x2081
cmpl $-0x1, %eax
je 0x14bf
cmpl $0x74, %eax
jne 0x1486
movq (%r14), %rax
movq %rax, 0x28(%rsp)
movl 0x10(%rsp), %ecx
jmp 0x13c0
movq (%r14), %rax
movq %rax, 0x38(%rsp)
movl 0x10(%rsp), %ecx
jmp 0x13c0
movq (%r14), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1050
movq %rax, 0x30(%rsp)
movq $-0x5f5e100, %rcx       # imm = 0xFA0A1F00
addq %rcx, %rax
cmpq %rcx, %rax
movl 0x10(%rsp), %ecx
ja 0x13c0
callq 0x11b0
jmp 0x1499
movq 0x3b53(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
movq (%r12), %rsi
callq 0x210e
movl $0x1, %r15d
jmp 0x20f9
movq 0x3b15(%rip), %rax      # 0x4fc0
movq (%rax), %rdi
movq (%r12), %rsi
callq 0x210e
xorl %r15d, %r15d
jmp 0x20f9
movq 0x28(%rsp), %r14
testq %r14, %r14
je 0x14e2
leaq 0x1bea(%rip), %rsi      # 0x30ba
movq %r14, %rdi
callq 0x1100
xorl %ebp, %ebp
testl %eax, %eax
jne 0x1951
movl $0x10, %esi
movq 0x30(%rsp), %r12
movq %r12, %rdi
callq 0x12dc
testq %rax, %rax
je 0x1630
movq %rax, %r13
movl $0x1, %edi
movl $0x28, %esi
callq 0x1070
testq %rax, %rax
je 0x1d82
movq %rax, %r15
testq %r12, %r12
je 0x1588
movl $0x1, %ebx
movq $0x0, 0x18(%rsp)
xorl %esi, %esi
leal -0x1(%rbx), %edx
shlq $0x4, %rsi
addq %r13, %rsi
movq %r15, %rdi
callq 0x21d3
testl %eax, %eax
jne 0x190b
movl %ebx, %esi
incl %ebx
cmpq %rsi, %r12
ja 0x1530
movl $0x1, %ebx
movq $0x0, 0x18(%rsp)
xorl %esi, %esi
leal -0x1(%rbx), %edx
shlq $0x4, %rsi
addq %r13, %rsi
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x2239
testl %eax, %eax
jne 0x190b
movl %ebx, %esi
incl %ebx
cmpq %rsi, %r12
ja 0x1563
cmpl $0x0, 0x10(%rsp)
je 0x15a3
leaq 0x1de2(%rip), %rdi      # 0x3378
callq 0x1130
movq %r15, %rdi
callq 0x23f0
movl $0x1, %esi
movq %r12, %rdi
callq 0x1070
testq %rax, %rax
je 0x1e65
xorps %xmm0, %xmm0
cvtsi2sd %r12, %xmm0
movapd 0x40(%rsp), %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %rdx
subsd 0x1a40(%rip), %xmm1     # 0x3018
movq %rdx, %rcx
cvttsd2si %xmm1, %rsi
sarq $0x3f, %rcx
andq %rcx, %rsi
orq %rdx, %rsi
movq %rsi, 0x78(%rsp)
testq %r12, %r12
movq %r15, 0x8(%rsp)
je 0x163a
leaq -0x1(%r12), %rdx
movq %rdx, %rcx
shrq %rcx
orq %rdx, %rcx
movq %rcx, %rdx
shrq $0x2, %rdx
orq %rcx, %rdx
movq %rdx, %rcx
shrq $0x4, %rcx
orq %rdx, %rcx
movq %rcx, %rdx
shrq $0x8, %rdx
orq %rcx, %rdx
movq %rdx, %rsi
shrq $0x10, %rsi
orl %edx, %esi
jmp 0x163f
movl $0x1, %ebp
jmp 0x1945
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
cmpq $0x0, 0x78(%rsp)
movq %rax, 0x18(%rsp)
je 0x17fa
leaq 0x1(%r13), %rcx
movq %rcx, 0x80(%rsp)
xorl %ecx, %ecx
movl $0x533d, %ebp           # imm = 0x533D
movq %r13, 0x70(%rsp)
movq %rsi, 0x88(%rsp)
movq %rcx, 0x68(%rsp)
movl $0x80000057, %ecx       # imm = 0x80000057
testb $0x1, %bpl
jne 0x1682
xorl %ecx, %ecx
shrl %ebp
xorl %ecx, %ebp
movl %ebp, %r15d
andl %esi, %r15d
decl %r15d
cmpq %r15, %r12
jbe 0x1675
cmpb $0x0, (%rax,%r15)
jne 0x1675
movq %r15, %rax
shlq $0x4, %rax
leaq (%rax,%r13), %rdx
movq 0x8(%rsp), %rcx
movl (%rcx), %esi
testl %esi, %esi
je 0x16da
movb (%rdx), %cl
testb %cl, %cl
je 0x16e2
addq 0x80(%rsp), %rax
movl $0x811c9dc5, %edi       # imm = 0x811C9DC5
movzbl %cl, %ecx
xorl %edi, %ecx
imull $0x1000193, %ecx, %edi  # imm = 0x1000193
movb (%rax), %cl
incq %rax
testb %cl, %cl
jne 0x16c4
jmp 0x16e7
xorl %r14d, %r14d
jmp 0x178e
movl $0x811c9dc5, %edi       # imm = 0x811C9DC5
movq %rsi, 0x90(%rsp)
decl %esi
andl %esi, %edi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %r8
movl $0x1, %ebx
movl %edi, %r14d
movq %rdx, 0x40(%rsp)
movl %edi, 0x60(%rsp)
movl %esi, 0x20(%rsp)
movq %r8, 0x58(%rsp)
movl %r14d, %eax
shrl $0x4, %eax
movl (%r8,%rax,4), %r13d
leal (%r14,%r14), %r12d
andl $0x1e, %r12d
movl %r13d, %eax
movl %r12d, %ecx
shrl %cl, %eax
testb $0x2, %al
jne 0x1778
testb $0x1, %al
jne 0x1766
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movl %r14d, %ecx
movq (%rax,%rcx,8), %rdi
movq %rdx, %rsi
callq 0x1100
movq 0x58(%rsp), %r8
movl 0x20(%rsp), %esi
movl 0x60(%rsp), %edi
movq 0x40(%rsp), %rdx
testl %eax, %eax
je 0x1778
addl %ebx, %r14d
andl %esi, %r14d
incl %ebx
cmpl %edi, %r14d
jne 0x1716
jmp 0x18e4
movl %r12d, %ecx
shrl %cl, %r13d
testb $0x3, %r13b
movq 0x90(%rsp), %rsi
cmovnel %esi, %r14d
cmpl %esi, %r14d
jae 0x18e4
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movl %r14d, %edx
shrl $0x4, %edx
movl (%rax,%rdx,4), %esi
addl %r14d, %r14d
andl $0x1e, %r14d
movl %esi, %edi
movl %r14d, %ecx
shrl %cl, %edi
testb $0x3, %dil
movq 0x68(%rsp), %rcx
jne 0x17d1
btsl %r14d, %esi
movl %esi, (%rax,%rdx,4)
movq 0x8(%rsp), %rax
decl 0x4(%rax)
movq 0x18(%rsp), %rax
movb $0x1, (%rax,%r15)
incl %ecx
cmpq 0x78(%rsp), %rcx
movq 0x30(%rsp), %r12
movq 0x70(%rsp), %r13
movq 0x88(%rsp), %rsi
jb 0x1670
testq %r12, %r12
movq 0x28(%rsp), %r14
movq 0x8(%rsp), %r15
je 0x183f
movl $0x1, %ebx
xorl %ecx, %ecx
leal -0x1(%rbx), %edx
movq %rcx, %rsi
shlq $0x4, %rsi
addq %r13, %rsi
movzbl (%rax,%rcx), %ecx
movq %r15, %rdi
callq 0x2239
testl %eax, %eax
jne 0x190b
movl %ebx, %ecx
incl %ebx
cmpq %rcx, %r12
movq 0x18(%rsp), %rax
ja 0x1810
cmpl $0x0, 0x10(%rsp)
je 0x185a
leaq 0x1b39(%rip), %rdi      # 0x3386
callq 0x1130
movq %r15, %rdi
callq 0x23f0
testq %r12, %r12
je 0x18bd
movl $0x1, %ebx
xorl %esi, %esi
movq 0x18(%rsp), %rcx
cmpb $0x0, (%rcx,%rsi)
je 0x188c
leal -0x1(%rbx), %edx
shlq $0x4, %rsi
addq %r13, %rsi
movq %r15, %rdi
callq 0x21d3
movq 0x18(%rsp), %rcx
testl %eax, %eax
jne 0x190b
movl %ebx, %esi
incl %ebx
cmpq %rsi, %r12
ja 0x186b
movl $0x1, %ebx
xorl %esi, %esi
leal -0x1(%rbx), %edx
shlq $0x4, %rsi
addq %r13, %rsi
movq %r15, %rdi
xorl %ecx, %ecx
callq 0x2239
testl %eax, %eax
jne 0x190b
movl %ebx, %esi
incl %ebx
cmpq %rsi, %r12
ja 0x189c
cmpl $0x0, 0x10(%rsp)
je 0x18d8
leaq 0x1acc(%rip), %rdi      # 0x3397
callq 0x1130
movq %r15, %rdi
callq 0x23f0
movq %r15, %rdi
callq 0x25ee
xorl %ebp, %ebp
jmp 0x1933
movq 0x36f5(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
leaq 0x1a0c(%rip), %rsi      # 0x3301
xorl %eax, %eax
callq 0x1110
movq 0x28(%rsp), %r14
movq 0x70(%rsp), %r13
movq 0x8(%rsp), %r15
movq 0x18(%r15), %rdi
callq 0x10e0
movq 0x10(%r15), %rdi
callq 0x10e0
movq 0x20(%r15), %rdi
callq 0x10e0
movq %r15, %rdi
callq 0x10e0
movl $0x1, %ebp
movq %r13, %rdi
callq 0x10e0
movq 0x18(%rsp), %rdi
callq 0x10e0
movl %ebp, %r15d
testq %r14, %r14
je 0x20f9
leaq 0x176a(%rip), %rsi      # 0x30c2
movq %r14, %rdi
callq 0x1100
testl %eax, %eax
je 0x196c
movl %ebp, %r15d
jmp 0x20f9
movq 0x38(%rsp), %r12
testq %r12, %r12
je 0x1a83
leaq 0x19ca(%rip), %rsi      # 0x334b
movq %r12, %rdi
callq 0x10d0
movq %rax, %r13
leaq 0x98(%rsp), %rdi
xorl %ebx, %ebx
movl $0x90, %edx
xorl %esi, %esi
callq 0x1060
testq %r13, %r13
je 0x1aa4
movl %ebp, 0x28(%rsp)
movq %r13, %rdi
callq 0x10b0
leaq 0x98(%rsp), %rbx
movl %eax, %edi
movq %rbx, %rsi
callq 0x1170
movq 0x30(%rbx), %r12
cmpq $0xf4241, %r12          # imm = 0xF4241
movl $0xf4240, %ecx          # imm = 0xF4240
cmovbq %rcx, %r12
testl %eax, %eax
cmovnsq %rcx, %r12
leaq 0x1(%r12), %rdi
callq 0x10f0
testq %rax, %rax
je 0x1ab2
movq %r13, 0x8(%rsp)
movq %rax, %r15
xorl %r13d, %r13d
movq %r13, %rbp
movq %r12, %r14
subq %r13, %r14
je 0x1a16
movq %r15, %rax
movq 0x8(%rsp), %r13
jmp 0x1a41
leaq 0xf4241(%r12), %rsi
movq %r15, %rdi
callq 0x1160
testq %rax, %rax
movq 0x8(%rsp), %r13
je 0x1ab5
addq $0xf4240, %r12          # imm = 0xF4240
movq %r12, %r14
subq %rbp, %r14
movq %rax, %r15
leaq (%rax,%rbp), %rdi
movl $0x1, %esi
movq %r14, %rdx
movq %r13, %rcx
callq 0x1120
leaq (%rax,%rbp), %r13
cmpq %r14, %rax
je 0x1a01
movq %rax, %rbx
movb $0x0, (%r15,%r13)
movq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x1180
testl %eax, %eax
je 0x1d97
movq %r14, %r13
jmp 0x1ab5
movl $0x2faf080, %eax        # imm = 0x2FAF080
movq %rax, 0x8(%rsp)
movl $0x2faf080, %edi        # imm = 0x2FAF080
movl $0x10, %esi
callq 0x12dc
movq %rax, %rbx
xorl %r13d, %r13d
jmp 0x1adc
xorl %r13d, %r13d
movq $0x0, 0x8(%rsp)
jmp 0x1adc
xorl %r15d, %r15d
movq %r13, %rdi
callq 0x10a0
movl 0x28(%rsp), %ebp
movq %r15, %rdi
callq 0x10e0
xorl %ebx, %ebx
xorl %r13d, %r13d
movq $0x0, 0x8(%rsp)
movq 0x38(%rsp), %r12
movl $0x1, %r15d
testq %rbx, %rbx
je 0x20f9
movl $0x1, %edi
movl $0x28, %esi
callq 0x1070
testq %rax, %rax
je 0x20f1
movq %rax, 0x10(%rsp)
callq 0x2ad6
testq %rax, %rax
js 0x20c3
movq %rax, 0x40(%rsp)
movq %rbx, 0x20(%rsp)
testq %r12, %r12
je 0x1b76
cmpq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %r15
je 0x1bc5
xorl %r14d, %r14d
leaq 0x98(%rsp), %rbx
movq (%r13,%r14,8), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x261c
movl 0x98(%rsp), %ecx
testl %ecx, %ecx
js 0x208b
movq 0x20(%r15), %rcx
movl %eax, %eax
movl %r14d, (%rcx,%rax,4)
incq %r14
cmpq %r14, 0x8(%rsp)
jne 0x1b41
jmp 0x1bc5
cmpq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rbx
je 0x1bc5
xorl %r15d, %r15d
movq 0x20(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
leaq 0x98(%rsp), %rdx
callq 0x261c
movl 0x98(%rsp), %ecx
testl %ecx, %ecx
jle 0x20a3
movq 0x20(%rbx), %rcx
movl %eax, %eax
movl %r15d, (%rcx,%rax,4)
incq %r15
addq $0x10, %r14
cmpq %r15, 0x8(%rsp)
jne 0x1b8b
callq 0x2ad6
movq %rax, %r8
testq %rax, %rax
movq 0x20(%rsp), %rbx
movq 0x40(%rsp), %rax
js 0x20c3
subq %rax, %r8
movabsq $0x431bde82d7b634db, %rcx # imm = 0x431BDE82D7B634DB
movq %r8, %rax
imulq %rcx
movq %rdx, %rcx
shrq $0x3f, %rcx
sarq $0x12, %rdx
addq %rdx, %rcx
imulq $0xf4240, %rcx, %rax    # imm = 0xF4240
subq %rax, %r8
leaq 0x34de(%rip), %rbx      # 0x50f0
leaq 0x1741(%rip), %rdx      # 0x335a
movl $0x40, %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1140
leaq 0x16fe(%rip), %rdi      # 0x332d
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
movq 0x20(%rsp), %rbx
xorl %eax, %eax
callq 0x1030
callq 0x2ad6
testq %rax, %rax
js 0x20c3
movq %rax, 0x68(%rsp)
movq %r13, 0x38(%rsp)
movl %ebp, 0x28(%rsp)
testq %r12, %r12
je 0x1e7f
cmpq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdx
je 0x1fa2
movl (%rdx), %ecx
leal -0x1(%rcx), %esi
xorl %edi, %edi
movq %rcx, 0x30(%rsp)
movl %esi, 0x60(%rsp)
movq 0x38(%rsp), %rax
movq %rdi, 0x58(%rsp)
movq (%rax,%rdi,8), %rbx
movl $0x0, %r13d
testl %ecx, %ecx
je 0x1d57
movb (%rbx), %cl
testb %cl, %cl
je 0x1ccd
leaq 0x1(%rbx), %rax
movl $0x811c9dc5, %r15d      # imm = 0x811C9DC5
movzbl %cl, %ecx
xorl %r15d, %ecx
imull $0x1000193, %ecx, %r15d # imm = 0x1000193
movb (%rax), %cl
incq %rax
testb %cl, %cl
jne 0x1cb5
jmp 0x1cd3
movl $0x811c9dc5, %r15d      # imm = 0x811C9DC5
andl %esi, %r15d
movq 0x10(%rdx), %rdi
movl $0x1, %ebp
movl %r15d, %r13d
movq %rdi, 0x40(%rsp)
movl %r13d, %eax
shrl $0x4, %eax
movl (%rdi,%rax,4), %r12d
leal (,%r13,2), %r14d
andl $0x1e, %r14d
movl %r12d, %eax
movl %r14d, %ecx
shrl %cl, %eax
testb $0x2, %al
jne 0x1d44
testb $0x1, %al
jne 0x1d32
movq 0x18(%rdx), %rax
movl %r13d, %ecx
movq (%rax,%rcx,8), %rdi
movq %rbx, %rsi
callq 0x1100
movq 0x40(%rsp), %rdi
movl 0x60(%rsp), %esi
movq 0x10(%rsp), %rdx
testl %eax, %eax
je 0x1d44
addl %ebp, %r13d
andl %esi, %r13d
incl %ebp
cmpl %r15d, %r13d
jne 0x1ce7
jmp 0x204c
movl %r14d, %ecx
shrl %cl, %r12d
testb $0x3, %r12b
movq 0x30(%rsp), %rcx
cmovnel %ecx, %r13d
cmpl %ecx, %r13d
jae 0x204c
movq 0x58(%rsp), %rdi
incq %rdi
cmpq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rbx
movq 0x30(%rsp), %rcx
jne 0x1c89
jmp 0x1fa2
movq $0x0, 0x18(%rsp)
xorl %edi, %edi
callq 0x1090
jmp 0x192e
movq %r14, %rdi
callq 0x10a0
testl %eax, %eax
js 0x1a7e
movq %r15, %rax
addq %r15, %r13
addq %rbp, %rbx
leaq (%r15,%rbx), %r14
incq %r14
xorl %ebx, %ebx
movl 0x28(%rsp), %ebp
movq %r14, %rdx
subq %rax, %rdx
decq %rax
decq %rdx
cmpb $0xa, 0x1(%rax)
leaq 0x1(%rax), %rax
je 0x1dc6
cmpq %r13, %rax
adcq $0x0, %rbx
movq %rax, %rdi
movl $0xa, %esi
callq 0x10c0
testq %rax, %rax
jne 0x1dbd
shlq $0x3, %rbx
movq %rbx, %rdi
callq 0x10f0
testq %rax, %rax
je 0x1ac1
movq %rax, %r14
movq $0x0, 0x8(%rsp)
movq %r15, %rbx
movq %r15, %rax
cmpb $0xa, (%rax)
jne 0x1e2a
leaq 0x1(%rax), %rdi
movb $0x0, (%rax)
cmpb $0xa, 0x1(%rax)
movq %rdi, %rax
je 0x1e18
jmp 0x1e2d
movq %rax, %rdi
cmpq %r13, %rdi
jae 0x1e43
movq 0x8(%rsp), %rax
movq %rdi, (%r14,%rax,8)
incq %rax
movq %rax, 0x8(%rsp)
movq %r13, %rdx
subq %rdi, %rdx
movl $0xa, %esi
callq 0x10c0
testq %rax, %rax
jne 0x1e13
movq 0x38(%rsp), %r12
movq %r14, %r13
jmp 0x1adc
leaq 0x12be(%rip), %rdi      # 0x312a
callq 0x1090
movq $0x0, 0x18(%rsp)
jmp 0x190b
cmpq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdx
je 0x1fa2
movl (%rdx), %eax
leal -0x1(%rax), %esi
leaq 0x1(%rbx), %rcx
movq %rcx, 0x18(%rsp)
xorl %ecx, %ecx
movq %rax, 0x30(%rsp)
movq %rcx, 0x58(%rsp)
shlq $0x4, %rcx
addq %rbx, %rcx
movq %rcx, 0x40(%rsp)
movl $0x0, %r13d
testl %eax, %eax
je 0x1f76
movq 0x40(%rsp), %rax
movb (%rax), %al
movl $0x811c9dc5, %r12d      # imm = 0x811C9DC5
testb %al, %al
je 0x1ef0
movq 0x18(%rsp), %rcx
movzbl %al, %eax
xorl %r12d, %eax
imull $0x1000193, %eax, %r12d # imm = 0x1000193
movb (%rcx), %al
incq %rcx
testb %al, %al
jne 0x1eda
andl %esi, %r12d
movq 0x10(%rdx), %rdi
movl $0x1, %ebp
movl %r12d, %r13d
movq %rdi, 0x60(%rsp)
movl %r13d, %eax
shrl $0x4, %eax
movl (%rdi,%rax,4), %r15d
leal (,%r13,2), %r14d
andl $0x1e, %r14d
movl %r15d, %eax
movl %r14d, %ecx
shrl %cl, %eax
testb $0x2, %al
jne 0x1f63
testb $0x1, %al
jne 0x1f51
movq 0x18(%rdx), %rax
movl %r13d, %ecx
movq (%rax,%rcx,8), %rdi
movl %esi, %ebx
movq 0x40(%rsp), %rsi
callq 0x1100
movq 0x60(%rsp), %rdi
movl %ebx, %esi
movq 0x10(%rsp), %rdx
testl %eax, %eax
je 0x1f63
addl %ebp, %r13d
andl %esi, %r13d
incl %ebp
cmpl %r12d, %r13d
jne 0x1f04
jmp 0x2062
movl %r14d, %ecx
shrl %cl, %r15d
testb $0x3, %r15b
movq 0x30(%rsp), %rax
cmovnel %eax, %r13d
cmpl %eax, %r13d
jae 0x2062
movq 0x58(%rsp), %rcx
incq %rcx
addq $0x10, 0x18(%rsp)
cmpq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rbx
movq 0x30(%rsp), %rax
jne 0x1ea5
callq 0x2ad6
movq %rax, %r8
testq %rax, %rax
movl 0x28(%rsp), %ebp
movq 0x38(%rsp), %r15
movq 0x68(%rsp), %rax
js 0x20c3
subq %rax, %r8
movq %r8, %rax
movabsq $0x431bde82d7b634db, %rcx # imm = 0x431BDE82D7B634DB
imulq %rcx
movq %rdx, %rcx
shrq $0x3f, %rcx
sarq $0x12, %rdx
addq %rdx, %rcx
imulq $0xf4240, %rcx, %rax    # imm = 0xF4240
subq %rax, %r8
movq %rbx, %r14
leaq 0x30fa(%rip), %rbx      # 0x50f0
leaq 0x135d(%rip), %rdx      # 0x335a
movl $0x40, %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1140
leaq 0x1329(%rip), %rdi      # 0x333c
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1030
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x23f0
movq %rbx, %rdi
callq 0x25ee
movq %r14, %rdi
callq 0x10e0
movq %r15, %rdi
callq 0x10e0
jmp 0x1964
movq 0x2f8d(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
leaq 0x11e6(%rip), %rsi      # 0x3243
movq %rbx, %rdx
jmp 0x2078
movq 0x2f77(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
leaq 0x11d0(%rip), %rsi      # 0x3243
movq 0x40(%rsp), %rdx
xorl %eax, %eax
callq 0x1110
jmp 0x20be
callq 0x11cd
jmp 0x1499
movq 0x2f4e(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
movq (%r13,%r14,8), %rdx
leaq 0x1154(%rip), %rsi      # 0x31f5
jmp 0x20b7
movq 0x2f36(%rip), %rax      # 0x4fe0
movq (%rax), %rdi
leaq 0x1141(%rip), %rsi      # 0x31f5
movq %r14, %rdx
xorl %eax, %eax
callq 0x1110
movq 0x20(%rsp), %rbx
movq 0x10(%rsp), %r14
movq 0x18(%r14), %rdi
callq 0x10e0
movq 0x10(%r14), %rdi
callq 0x10e0
movq 0x20(%r14), %rdi
callq 0x10e0
movq %r14, %rdi
callq 0x10e0
movl $0x1, %r15d
movq %rbx, %rdi
callq 0x10e0
movl %r15d, %eax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq