// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/hts.c
// Function: hts_detect_format2
int hts_detect_format2(hFILE *hfile, const char *fname, htsFormat *fmt)
{
    char extension[HTS_MAX_EXT_LEN], columns[24];
    unsigned char s[1024];
    int complete = 0;
    ssize_t len = hpeek(hfile, s, 18);
    if (len < 0) return -1;

    fmt->category = unknown_category;
    fmt->format = unknown_format;
    fmt->version.major = fmt->version.minor = -1;
    fmt->compression = no_compression;
    fmt->compression_level = -1;
    fmt->specific = NULL;

    if (len >= 2 && s[0] == 0x1f && s[1] == 0x8b) {
        // The stream is either gzip-compressed or BGZF-compressed.
        // Determine which, and decompress the first few records or lines.
        fmt->compression = gzip;
        if (len >= 18 && (s[3] & 4)) {
            if (memcmp(&s[12], "BC\2\0", 4) == 0)
                fmt->compression = bgzf;
            else if (memcmp(&s[12], "RAZF", 4) == 0)
                fmt->compression = razf_compression;
        }
        if (len >= 9 && s[2] == 8)
            fmt->compression_level = (s[8] == 2)? 9 : (s[8] == 4)? 1 : -1;

        len = decompress_peek_gz(hfile, s, sizeof s);
    }
    else if (len >= 10 && memcmp(s, "BZh", 3) == 0 &&
             (memcmp(&s[4], "\x31\x41\x59\x26\x53\x59", 6) == 0 ||
              memcmp(&s[4], "\x17\x72\x45\x38\x50\x90", 6) == 0)) {
        fmt->compression = bzip2_compression;
        fmt->compression_level = s[3] - '0';
        // Decompressing via libbz2 produces no output until it has a whole
        // block (of size 100Kb x level), which is too large for peeking.
        // So unfortunately we can recognise bzip2 but not the contents,
        // except that \x1772... magic indicates the stream is empty.
        if (s[4] == '\x31') return 0;
        else len = 0;
    }
    else if (len >= 6 && memcmp(s, "\xfd""7zXZ\0", 6) == 0) {
        fmt->compression = xz_compression;
#ifdef HAVE_LIBLZMA
        len = decompress_peek_xz(hfile, s, sizeof s);
#else
        // Without liblzma, we can't recognise the decompressed contents.
        return 0;
#endif
    }
    else if (len >= 4 && memcmp(s, "\x28\xb5\x2f\xfd", 4) == 0) {
        fmt->compression = zstd_compression;
        return 0;
    }
    else {
        len = hpeek(hfile, s, sizeof s);
    }
    if (len < 0) return -1;

    if (len == 0) {
        fmt->format = empty_format;
        return 0;
    }

    // We avoid using filename extensions wherever possible (as filenames are
    // not always available), but in a few cases they must be considered:
    //  - FASTA/Q indexes are simply tab-separated text; files that match these
    //    patterns but not the fai/fqi extension are usually generic BED files
    //  - GZI indexes have no magic numbers so can only be detected by filename
    if (fname && strcmp(fname, "-") != 0) {
        char *s;
        if (find_file_extension(fname, extension) < 0) extension[0] = '\0';
        for (s = extension; *s; s++) *s = tolower_c(*s);
    }
    else extension[0] = '\0';

    if (len >= 6 && memcmp(s,"CRAM",4) == 0 && s[4]>=1 && s[4]<=7 && s[5]<=7) {
        fmt->category = sequence_data;
        fmt->format = cram;
        fmt->version.major = s[4], fmt->version.minor = s[5];
        fmt->compression = custom;
        return 0;
    }
    else if (len >= 4 && s[3] <= '\4') {
        if (memcmp(s, "BAM\1", 4) == 0) {
            fmt->category = sequence_data;
            fmt->format = bam;
            // TODO Decompress enough to pick version from @HD-VN header
            fmt->version.major = 1, fmt->version.minor = -1;
            return 0;
        }
        else if (memcmp(s, "BAI\1", 4) == 0) {
            fmt->category = index_file;
            fmt->format = bai;
            fmt->version.major = -1, fmt->version.minor = -1;
            return 0;
        }
        else if (memcmp(s, "BCF\4", 4) == 0) {
            fmt->category = variant_data;
            fmt->format = bcf;
            fmt->version.major = 1, fmt->version.minor = -1;
            return 0;
        }
        else if (memcmp(s, "BCF\2", 4) == 0) {
            fmt->category = variant_data;
            fmt->format = bcf;
            fmt->version.major = s[3];
            fmt->version.minor = (len >= 5 && s[4] <= 2)? s[4] : 0;
            return 0;
        }
        else if (memcmp(s, "CSI\1", 4) == 0) {
            fmt->category = index_file;
            fmt->format = csi;
            fmt->version.major = 1, fmt->version.minor = -1;
            return 0;
        }
        else if (memcmp(s, "TBI\1", 4) == 0) {
            fmt->category = index_file;
            fmt->format = tbi;
            return 0;
        }
        // GZI indexes have no magic numbers, so must be recognised solely by
        // filename extension.
        else if (strcmp(extension, "gzi") == 0) {
            fmt->category = index_file;
            fmt->format = gzi;
            return 0;
        }
    }
    else if (len >= 16 && memcmp(s, "##fileformat=VCF", 16) == 0) {
        fmt->category = variant_data;
        fmt->format = vcf;
        if (len >= 21 && s[16] == 'v')
            parse_version(fmt, &s[17], &s[len]);
        return 0;
    }
    else if (len >= 4 && s[0] == '@' &&
             (memcmp(s, "@HD\t", 4) == 0 || memcmp(s, "@SQ\t", 4) == 0 ||
              memcmp(s, "@RG\t", 4) == 0 || memcmp(s, "@PG\t", 4) == 0 ||
              memcmp(s, "@CO\t", 4) == 0)) {
        fmt->category = sequence_data;
        fmt->format = sam;
        // @HD-VN is not guaranteed to be the first tag, but then @HD is
        // not guaranteed to be present at all...
        if (len >= 9 && memcmp(s, "@HD\tVN:", 7) == 0)
            parse_version(fmt, &s[7], &s[len]);
        else
            fmt->version.major = 1, fmt->version.minor = -1;
        return 0;
    }
    else if (len >= 8 && memcmp(s, "d4\xdd\xdd", 4) == 0) {
        fmt->category = region_list;
        fmt->format = d4_format;
        // How to decode the D4 Format Version bytes is not yet specified
        // so we don't try to set fmt->version.{major,minor}.
        return 0;
    }
    else if (cmp_nonblank("{\"htsget\":", s, &s[len]) == 0) {
        fmt->category = unknown_category;
        fmt->format = htsget;
        return 0;
    }
    else if (len > 8 && memcmp(s, "crypt4gh", 8) == 0) {
        fmt->category = unknown_category;
        fmt->format = hts_crypt4gh_format;
        return 0;
    }
    else if (len >= 1 && s[0] == '>' && is_fastaq(s, &s[len])) {
        fmt->category = sequence_data;
        fmt->format = fasta_format;
        return 0;
    }
    else if (len >= 1 && s[0] == '@' && is_fastaq(s, &s[len])) {
        fmt->category = sequence_data;
        fmt->format = fastq_format;
        return 0;
    }
    else if (parse_tabbed_text(columns, sizeof columns, s,
                               &s[len], &complete) > 0) {
        // A complete SAM line is at least 11 columns.  On unmapped long reads may
        // be missing two.  (On mapped long reads we must have an @ header so long
        // CIGAR is irrelevant.)
        if (colmatch(columns, "ZiZiiCZiiZZOOOOOOOOOOOOOOOOOOOO+")
            >= 9 + 2*complete) {
            fmt->category = sequence_data;
            fmt->format = sam;
            fmt->version.major = 1, fmt->version.minor = -1;
            return 0;
        }
        else if (fmt->compression == gzip && colmatch(columns, "iiiiii") == 6) {
            fmt->category = index_file;
            fmt->format = crai;
            return 0;
        }
        else if (strstr(extension, "fqi") && colmatch(columns, "Ziiiii") == 6) {
            fmt->category = index_file;
            fmt->format = fqi_format;
            return 0;
        }
        else if (strstr(extension, "fai") && colmatch(columns, "Ziiii") == 5) {
            fmt->category = index_file;
            fmt->format = fai_format;
            return 0;
        }
        else if (colmatch(columns, "Zii+") >= 3) {
            fmt->category = region_list;
            fmt->format = bed;
            return 0;
        }
    }

    // Arbitrary text files can be read using hts_getline().
    if (is_text_only(s, &s[len])) fmt->format = text_format;

    // Nothing recognised: leave unset fmt-> fields as unknown.
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl $0x0, -0x454(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x12, %edx
callq 0x140b0
movq %rax, -0x460(%rbp)
cmpq $0x0, -0x460(%rbp)
jge 0x184a3
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1903e
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movq -0x20(%rbp), %rax
movw $0xffff, 0x8(%rax)      # imm = 0xFFFF
movq -0x20(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0x10(%rax)     # imm = 0xFFFF
movq -0x20(%rbp), %rax
movq $0x0, 0x18(%rax)
cmpq $0x2, -0x460(%rbp)
jl 0x18615
movzbl -0x450(%rbp), %eax
cmpl $0x1f, %eax
jne 0x18615
movzbl -0x44f(%rbp), %eax
cmpl $0x8b, %eax
jne 0x18615
movq -0x20(%rbp), %rax
movl $0x1, 0xc(%rax)
cmpq $0x12, -0x460(%rbp)
jl 0x18597
movzbl -0x44d(%rbp), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x18597
leaq -0x450(%rbp), %rax
addq $0xc, %rax
movl (%rax), %eax
subl $0x24342, %eax          # imm = 0x24342
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x1856b
movq -0x20(%rbp), %rax
movl $0x2, 0xc(%rax)
jmp 0x18595
leaq -0x450(%rbp), %rax
addq $0xc, %rax
movl (%rax), %eax
subl $0x465a4152, %eax       # imm = 0x465A4152
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18593
movq -0x20(%rbp), %rax
movl $0x5, 0xc(%rax)
jmp 0x18595
jmp 0x18597
cmpq $0x9, -0x460(%rbp)
jl 0x185f4
movzbl -0x44e(%rbp), %eax
cmpl $0x8, %eax
jne 0x185f4
movzbl -0x448(%rbp), %eax
cmpl $0x2, %eax
jne 0x185c6
movl $0x9, %eax
movl %eax, -0x46c(%rbp)
jmp 0x185e3
movzbl -0x448(%rbp), %edx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl $0x1, %ecx
cmpl $0x4, %edx
cmovel %ecx, %eax
movl %eax, -0x46c(%rbp)
movl -0x46c(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x10(%rax)
movq -0x10(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
callq 0x19050
movq %rax, -0x460(%rbp)
jmp 0x1877a
cmpq $0xa, -0x460(%rbp)
jl 0x186ce
leaq -0x450(%rbp), %rdi
leaq 0xd791f(%rip), %rsi     # 0xeff50
movl $0x3, %edx
callq 0x41c0
cmpl $0x0, %eax
jne 0x186ce
leaq -0x450(%rbp), %rdi
addq $0x4, %rdi
leaq 0xd78fe(%rip), %rsi     # 0xeff54
movl $0x6, %edx
callq 0x41c0
cmpl $0x0, %eax
je 0x18686
leaq -0x450(%rbp), %rdi
addq $0x4, %rdi
leaq 0xd78e4(%rip), %rsi     # 0xeff5b
movl $0x6, %edx
callq 0x41c0
cmpl $0x0, %eax
jne 0x186ce
movq -0x20(%rbp), %rax
movl $0x4, 0xc(%rax)
movzbl -0x44d(%rbp), %eax
subl $0x30, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x10(%rax)
movzbl -0x44c(%rbp), %eax
cmpl $0x31, %eax
jne 0x186be
movl $0x0, -0x4(%rbp)
jmp 0x1903e
movq $0x0, -0x460(%rbp)
jmp 0x18778
cmpq $0x6, -0x460(%rbp)
jl 0x1871e
leaq -0x450(%rbp), %rdi
leaq 0xd75af(%rip), %rsi     # 0xefc95
movl $0x6, %edx
callq 0x41c0
cmpl $0x0, %eax
jne 0x1871e
movq -0x20(%rbp), %rax
movl $0x6, 0xc(%rax)
movq -0x10(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
callq 0x191c0
movq %rax, -0x460(%rbp)
jmp 0x18776
cmpq $0x4, -0x460(%rbp)
jl 0x18758
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0xfd2fb528, %eax       # imm = 0xFD2FB528
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18758
movq -0x20(%rbp), %rax
movl $0x7, 0xc(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
movq -0x10(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
callq 0x140b0
movq %rax, -0x460(%rbp)
jmp 0x18776
jmp 0x18778
jmp 0x1877a
cmpq $0x0, -0x460(%rbp)
jge 0x18790
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1903e
cmpq $0x0, -0x460(%rbp)
jne 0x187b1
movq -0x20(%rbp), %rax
movl $0xf, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x0, -0x18(%rbp)
je 0x1882a
movq -0x18(%rbp), %rdi
leaq 0xd9c32(%rip), %rsi     # 0xf23f5
callq 0x4690
cmpl $0x0, %eax
je 0x1882a
movq -0x18(%rbp), %rdi
leaq -0x29(%rbp), %rsi
callq 0x192f0
cmpl $0x0, %eax
jge 0x187e3
movb $0x0, -0x29(%rbp)
leaq -0x29(%rbp), %rax
movq %rax, -0x468(%rbp)
movq -0x468(%rbp), %rax
cmpb $0x0, (%rax)
je 0x18828
movq -0x468(%rbp), %rax
movsbl (%rax), %edi
callq 0x19510
movb %al, %cl
movq -0x468(%rbp), %rax
movb %cl, (%rax)
movq -0x468(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x468(%rbp)
jmp 0x187ee
jmp 0x1882e
movb $0x0, -0x29(%rbp)
cmpq $0x6, -0x460(%rbp)
jl 0x188c9
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x4d415243, %eax       # imm = 0x4D415243
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x188c9
movzbl -0x44c(%rbp), %eax
cmpl $0x1, %eax
jl 0x188c9
movzbl -0x44c(%rbp), %eax
cmpl $0x7, %eax
jg 0x188c9
movzbl -0x44b(%rbp), %eax
cmpl $0x7, %eax
jg 0x188c9
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x6, 0x4(%rax)
movzbl -0x44c(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x8(%rax)
movzbl -0x44b(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0xa(%rax)
movq -0x20(%rbp), %rax
movl $0x3, 0xc(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x4, -0x460(%rbp)
jl 0x18b2c
movzbl -0x44d(%rbp), %eax
cmpl $0x4, %eax
jg 0x18b2c
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x14d4142, %eax        # imm = 0x14D4142
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18935
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x4, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x1494142, %eax        # imm = 0x1494142
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18983
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0x5, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0x8(%rax)      # imm = 0xFFFF
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x4464342, %eax        # imm = 0x4464342
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x189d1
movq -0x20(%rbp), %rax
movl $0x2, (%rax)
movq -0x20(%rbp), %rax
movl $0x9, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x2464342, %eax        # imm = 0x2464342
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18a5d
movq -0x20(%rbp), %rax
movl $0x2, (%rax)
movq -0x20(%rbp), %rax
movl $0x9, 0x4(%rax)
movzbl -0x44d(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x8(%rax)
cmpq $0x5, -0x460(%rbp)
jl 0x18a36
movzbl -0x44c(%rbp), %eax
cmpl $0x2, %eax
jg 0x18a36
movzbl -0x44c(%rbp), %eax
movl %eax, -0x470(%rbp)
jmp 0x18a40
xorl %eax, %eax
movl %eax, -0x470(%rbp)
jmp 0x18a40
movl -0x470(%rbp), %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0xa(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x1495343, %eax        # imm = 0x1495343
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18aab
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0xa, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x1494254, %eax        # imm = 0x1494254
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18ae5
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0xc, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x29(%rbp), %rdi
leaq 0xdee55(%rip), %rsi     # 0xf7945
callq 0x4690
cmpl $0x0, %eax
jne 0x18b1b
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0xb, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
jmp 0x18b1d
jmp 0x18b1f
jmp 0x18b21
jmp 0x18b23
jmp 0x18b25
jmp 0x18b27
jmp 0x1900b
cmpq $0x10, -0x460(%rbp)
jl 0x18bbc
leaq -0x450(%rbp), %rax
movups (%rax), %xmm0
movaps 0xd6da5(%rip), %xmm1    # 0xef8f0
pcmpeqb %xmm1, %xmm0
pmovmskb %xmm0, %eax
subl $0xffff, %eax           # imm = 0xFFFF
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18bbc
movq -0x20(%rbp), %rax
movl $0x2, (%rax)
movq -0x20(%rbp), %rax
movl $0x8, 0x4(%rax)
cmpq $0x15, -0x460(%rbp)
jl 0x18bb0
movzbl -0x440(%rbp), %eax
cmpl $0x76, %eax
jne 0x18bb0
movq -0x20(%rbp), %rdi
leaq -0x450(%rbp), %rsi
addq $0x11, %rsi
leaq -0x450(%rbp), %rdx
addq -0x460(%rbp), %rdx
callq 0x19530
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x4, -0x460(%rbp)
jl 0x18cdb
movzbl -0x450(%rbp), %eax
cmpl $0x40, %eax
jne 0x18cdb
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x9444840, %eax        # imm = 0x9444840
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x18c5b
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x9515340, %eax        # imm = 0x9515340
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x18c5b
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x9475240, %eax        # imm = 0x9475240
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x18c5b
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x9475040, %eax        # imm = 0x9475040
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x18c5b
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0x94f4340, %eax        # imm = 0x94F4340
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18cdb
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x3, 0x4(%rax)
cmpq $0x9, -0x460(%rbp)
jl 0x18cbb
leaq -0x450(%rbp), %rdi
leaq 0xd732c(%rip), %rsi     # 0xeffb4
movl $0x7, %edx
callq 0x41c0
cmpl $0x0, %eax
jne 0x18cbb
movq -0x20(%rbp), %rdi
leaq -0x450(%rbp), %rsi
addq $0x7, %rsi
leaq -0x450(%rbp), %rdx
addq -0x460(%rbp), %rdx
callq 0x19530
jmp 0x18ccf
movq -0x20(%rbp), %rax
movw $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x8, -0x460(%rbp)
jl 0x18d1f
leaq -0x450(%rbp), %rax
movl (%rax), %eax
subl $0xdddd3464, %eax       # imm = 0xDDDD3464
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18d1f
movq -0x20(%rbp), %rax
movl $0x4, (%rax)
movq -0x20(%rbp), %rax
movl $0x15, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x450(%rbp), %rsi
leaq -0x450(%rbp), %rdx
addq -0x460(%rbp), %rdx
leaq 0xd7286(%rip), %rdi     # 0xeffc1
callq 0x19680
cmpl $0x0, %eax
jne 0x18d66
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0xe, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x8, -0x460(%rbp)
jle 0x18db3
leaq -0x450(%rbp), %rax
movq (%rax), %rax
movabsq $0x6867347470797263, %rcx # imm = 0x6867347470797263
subq %rcx, %rax
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x18db3
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq -0x20(%rbp), %rax
movl $0x14, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x1, -0x460(%rbp)
jl 0x18e09
movzbl -0x450(%rbp), %eax
cmpl $0x3e, %eax
jne 0x18e09
leaq -0x450(%rbp), %rdi
leaq -0x450(%rbp), %rsi
addq -0x460(%rbp), %rsi
callq 0x19740
cmpl $0x0, %eax
je 0x18e09
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x10, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
cmpq $0x1, -0x460(%rbp)
jl 0x18e5f
movzbl -0x450(%rbp), %eax
cmpl $0x40, %eax
jne 0x18e5f
leaq -0x450(%rbp), %rdi
leaq -0x450(%rbp), %rsi
addq -0x460(%rbp), %rsi
callq 0x19740
cmpl $0x0, %eax
je 0x18e5f
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x11, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x50(%rbp), %rdi
leaq -0x450(%rbp), %rdx
leaq -0x450(%rbp), %rcx
addq -0x460(%rbp), %rcx
movl $0x18, %esi
leaq -0x454(%rbp), %r8
callq 0x19890
cmpl $0x0, %eax
jle 0x18ffb
leaq -0x50(%rbp), %rdi
leaq 0xd712f(%rip), %rsi     # 0xeffcc
callq 0x19af0
movl -0x454(%rbp), %ecx
shll %ecx
addl $0x9, %ecx
cmpl %ecx, %eax
jl 0x18ee6
movq -0x20(%rbp), %rax
movl $0x1, (%rax)
movq -0x20(%rbp), %rax
movl $0x3, 0x4(%rax)
movq -0x20(%rbp), %rax
movw $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movw $0xffff, 0xa(%rax)      # imm = 0xFFFF
movl $0x0, -0x4(%rbp)
jmp 0x1903e
movq -0x20(%rbp), %rax
cmpl $0x1, 0xc(%rax)
jne 0x18f26
leaq -0x50(%rbp), %rdi
leaq 0xd70f2(%rip), %rsi     # 0xeffed
callq 0x19af0
cmpl $0x6, %eax
jne 0x18f26
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0x7, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x29(%rbp), %rdi
leaq 0xd70c3(%rip), %rsi     # 0xefff4
callq 0x40c0
cmpq $0x0, %rax
je 0x18f72
leaq -0x50(%rbp), %rdi
leaq 0xd70b1(%rip), %rsi     # 0xefff8
callq 0x19af0
cmpl $0x6, %eax
jne 0x18f72
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0x13, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x29(%rbp), %rdi
leaq 0xdce14(%rip), %rsi     # 0xf5d91
callq 0x40c0
cmpq $0x0, %rax
je 0x18fbe
leaq -0x50(%rbp), %rdi
leaq 0xd706c(%rip), %rsi     # 0xeffff
callq 0x19af0
cmpl $0x5, %eax
jne 0x18fbe
movq -0x20(%rbp), %rax
movl $0x3, (%rax)
movq -0x20(%rbp), %rax
movl $0x12, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
leaq -0x50(%rbp), %rdi
leaq 0xd703c(%rip), %rsi     # 0xf0005
callq 0x19af0
cmpl $0x3, %eax
jl 0x18ff1
movq -0x20(%rbp), %rax
movl $0x4, (%rax)
movq -0x20(%rbp), %rax
movl $0xd, 0x4(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x1903e
jmp 0x18ff3
jmp 0x18ff5
jmp 0x18ff7
jmp 0x18ff9
jmp 0x18ffb
jmp 0x18ffd
jmp 0x18fff
jmp 0x19001
jmp 0x19003
jmp 0x19005
jmp 0x19007
jmp 0x19009
jmp 0x1900b
jmp 0x1900d
leaq -0x450(%rbp), %rdi
leaq -0x450(%rbp), %rsi
addq -0x460(%rbp), %rsi
callq 0x19b80
cmpl $0x0, %eax
je 0x19037
movq -0x20(%rbp), %rax
movl $0x2, 0x4(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
nopw (%rax,%rax)