// File: /workspace/github_c_makefile_star2_O1/samtools[P]htslib/tabix.c
// Function: main
int main(int argc, char *argv[])
{
    int c, detect = 1, min_shift = 0, is_force = 0, list_chroms = 0, do_csi = 0;
    tbx_conf_t conf = tbx_conf_gff;
    char *reheader = NULL;
    args_t args;
    memset(&args,0,sizeof(args_t));
    args.cache_megs = 10;
    args.download_index = 1;
    int32_t new_line_skip = -1;

    static const struct option loptions[] =
    {
        {"help", no_argument, NULL, 2},
        {"regions", required_argument, NULL, 'R'},
        {"targets", required_argument, NULL, 'T'},
        {"csi", no_argument, NULL, 'C'},
        {"zero-based", no_argument, NULL, '0'},
        {"print-header", no_argument, NULL, 'h'},
        {"only-header", no_argument, NULL, 'H'},
        {"begin", required_argument, NULL, 'b'},
        {"comment", required_argument, NULL, 'c'},
        {"end", required_argument, NULL, 'e'},
        {"force", no_argument, NULL, 'f'},
        {"min-shift", required_argument, NULL, 'm'},
        {"preset", required_argument, NULL, 'p'},
        {"sequence", required_argument, NULL, 's'},
        {"skip-lines", required_argument, NULL, 'S'},
        {"list-chroms", no_argument, NULL, 'l'},
        {"reheader", required_argument, NULL, 'r'},
        {"version", no_argument, NULL, 1},
        {"verbosity", required_argument, NULL, 3},
        {"cache", required_argument, NULL, 4},
        {"separate-regions", no_argument, NULL, 5},
        {"threads", required_argument, NULL, '@'},
        {NULL, 0, NULL, 0}
    };

    char *tmp;
    while ((c = getopt_long(argc, argv, "hH?0b:c:e:fm:p:s:S:lr:CR:T:D@:", loptions,NULL)) >= 0)
    {
        switch (c)
        {
            case 'R': args.regions_fname = optarg; break;
            case 'T': args.targets_fname = optarg; break;
            case 'C': do_csi = 1; break;
            case 'r': reheader = optarg; break;
            case 'h': args.print_header = 1; break;
            case 'H': args.print_header = 1; args.header_only = 1; break;
            case 'l': list_chroms = 1; break;
            case '0': conf.preset |= TBX_UCSC; detect = 0; break;
            case 'b':
                conf.bc = strtol(optarg,&tmp,10);
                if ( *tmp ) error("Could not parse argument: -b %s\n", optarg);
                detect = 0;
                break;
            case 'e':
                conf.ec = strtol(optarg,&tmp,10);
                if ( *tmp ) error("Could not parse argument: -e %s\n", optarg);
                detect = 0;
                break;
            case 'c': conf.meta_char = *optarg; detect = 0; break;
            case 'f': is_force = 1; break;
            case 'm':
                min_shift = strtol(optarg,&tmp,10);
                if ( *tmp ) error("Could not parse argument: -m %s\n", optarg);
                break;
            case 'p':
                detect = 0;
                if (strcmp(optarg, "gff") == 0) conf = tbx_conf_gff;
                else if (strcmp(optarg, "bed") == 0) conf = tbx_conf_bed;
                else if (strcmp(optarg, "sam") == 0) conf = tbx_conf_sam;
                else if (strcmp(optarg, "vcf") == 0) conf = tbx_conf_vcf;
                else if (strcmp(optarg, "gaf") == 0) conf = tbx_conf_gaf;
                else if (strcmp(optarg, "bcf") == 0) detect = 1; // bcf is autodetected, preset is not needed
                else if (strcmp(optarg, "bam") == 0) detect = 1; // same as bcf
                else error("The preset string not recognised: '%s'\n", optarg);
                break;
            case 's':
                conf.sc = strtol(optarg,&tmp,10);
                if ( *tmp ) error("Could not parse argument: -s %s\n", optarg);
                detect = 0;
                break;
            case 'S':
                new_line_skip = strtol(optarg,&tmp,10);
                if ( *tmp ) error("Could not parse argument: -S %s\n", optarg);
                detect = 0;
                break;
            case 'D':
                args.download_index = 0;
                break;
            case 1:
                printf(
"tabix (htslib) %s\n"
"Copyright (C) 2025 Genome Research Ltd.\n", hts_version());
                return EXIT_SUCCESS;
            case 2:
                return usage(stdout, EXIT_SUCCESS);
            case 3: {
                int v = atoi(optarg);
                if (v < 0) v = 0;
                hts_set_log_level(v);
                break;
            }
            case 4:
                args.cache_megs = atoi(optarg);
                if (args.cache_megs < 0) {
                    args.cache_megs = 0;
                } else if (args.cache_megs >= INT_MAX / 1048576) {
                    args.cache_megs = INT_MAX / 1048576;
                }
                break;
            case 5:
                args.separate_regs = 1;
                break;
            case '@':   //thread count
                args.threads = atoi(optarg);
                break;
            default: return usage(stderr, EXIT_FAILURE);
        }
    }

    if (new_line_skip >= 0)
        conf.line_skip = new_line_skip;

    if ( optind==argc ) return usage(stderr, EXIT_FAILURE);

    if ( list_chroms )
        return query_chroms(argv[optind], args.download_index);

    char *fname = argv[optind];
    int ftype = file_type(fname);
    if ( detect )  // no preset given
    {
        if ( ftype==IS_GFF ) conf = tbx_conf_gff;
        else if ( ftype==IS_BED ) conf = tbx_conf_bed;
        else if ( ftype==IS_GAF ) conf = tbx_conf_gaf;
        else if ( ftype==IS_SAM ) conf = tbx_conf_sam;
        else if ( ftype==IS_VCF )
        {
            conf = tbx_conf_vcf;
            if ( !min_shift && do_csi ) min_shift = 14;
        }
        else if ( ftype==IS_BCF )
        {
            if ( !min_shift ) min_shift = 14;
        }
        else if ( ftype==IS_BAM )
        {
            if ( !min_shift ) min_shift = 14;
        }
    }
    if ( argc > optind+1 || args.header_only || args.regions_fname || args.targets_fname )
    {
        int nregs = 0;
        char **regs = NULL;
        if ( !args.header_only )
            regs = parse_regions(args.regions_fname, argv+optind+1, argc-optind-1, &nregs);
        return query_regions(&args, &conf, fname, regs, nregs);
    }
    if ( do_csi )
    {
        if ( !min_shift ) min_shift = 14;
        min_shift *= do_csi;  // positive for CSIv2, negative for CSIv1
    }
    if ( min_shift!=0 && !do_csi ) do_csi = 1;

    if ( reheader )
        return reheader_file(fname, reheader, ftype, &conf, args.threads);

    char *suffix = ".tbi";
    if ( do_csi ) suffix = ".csi";
    else if ( ftype==IS_BAM ) suffix = ".bai";
    else if ( ftype==IS_CRAM ) suffix = ".crai";

    char *idx_fname = calloc(strlen(fname) + 6, 1);
    if (!idx_fname) error("%s\n", strerror(errno));
    strcat(strcpy(idx_fname, fname), suffix);

    struct stat stat_tbi, stat_file;
    if ( !is_force && stat(idx_fname, &stat_tbi)==0 )
    {
        // Before complaining about existing index, check if the VCF file isn't
        // newer. This is a common source of errors, people tend not to notice
        // that tabix failed
        stat(fname, &stat_file);
        if ( stat_file.st_mtime <= stat_tbi.st_mtime )
            error("[tabix] the index file exists. Please use '-f' to overwrite.\n");
    }
    free(idx_fname);

    int ret;
    if ( ftype==IS_CRAM )
    {
        if ( bam_index_build3(fname, min_shift, args.threads)!=0 ) error("bam_index_build failed: %s\n", fname);
        return 0;
    }
    else if ( do_csi )
    {
        if ( ftype==IS_BCF )
        {
            if ( bcf_index_build3(fname, NULL, min_shift, args.threads)!=0 ) error("bcf_index_build failed: %s\n", fname);
            return 0;
        }
        if ( ftype==IS_BAM )
        {
            if ( bam_index_build3(fname, min_shift, args.threads)!=0 ) error("bam_index_build failed: %s\n", fname);
            return 0;
        }

        switch (ret = tbx_index_build3(fname, NULL, min_shift, args.threads, &conf))
        {
            case 0:
                return 0;
            case -2:
                error("[tabix] the compression of '%s' is not BGZF\n", fname);
            default:
                error("tbx_index_build3 failed: %s\n", fname);
        }
    }
    else    // TBI index
    {
        switch (ret = tbx_index_build3(fname, NULL, min_shift, args.threads, &conf))
        {
            case 0:
                return 0;
            case -2:
                error("[tabix] the compression of '%s' is not BGZF\n", fname);
            default:
                error("tbx_index_build3 failed: %s\n", fname);
        }
    }

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movl %edi, %r13d
leaq 0xabd7a(%rip), %rax     # 0xb24a0
movq 0x10(%rax), %rcx
movq %rcx, 0xa0(%rsp)
movq %rcx, 0x50(%rsp)
movups (%rax), %xmm0
movaps %xmm0, 0xb0(%rsp)
movaps %xmm0, 0x40(%rsp)
leaq 0xa6bdb(%rip), %rdx     # 0xad329
leaq 0xccccb(%rip), %rcx     # 0xd3420
movq %rsi, 0x18(%rsp)
xorl %r8d, %r8d
callq 0x48a0
testl %eax, %eax
js 0x6c0c
movl $0xa, 0x74(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl $0x1, 0x4(%rsp)
leaq 0xa6ba2(%rip), %rbx     # 0xad329
leaq 0xccc92(%rip), %r14     # 0xd3420
leaq 0xa68a7(%rip), %rbp     # 0xad03c
movl $0x0, %ecx
movq %rcx, 0x28(%rsp)
movl $0x0, 0x3c(%rsp)
movq $0x0, 0x98(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x0, 0x88(%rsp)
movl $0x0, 0x78(%rsp)
movl $0x0, 0x8(%rsp)
movl $0x1, 0x90(%rsp)
movl $0x0, 0x60(%rsp)
movl $0x0, 0x20(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x30(%rsp)
cmpl $0x52, %eax
jle 0x6851
leal -0x62(%rax), %ecx
cmpl $0x11, %ecx
ja 0x68c7
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
movq 0xcd798(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
leaq 0x68(%rsp), %rsi
movl $0xa, %edx
callq 0x4700
movl %eax, 0x48(%rsp)
movq 0x68(%rsp), %rax
cmpb $0x0, (%rax)
je 0x6ba8
jmp 0x7ab3
cmpl $0x3f, %eax
jle 0x688a
leal -0x40(%rax), %ecx
cmpl $0x8, %ecx
ja 0x6903
leaq 0xa67af(%rip), %rdx     # 0xad018
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0xcd747(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
callq 0x4820
movl %eax, 0x78(%rsp)
jmp 0x6bb0
leal -0x1(%rax), %ecx
cmpl $0x4, %ecx
ja 0x68f0
leaq 0xa676b(%rip), %rdx     # 0xad004
movslq (%rdx,%rcx,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0xcd717(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
callq 0x4820
testl %eax, %eax
movl $0x0, %ecx
cmovlel %ecx, %eax
movl %eax, %edi
callq 0x1b0e4
jmp 0x6bb0
cmpl $0x53, %eax
je 0x6b29
cmpl $0x54, %eax
jne 0x6c89
movq 0xcd6e0(%rip), %rax     # 0xd3fc0
movq (%rax), %rax
movq %rax, 0x80(%rsp)
jmp 0x6bb0
cmpl $0x30, %eax
jne 0x6c89
orb $0x1, 0x42(%rsp)
jmp 0x6ba8
cmpl $0x52, %eax
jne 0x6c89
movq 0xcd6ad(%rip), %rax     # 0xd3fc0
movq (%rax), %rax
movq %rax, 0x30(%rsp)
jmp 0x6bb0
movl $0x1, 0x20(%rsp)
movl $0x1, 0x60(%rsp)
jmp 0x6bb0
movl $0x1, 0x10(%rsp)
jmp 0x6bb0
movl $0x0, 0x90(%rsp)
jmp 0x6bb0
movl $0x1, 0x8(%rsp)
jmp 0x6bb0
movq 0xcd65a(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
callq 0x4820
testl %eax, %eax
js 0x6b54
movl $0x7ff, %ecx            # imm = 0x7FF
cmpl %ecx, %eax
cmovgel %ecx, %eax
movl %eax, 0x74(%rsp)
jmp 0x6bb0
movq 0xcd630(%rip), %rax     # 0xd3fc0
movq (%rax), %rax
movq %rax, 0x98(%rsp)
jmp 0x6bb0
movq 0xcd619(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
leaq 0x68(%rsp), %rsi
movl $0xa, %edx
callq 0x4700
movq %rax, 0x28(%rsp)
movq 0x68(%rsp), %rax
cmpb $0x0, (%rax)
je 0x6bb0
jmp 0x7a8d
movq 0xcd5e8(%rip), %rax     # 0xd3fc0
movq (%rax), %r15
movq %r15, %rdi
leaq 0xa69c6(%rip), %rsi     # 0xad3ab
callq 0x46f0
testl %eax, %eax
je 0x6b5e
movq %r15, %rdi
leaq 0xa9bcf(%rip), %rsi     # 0xb05cb
callq 0x46f0
testl %eax, %eax
je 0x6b75
movq %r15, %rdi
leaq 0xab3e4(%rip), %rsi     # 0xb1df7
callq 0x46f0
testl %eax, %eax
je 0x6b7e
movq %r15, %rdi
leaq 0xa9074(%rip), %rsi     # 0xafa9e
callq 0x46f0
testl %eax, %eax
je 0x6b87
movq %r15, %rdi
leaq 0xa696e(%rip), %rsi     # 0xad3af
callq 0x46f0
testl %eax, %eax
je 0x6b90
movq %r15, %rdi
leaq 0xa6685(%rip), %rsi     # 0xad0dd
callq 0x46f0
movl $0x1, 0x4(%rsp)
testl %eax, %eax
je 0x6bb0
movq %r15, %rdi
leaq 0xa666b(%rip), %rsi     # 0xad0e2
callq 0x46f0
testl %eax, %eax
je 0x6bb0
jmp 0x7b79
movl $0x1, 0x20(%rsp)
jmp 0x6bb0
movq 0xcd523(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
leaq 0x68(%rsp), %rsi
movl $0xa, %edx
callq 0x4700
movl %eax, 0x4c(%rsp)
movq 0x68(%rsp), %rax
cmpb $0x0, (%rax)
je 0x6ba8
jmp 0x7aa0
movl $0x1, 0x3c(%rsp)
jmp 0x6bb0
movq 0xcd4e6(%rip), %rax     # 0xd3fc0
movq (%rax), %rax
movsbl (%rax), %eax
movl %eax, 0x50(%rsp)
jmp 0x6ba8
movl $0x1, 0x88(%rsp)
jmp 0x6bb0
movq 0xcd4c0(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
leaq 0x68(%rsp), %rsi
movl $0xa, %edx
callq 0x4700
movl %eax, 0x44(%rsp)
movq 0x68(%rsp), %rax
cmpb $0x0, (%rax)
je 0x6ba8
jmp 0x7a7a
movq 0xcd490(%rip), %rax     # 0xd3fc0
movq (%rax), %rdi
leaq 0x68(%rsp), %rsi
movl $0xa, %edx
callq 0x4700
movq %rax, %r12
movq 0x68(%rsp), %rax
cmpb $0x0, (%rax)
je 0x6ba8
jmp 0x7ac6
movl $0x0, 0x74(%rsp)
jmp 0x6bb0
movq 0xa0(%rsp), %rax
movq %rax, 0x50(%rsp)
movaps 0xb0(%rsp), %xmm0
jmp 0x6ba3
leaq 0xab93c(%rip), %rcx     # 0xb24b8
jmp 0x6b97
leaq 0xab963(%rip), %rcx     # 0xb24e8
jmp 0x6b97
leaq 0xab972(%rip), %rcx     # 0xb2500
jmp 0x6b97
leaq 0xab981(%rip), %rcx     # 0xb2518
movq 0x10(%rcx), %rax
movq %rax, 0x50(%rsp)
movups (%rcx), %xmm0
movaps %xmm0, 0x40(%rsp)
movl $0x0, 0x4(%rsp)
movl %r13d, %edi
movq 0x18(%rsp), %rsi
movq %rbx, %rdx
movq %r14, %rcx
xorl %r8d, %r8d
callq 0x48a0
testl %eax, %eax
jns 0x6806
cmpl $0x0, 0x88(%rsp)
sete %al
xorl %edx, %edx
cmpl $0x0, 0x90(%rsp)
setne %dl
cmpl $0x0, 0x4(%rsp)
sete %r15b
cmpl $0x0, 0x3c(%rsp)
sete %bl
cmpl $0x0, 0x20(%rsp)
sete %sil
cmpl $0x0, 0x8(%rsp)
sete 0x4(%rsp)
jmp 0x6c70
movq $0x0, 0x30(%rsp)
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl $0x1, %edx
movl $0xa, 0x74(%rsp)
movb $0x1, %sil
movq $0x0, 0x80(%rsp)
movl $0x0, 0x60(%rsp)
movb $0x1, 0x4(%rsp)
movl $0x0, 0x78(%rsp)
movb $0x1, %al
movl $0x0, 0x10(%rsp)
movq $0x0, 0x98(%rsp)
movb $0x1, %bl
movq $0x0, 0x28(%rsp)
xorl %r15d, %r15d
testl %r12d, %r12d
js 0x6c7a
movl %r12d, 0x54(%rsp)
movq 0xcd35f(%rip), %r14     # 0xd3fe0
movslq (%r14), %rcx
cmpl %r13d, %ecx
jne 0x6ca2
movq 0xcd348(%rip), %rax     # 0xd3fd8
movq (%rax), %rdi
callq 0x7ca3
movl $0x1, %ebx
jmp 0x79eb
movl %edx, 0x20(%rsp)
movq 0x18(%rsp), %rdx
movq (%rdx,%rcx,8), %rbp
testb %al, %al
je 0x6d0e
movb %sil, 0x3c(%rsp)
movq %rbp, %rdi
callq 0x5eec
movl %eax, %r8d
testb %r15b, %r15b
jne 0x6f4e
movzbl %r8b, %eax
cmpl $0xf, %eax
jg 0x6e97
decl %eax
cmpl $0x7, %eax
ja 0x6f4e
leaq 0xa6399(%rip), %rcx     # 0xad084
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xa0(%rsp), %rax
movq %rax, 0x50(%rsp)
movaps 0xb0(%rsp), %xmm0
jmp 0x6f49
movq %rbp, %rdi
callq 0x5eec
testb $0xf, %al
sete %cl
testl %eax, %eax
setne %dl
testb %cl, %dl
je 0x6d44
cmpb $0x10, %al
je 0x6dc9
movzbl %al, %eax
cmpl $0x20, %eax
jne 0x79e9
leaq 0xa6ec6(%rip), %rdi     # 0xadc05
jmp 0x7c62
movq %rbp, %rdi
xorl %esi, %esi
movl 0x20(%rsp), %edx
callq 0x35b6a
testq %rax, %rax
je 0x7b25
movq %rax, %rbx
leaq 0x150(%rsp), %rsi
movq %rax, %rdi
callq 0x35d85
testq %rax, %rax
je 0x7b0d
movq %rax, %r14
cmpl $0x0, 0x150(%rsp)
jle 0x6db4
leaq 0xa679e(%rip), %r15     # 0xad529
xorl %r12d, %r12d
movq (%r14,%r12,8), %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x4060
testl %eax, %eax
js 0x7a27
incq %r12
movslq 0x150(%rsp), %rax
cmpq %rax, %r12
jl 0x6d8e
movq %r14, %rdi
callq 0x45d0
movq %rbx, %rdi
callq 0x35a26
jmp 0x79e9
leaq 0xaaeef(%rip), %rsi     # 0xb1cbf
movq %rbp, %rdi
callq 0x12fdf
testq %rax, %rax
je 0x7b19
movq %rax, %r14
movq %rax, %rdi
callq 0x3c23b
testq %rax, %rax
je 0x7b6d
movq %rax, %rbx
movq %r14, %rdi
callq 0x14249
movq %rbp, %rdi
xorl %esi, %esi
movl 0x20(%rsp), %edx
callq 0x48b81
testq %rax, %rax
je 0x7c03
movq %rax, %r14
leaq 0x112c(%rip), %rdx      # 0x7f4d
leaq 0x150(%rsp), %rsi
movq %rax, %rdi
movq %rbx, %rcx
callq 0x165f0
testq %rax, %rax
je 0x7b0d
movq %rax, %r15
cmpl $0x0, 0x150(%rsp)
jle 0x6e7a
leaq 0xa66d8(%rip), %r12     # 0xad529
xorl %r13d, %r13d
movq (%r15,%r13,8), %rsi
movq %r12, %rdi
xorl %eax, %eax
callq 0x4060
testl %eax, %eax
js 0x7a27
incq %r13
movslq 0x150(%rsp), %rax
cmpq %rax, %r13
jl 0x6e54
movq %r15, %rdi
callq 0x45d0
movq %rbx, %rdi
callq 0x3c0a2
movq %r14, %rdi
callq 0x143c2
jmp 0x79e9
cmpl $0x10, %eax
je 0x6ee9
cmpl $0x20, %eax
je 0x6ee9
cmpl $0x80, %eax
jne 0x6f4e
leaq 0xab665(%rip), %rax     # 0xb2518
jmp 0x6f3d
callq 0x10353
leaq 0xa6559(%rip), %rdi     # 0xad41d
xorl %ebx, %ebx
movq %rax, %rsi
xorl %eax, %eax
callq 0x4060
jmp 0x79eb
movq 0xcd0d4(%rip), %rax     # 0xd3fb0
movq (%rax), %rdi
callq 0x7ca3
jmp 0x79e9
movq 0x28(%rsp), %rcx
testl %ecx, %ecx
movl $0xe, %eax
jmp 0x6f2c
leaq 0xab5ea(%rip), %rax     # 0xb24e8
jmp 0x6f3d
leaq 0xab5f9(%rip), %rax     # 0xb2500
movq 0x10(%rax), %rcx
movq %rcx, 0x50(%rsp)
movups (%rax), %xmm0
movaps %xmm0, 0x40(%rsp)
cmpl $0x0, 0x10(%rsp)
movl $0xe, %eax
movq 0x28(%rsp), %rcx
cmovel %ecx, %eax
testl %ecx, %ecx
cmovnel %ecx, %eax
movq %rax, 0x28(%rsp)
jmp 0x6f4e
leaq 0xab57b(%rip), %rax     # 0xb24b8
movq 0x10(%rax), %rcx
movq %rcx, 0x50(%rsp)
movups (%rax), %xmm0
movaps %xmm0, 0x40(%rsp)
movslq (%r14), %rsi
leal 0x1(%rsi), %eax
cmpl %r13d, %eax
setl %al
movl 0x60(%rsp), %r12d
testl %r12d, %r12d
setne %cl
movq 0x30(%rsp), %r14
testq %r14, %r14
setne %dl
orb %cl, %dl
cmpq $0x0, 0x80(%rsp)
setne %cl
orb %dl, %cl
orb %al, %cl
cmpb $0x1, %cl
jne 0x6f9d
testl %r12d, %r12d
je 0x6fe8
xorl %r13d, %r13d
movq $0x0, 0x10(%rsp)
jmp 0x73c2
movq %rbp, 0x8(%rsp)
movq 0x28(%rsp), %rax
testl %eax, %eax
movl $0xe, %ebp
cmovnel %eax, %ebp
cmpl $0x0, 0x10(%rsp)
cmovel %eax, %ebp
movq 0x98(%rsp), %rsi
testq %rsi, %rsi
je 0x7170
leaq 0x40(%rsp), %rcx
movq 0x8(%rsp), %rdi
movl %r8d, %edx
movl 0x78(%rsp), %r8d
callq 0x6276
movl %eax, %ebx
jmp 0x79eb
movq %rsi, 0x88(%rsp)
movl %esi, %eax
notl %eax
addl %r13d, %eax
xorps %xmm0, %xmm0
movaps %xmm0, 0x150(%rsp)
movq $0x0, 0x160(%rsp)
testq %r14, %r14
movq %rbp, 0x8(%rsp)
movl %eax, 0x28(%rsp)
je 0x729d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x1fb17
testq %rax, %rax
je 0x7bbe
movq %rax, %r15
movq %rax, %rdi
callq 0x20649
testq %rax, %rax
je 0x7bc7
movq %rax, %rbp
movq %r15, %rdi
callq 0x1ee49
movl %eax, %ebx
addl 0x28(%rsp), %ebx
movslq %ebx, %rdi
shlq $0x3, %rdi
callq 0x46b0
testq %rax, %rax
je 0x7c9a
movq %rbx, 0x30(%rsp)
movq %rax, 0x10(%rsp)
leaq 0xc0(%rsp), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1ee6e
cmpl $0x0, (%rbx)
jle 0x72dd
movq %rax, %r14
leaq 0x150(%rsp), %r13
xorl %r12d, %r12d
xorl %ebx, %ebx
movq %r15, 0x90(%rsp)
movq (%r14,%r12,8), %rsi
movq %r15, %rdi
xorl %edx, %edx
movabsq $0x7fffffff7fffffff, %rcx # imm = 0x7FFFFFFF7FFFFFFF
movq %rbp, %r8
callq 0x1ff07
testl %eax, %eax
js 0x7ade
movq %rbp, %rdi
callq 0x206cf
testl %eax, %eax
je 0x714f
movslq %ebx, %rax
movq 0x10(%rsp), %rcx
leaq (%rcx,%rax,8), %r15
movq $0x0, 0x150(%rsp)
movq (%r14,%r12,8), %rdx
movq (%rbp), %rcx
movq 0x8(%rbp), %r8
incq %rcx
incq %r8
movq %r13, %rdi
leaq 0xae056(%rip), %rsi     # 0xb516b
xorl %eax, %eax
callq 0x860f
testl %eax, %eax
js 0x7c9a
movq 0x160(%rsp), %rdi
callq 0x4970
movq %rax, (%r15)
testq %rax, %rax
je 0x7c9a
movq %rbp, %rdi
callq 0x206cf
incl %ebx
addq $0x8, %r15
testl %eax, %eax
jne 0x70ed
incq %r12
movslq 0xc0(%rsp), %rax
cmpq %rax, %r12
movq 0x90(%rsp), %r15
jl 0x70b2
jmp 0x72df
movl %r8d, %r12d
movq 0x8(%rsp), %r13
movq %r13, %rdi
callq 0x41d0
leaq 0x6(%rax), %rdi
movl $0x1, %esi
callq 0x4300
testq %rax, %rax
je 0x7b88
movq %rax, %r14
movl 0x10(%rsp), %edx
orl %ebp, %edx
cmpl $0x40, %r12d
leaq 0xa62bc(%rip), %rax     # 0xad467
leaq 0xa62a6(%rip), %rcx     # 0xad458
cmoveq %rax, %rcx
cmpl $0x20, %r12d
leaq 0xa62a1(%rip), %rax     # 0xad462
cmovneq %rcx, %rax
movl %edx, 0x10(%rsp)
testl %edx, %edx
leaq 0xa628b(%rip), %r15     # 0xad45d
cmoveq %rax, %r15
movq %r14, %rdi
movq %r13, %rsi
callq 0x4470
movq %r14, %rdi
movq %r15, %rsi
callq 0x4930
testb %bl, %bl
je 0x722b
leaq 0x150(%rsp), %rsi
movq %r14, %rdi
callq 0x4430
testl %eax, %eax
jne 0x722b
leaq 0xc0(%rsp), %r15
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x4430
movq 0x58(%r15), %rax
cmpq 0x1a8(%rsp), %rax
jle 0x7c5b
movq %r14, %rdi
callq 0x45d0
cmpl $0x40, %r12d
movl 0x78(%rsp), %ecx
jne 0x7265
movq 0x8(%rsp), %r12
movq %r12, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x232f9
testl %eax, %eax
je 0x79e9
leaq 0xa624e(%rip), %rdi     # 0xad4ab
movq %r12, %rsi
jmp 0x7ad7
cmpl $0x0, 0x10(%rsp)
je 0x72ad
cmpb $0x20, %r12b
je 0x723d
movzbl %r12b, %eax
cmpl $0x10, %eax
jne 0x72ad
movq 0x8(%rsp), %r12
movq %r12, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x48b8a
testl %eax, %eax
je 0x79e9
leaq 0xa622c(%rip), %rdi     # 0xad4c7
jmp 0x725d
movq $0x0, 0x10(%rsp)
movl %eax, %r13d
xorl %ebx, %ebx
jmp 0x72f9
leaq 0x40(%rsp), %r8
movq 0x8(%rsp), %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x35a9a
testl %eax, %eax
je 0x79e9
cmpl $-0x2, %eax
jne 0x7c4a
leaq 0xa620b(%rip), %rdi     # 0xad4e3
jmp 0x7c51
xorl %ebx, %ebx
movq %r15, %rdi
callq 0x1f9fd
movq %rbp, %rdi
callq 0x206b9
movl 0x60(%rsp), %r12d
movq 0x30(%rsp), %r13
movq 0x160(%rsp), %rdi
callq 0x45d0
testl %ebx, %ebx
je 0x7314
movl %r12d, %ebp
movl 0x28(%rsp), %r15d
jmp 0x7370
movl 0x28(%rsp), %r15d
testl %r15d, %r15d
je 0x7334
movl %r12d, %ebp
movslq %r15d, %rdi
shlq $0x3, %rdi
callq 0x46b0
movq %rax, 0x10(%rsp)
jmp 0x7367
movl $0x8, %edi
callq 0x46b0
testq %rax, %rax
je 0x7c9a
movq %rax, %r14
movl %r12d, %ebp
leaq 0xa7458(%rip), %rdi     # 0xae7ac
callq 0x4970
movq %r14, 0x10(%rsp)
movq %rax, (%r14)
movl $0x1, %r13d
testq %rax, %rax
je 0x7c9a
testl %r15d, %r15d
movq 0x88(%rsp), %rcx
jle 0x73ba
movq 0x18(%rsp), %rax
leaq (%rax,%rcx,8), %r14
addq $0x8, %r14
movslq %ebx, %rax
movl %r15d, %ebx
movq 0x10(%rsp), %rcx
leaq (%rcx,%rax,8), %r15
xorl %r12d, %r12d
movq (%r14,%r12,8), %rdi
callq 0x4970
movq %rax, (%r15,%r12,8)
testq %rax, %rax
je 0x7c9a
incq %r12
cmpq %r12, %rbx
jne 0x739c
movl %ebp, %r12d
movq 0x8(%rsp), %rbp
xorps %xmm0, %xmm0
movaps %xmm0, 0xc0(%rsp)
leaq 0xaa8eb(%rip), %rsi     # 0xb1cbf
movq %rbp, %rdi
callq 0x12fdf
testq %rax, %rax
movl 0x78(%rsp), %r14d
je 0x7b19
movq %rax, %rdi
movq %rax, %r15
callq 0x14501
movl 0x4(%rax), %ebx
movl 0x74(%rsp), %esi
testl %esi, %esi
je 0x740b
shll $0x14, %esi
movq %r15, %rdi
callq 0x145c3
movq %r15, 0x18(%rsp)
testl %r14d, %r14d
jle 0x7474
movl %r14d, %edi
callq 0x377ba
movq %rax, 0xc0(%rsp)
testq %rax, %rax
jne 0x7444
leaq 0xa6858(%rip), %rsi     # 0xadc89
leaq 0xa5d01(%rip), %rdx     # 0xad139
movl $0x4, %edi
xorl %eax, %eax
callq 0x12edc
leaq 0xc0(%rsp), %rsi
movq 0x18(%rsp), %rdi
callq 0x14579
testl %eax, %eax
jns 0x7474
leaq 0xa6828(%rip), %rsi     # 0xadc89
leaq 0xa5cf3(%rip), %rdx     # 0xad15b
movl $0x4, %edi
xorl %eax, %eax
callq 0x12edc
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x74c2
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x1fb17
movq %rax, %r15
testq %rax, %rax
movq 0x18(%rsp), %rdi
jne 0x74ca
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x74ae
callq 0x38228
leaq 0xa675b(%rip), %rdi     # 0xadc10
movq 0x80(%rsp), %rsi
jmp 0x7c0d
xorl %r15d, %r15d
movq 0x18(%rsp), %rdi
cmpl $0xd, %ebx
ja 0x798f
movl $0x210d, %eax           # imm = 0x210D
btl %ebx, %eax
jae 0x75e3
movq %rbp, %rdi
xorl %esi, %esi
movl 0x20(%rsp), %edx
callq 0x35b6a
testq %rax, %rax
je 0x7b4f
movq %rax, %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x150(%rsp)
movq $0x0, 0x160(%rsp)
cmpb $0x0, 0x3c(%rsp)
jne 0x7588
leaq 0x150(%rsp), %rbx
movq 0x18(%rsp), %rdi
movl $0x2, %esi
movq %rbx, %rdx
callq 0x14829
testl %eax, %eax
js 0x757f
cmpq $0x0, 0x150(%rsp)
je 0x757f
movq 0x160(%rsp), %rdi
movsbl (%rdi), %ecx
cmpl %ecx, 0x10(%r14)
jne 0x757f
callq 0x4800
testl %eax, %eax
movq 0x18(%rsp), %rdi
jns 0x7526
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7573
callq 0x38228
leaq 0xa6862(%rip), %rdi     # 0xadddc
jmp 0x7c9c
cmpl $-0x2, %eax
jle 0x7ba3
testl %r12d, %r12d
jne 0x7975
movq %r13, 0x30(%rsp)
testq %r15, %r15
movq %rbp, 0x8(%rsp)
je 0x784c
leaq 0xac(%rsp), %rsi
movq %r14, %rdi
callq 0x35d85
movq %rax, %r13
testq %rax, %rax
movq 0x10(%rsp), %r12
jne 0x7854
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x75d7
callq 0x38228
leaq 0xa6816(%rip), %rdi     # 0xaddf4
jmp 0x7c9c
cmpl $0x9, %ebx
jne 0x79ff
leaq 0xa9fd4(%rip), %rdi     # 0xb15c7
leaq 0xa98e7(%rip), %rsi     # 0xb0ee1
callq 0x12fdf
testq %rax, %rax
je 0x7bd3
movq %rax, %rbx
leaq 0xc0(%rsp), %rsi
movq %rax, %rdi
callq 0x14579
testl %eax, %eax
jns 0x7639
leaq 0xa6663(%rip), %rsi     # 0xadc89
leaq 0xa5b85(%rip), %rdx     # 0xad1b2
movl $0x4, %edi
xorl %eax, %eax
callq 0x12edc
movq %r13, 0x30(%rsp)
movq %rbp, %rdi
xorl %esi, %esi
movl 0x20(%rsp), %edx
callq 0x48b81
movq %rax, 0x60(%rsp)
testq %rax, %rax
je 0x7bf1
movq 0x18(%rsp), %rdi
callq 0x3c23b
testq %rax, %rax
je 0x7c14
movq %rax, %r13
cmpb $0x0, 0x3c(%rsp)
jne 0x768a
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3ce80
testl %eax, %eax
jne 0x7a5c
testl %r12d, %r12d
jne 0x7820
movq 0x10(%rsp), %r12
testq %r12, %r12
je 0x7c69
movq %rbx, 0x20(%rsp)
movq %rbp, 0x8(%rsp)
callq 0x3d23f
testq %rax, %rax
je 0x7c88
movq %rax, %r14
cmpl $0x0, 0x30(%rsp)
jle 0x780e
movl 0x30(%rsp), %eax
movq %rax, 0x78(%rsp)
xorl %ebx, %ebx
movq (%r12,%rbx,8), %rsi
movq 0x60(%rsp), %rdi
leaq 0x891(%rip), %rdx       # 0x7f73
movq %r13, %rcx
leaq 0xf311(%rip), %r8       # 0x169fd
leaq 0x36e82(%rip), %r9      # 0x3e575
callq 0x19495
testq %rax, %rax
je 0x7800
movq %rax, %rbp
xorl %r12d, %r12d
movq 0x18(%rsp), %rax
testb $0x10, (%rax)
jne 0x773d
movl $0x1, %edi
leaq 0xa6754(%rip), %rsi     # 0xade71
leaq 0xa675a(%rip), %rdx     # 0xade7e
xorl %eax, %eax
callq 0x12edc
callq 0x4050
movl $0x16, (%rax)
movl $0xfffffffe, %eax       # imm = 0xFFFFFFFE
jmp 0x774e
movq 0x38(%rax), %rdi
movq %rbp, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x1971e
testl %eax, %eax
js 0x77ea
testq %r15, %r15
je 0x77a4
movslq 0x10(%r14), %rax
testq %rax, %rax
js 0x7778
cmpl %eax, 0x4(%r13)
jle 0x7778
movq 0x18(%r13), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rsi
jmp 0x777a
xorl %esi, %esi
testq %rsi, %rsi
je 0x7a33
movq (%r14), %rdx
movq 0x8(%r14), %rax
leaq (%rdx,%rax), %rcx
decq %rcx
movq %r15, %rdi
xorl %r8d, %r8d
callq 0x1ff07
testl %eax, %eax
je 0x7707
orb 0x4(%rsp), %r12b
testb $0x1, %r12b
jne 0x77ca
movl 0x50(%rsp), %esi
movq 0x10(%rsp), %rax
movq (%rax,%rbx,8), %rdx
leaq 0xa65ac(%rip), %rdi     # 0xadd6f
xorl %eax, %eax
callq 0x4060
movq 0x20(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x3f16f
movb $0x1, %r12b
testl %eax, %eax
je 0x7707
jmp 0x7a5c
cmpl $-0x1, %eax
jne 0x7aea
movq %rbp, %rdi
callq 0x175b7
movq 0x10(%rsp), %r12
incq %rbx
cmpq 0x78(%rsp), %rbx
jne 0x76d2
movq %r14, %rdi
callq 0x3d3e2
movq 0x8(%rsp), %rbp
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x14249
testl %eax, %eax
jne 0x7c2f
movq %r13, %rdi
callq 0x3c0a2
movq 0x60(%rsp), %rdi
callq 0x143c2
movq 0x30(%rsp), %r13
jmp 0x798a
xorl %r13d, %r13d
movq 0x10(%rsp), %r12
cmpl $0x0, 0x30(%rsp)
jle 0x7963
movl 0x30(%rsp), %eax
movq %rax, 0x60(%rsp)
leaq 0x150(%rsp), %rbp
xorl %eax, %eax
movq 0x18(%r14), %rdi
movq %rax, 0x20(%rsp)
movq (%r12,%rax,8), %rsi
leaq 0x2d252(%rip), %rdx     # 0x34ad8
movq %r14, %rcx
leaq 0xf16d(%rip), %r8       # 0x169fd
leaq 0x2dac4(%rip), %r9      # 0x3535b
callq 0x19495
testq %rax, %rax
je 0x7950
movq %rax, %rbx
xorl %r12d, %r12d
movq 0x18(%rsp), %rdi
callq 0x14625
movq %rax, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
movq %r14, %rcx
callq 0x1971e
testl %eax, %eax
js 0x793a
testq %r15, %r15
je 0x78f2
movslq 0x30(%rbx), %rax
movq (%r13,%rax,8), %rsi
movq 0x40(%rbx), %rdx
movq 0x48(%rbx), %rcx
decq %rcx
movq %r15, %rdi
xorl %r8d, %r8d
callq 0x1ff07
testl %eax, %eax
je 0x78ab
orb 0x4(%rsp), %r12b
testb $0x1, %r12b
jne 0x791d
movl 0x50(%rsp), %esi
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0xa6459(%rip), %rdi     # 0xadd6f
xorl %eax, %eax
callq 0x4060
movq 0x160(%rsp), %rdi
callq 0x4800
movb $0x1, %r12b
testl %eax, %eax
jns 0x78ab
jmp 0x7a5c
cmpl $-0x1, %eax
jne 0x7aea
movq %rbx, %rdi
callq 0x175b7
movq 0x10(%rsp), %r12
movq 0x20(%rsp), %rax
incq %rax
cmpq 0x60(%rsp), %rax
jne 0x7872
movq %r13, %rdi
callq 0x45d0
movq 0x8(%rsp), %rbp
movq 0x30(%rsp), %r13
movq 0x160(%rsp), %rdi
callq 0x45d0
movq %r14, %rdi
callq 0x35a26
movq 0x18(%rsp), %rdi
testq %r15, %r15
je 0x79a1
movq %r15, %rdi
callq 0x1f9fd
movq 0x18(%rsp), %rdi
callq 0x14249
testl %eax, %eax
movq 0x10(%rsp), %r15
jne 0x7b31
testl %r13d, %r13d
jle 0x79cf
movl %r13d, %ebx
xorl %r14d, %r14d
movq (%r15,%r14,8), %rdi
callq 0x45d0
incq %r14
cmpq %r14, %rbx
jne 0x79be
movq %r15, %rdi
callq 0x45d0
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x79e9
callq 0x38228
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x4, %ebx
movq 0x18(%rsp), %rdi
jne 0x798f
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7a1b
callq 0x38228
leaq 0xa63f4(%rip), %rdi     # 0xade16
jmp 0x7c62
leaq 0xa6168(%rip), %rdi     # 0xadb96
jmp 0x7c9c
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7a45
callq 0x38228
movl 0x10(%r14), %edx
leaq 0xa62f0(%rip), %rdi     # 0xadd40
movq 0x8(%rsp), %rsi
xorl %eax, %eax
callq 0x60aa
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7a6e
callq 0x38228
leaq 0xa625c(%rip), %rdi     # 0xadcd1
jmp 0x7c9c
movq 0xcc53f(%rip), %rax     # 0xd3fc0
movq (%rax), %rsi
leaq 0xa5950(%rip), %rdi     # 0xad3db
jmp 0x7ad7
movq 0xcc52c(%rip), %rax     # 0xd3fc0
movq (%rax), %rsi
leaq 0xa58ec(%rip), %rdi     # 0xad38a
jmp 0x7ad7
movq 0xcc519(%rip), %rax     # 0xd3fc0
movq (%rax), %rsi
leaq 0xa58b8(%rip), %rdi     # 0xad369
jmp 0x7ad7
movq 0xcc506(%rip), %rax     # 0xd3fc0
movq (%rax), %rsi
leaq 0xa5884(%rip), %rdi     # 0xad348
jmp 0x7ad7
movq 0xcc4f3(%rip), %rax     # 0xd3fc0
movq (%rax), %rsi
leaq 0xa5925(%rip), %rdi     # 0xad3fc
xorl %eax, %eax
callq 0x60aa
leaq 0xa617b(%rip), %rdi     # 0xadc60
jmp 0x7c9c
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7afc
callq 0x38228
leaq 0xa6272(%rip), %rdi     # 0xadd75
movq 0x8(%rsp), %rsi
jmp 0x7c0d
leaq 0xa605e(%rip), %rdi     # 0xadb72
jmp 0x7c9c
leaq 0xa608f(%rip), %rdi     # 0xadbaf
jmp 0x7c0a
leaq 0xa6026(%rip), %rdi     # 0xadb52
jmp 0x7c0a
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7b43
callq 0x38228
leaq 0xa6300(%rip), %rdi     # 0xade4a
jmp 0x7c0a
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7b61
callq 0x38228
leaq 0xa624f(%rip), %rdi     # 0xaddb7
jmp 0x7c0a
leaq 0xa604f(%rip), %rdi     # 0xadbc3
jmp 0x7c0a
leaq 0xa5833(%rip), %rdi     # 0xad3b3
movq %r15, %rsi
jmp 0x7ad7
callq 0x4050
movl (%rax), %edi
callq 0x4150
leaq 0xa598e(%rip), %rdi     # 0xad529
movq %rax, %rsi
jmp 0x7ad7
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7bb5
callq 0x38228
leaq 0xa61b9(%rip), %rdi     # 0xadd75
jmp 0x7c0a
leaq 0xa604b(%rip), %rdi     # 0xadc10
jmp 0x7bce
leaq 0xa6067(%rip), %rdi     # 0xadc35
movq %r14, %rsi
jmp 0x7c0d
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7be5
callq 0x38228
leaq 0xa60ab(%rip), %rdi     # 0xadc97
jmp 0x7c9c
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7c03
callq 0x38228
leaq 0xa5fd9(%rip), %rdi     # 0xadbe3
movq %rbp, %rsi
xorl %eax, %eax
callq 0x615e
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7c26
callq 0x38228
leaq 0xa6080(%rip), %rdi     # 0xadcad
jmp 0x7c0a
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7c41
callq 0x38228
leaq 0xa6141(%rip), %rdi     # 0xadd89
jmp 0x7c9c
leaq 0xa58bf(%rip), %rdi     # 0xad510
movq 0x8(%rsp), %rsi
jmp 0x7ad7
leaq 0xa580b(%rip), %rdi     # 0xad46d
xorl %eax, %eax
callq 0x60aa
leaq 0xa607b(%rip), %rdi     # 0xadceb
leaq 0xa6081(%rip), %rsi     # 0xadcf8
leaq 0xa6082(%rip), %rcx     # 0xadd00
movl $0x10b, %edx            # imm = 0x10B
callq 0x42f0
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x7c9a
callq 0x38228
xorl %edi, %edi
xorl %eax, %eax
callq 0x615e