// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/tbx.c
// Function: tbx_parse1
int tbx_parse1(const tbx_conf_t *conf, size_t len, char *line, tbx_intv_t *intv)
{
    size_t i, b = 0;
    int id = 1, getlen = 0, alcnt = 0, haveins = 0, lenpos = -1;
    char *s, *t;
    uint8_t insals[8192];
    int64_t reflen = 0, svlen = 0, fmtlen = 0, tmp = 0;

    intv->ss = intv->se = 0; intv->beg = intv->end = -1;
    for (i = 0; i <= len; ++i) {
        if (line[i] == '\t' || line[i] == 0) {
            if (id == conf->sc) {
                intv->ss = line + b; intv->se = line + i;
            } else if (id == conf->bc) {
                // here ->beg is 0-based.
                if ((conf->preset&0xffff) == TBX_GAF){
                    // if gaf find the smallest and largest node id
                    char *t;
                    int64_t nodeid = -1;
                    for (s = line + b + 1; s < line + i;) {
                        nodeid = strtoll(s, &t, 0);
                        if(intv->beg == -1){
                            intv->beg = intv->end = nodeid;
                        } else {
                            if(nodeid < intv->beg){
                                intv->beg = nodeid;
                            }

                            if(nodeid > intv->end){
                                intv->end = nodeid;
                            }
                        }
                        s = t + 1;
                    }
                } else {
                    intv->beg = strtoll(line + b, &s, 0);

                    if (conf->bc <= conf->ec) // don't overwrite an already set end point
                        intv->end = intv->beg;

                    if ( s==line+b ) return -1; // expected int

                    if (!(conf->preset&TBX_UCSC))
                        --intv->beg;
                    else if (conf->bc <= conf->ec)
                        ++intv->end;

                    if (intv->beg < 0) {
                        hts_log_warning("Coordinate <= 0 detected. "
                                        "Did you forget to use the -0 option?");
                        intv->beg = 0;
                    }
                    if (intv->end < 1) intv->end = 1;
                }
            } else {
                if ((conf->preset&0xffff) == TBX_GENERIC) {
                    if (id == conf->ec)
                    {
                        intv->end = strtoll(line + b, &s, 0);
                        if ( s==line+b ) return -1; // expected int
                    }
                } else if ((conf->preset&0xffff) == TBX_SAM) {
                    if (id == 6) { // CIGAR
                        int l = 0;
                        char *t;
                        for (s = line + b; s < line + i;) {
                            long x = strtol(s, &t, 10);
                            char op = toupper_c(*t);
                            if (op == 'M' || op == 'D' || op == 'N') l += x;
                            s = t + 1;
                        }
                        if (l == 0) l = 1;
                        intv->end = intv->beg + l;
                    }
                } else if ((conf->preset&0xffff) == TBX_VCF) {
                    if (id == 4) { //ref allele
                        if (b < i) intv->end = intv->beg + (i - b);
                        ++alcnt;
                        reflen = i - b;
                    } if (id == 5) {    //alt allele
                        int lastbyte = 0, c = line[i];
                        insals[lastbyte] = 0;
                        line[i] = 0;
                        s = line + b;
                        do {
                            t = strchr(s, ',');
                            if (alcnt >> 3 != lastbyte) {   //initialize insals
                                lastbyte = alcnt >> 3;
                                insals[lastbyte] = 0;
                            }
                            ++alcnt;
                            if (t) {
                                *t = 0;
                            }
                            if (s[0] == '<') {
                                if (!strcmp("<INS>", s)) {  //note inserts
                                    insals[lastbyte] |= 1 << ((alcnt - 1) & 7);
                                    haveins = 1;
                                } else if (!strcmp("<*>", s) ||
                                    !strcmp("<NON_REF>", s)) {  //note gvcf
                                    getlen = 1;
                                }
                            }
                            if (t) {
                                *t = ',';
                                s = t + 1;
                            }
                        } while (t && alcnt < 65536);   //max allcnt is 65535
                        line[i] = c;
                    } else if (id == 8) { //INFO, look for "END=" / "SVLEN"
                        int c = line[i], d = 1;
                        line[i] = 0;
                        s = strstr(line + b, "END=");
                        if (s == line + b) s += 4;
                        else if (s) {
                            s = strstr(line + b, ";END=");
                            if (s) s += 5;
                        }
                        if (s && *s != '.') {
                            long long end = strtoll(s, &s, 0);
                            if (end <= intv->beg) {
                                static int reported = 0;
                                if (!reported) {
                                    int l = intv->ss ? (int) (intv->se - intv->ss) : 0;
                                    hts_log_warning("VCF INFO/END=%lld is smaller than POS at %.*s:%"PRIhts_pos"\n"
                                                    "This tag will be ignored. "
                                                    "Note: only one invalid END tag will be reported.",
                                                    end, l >= 0 ? l : 0,
                                                    intv->ss ? intv->ss : "",
                                                    intv->beg);
                                    reported = 1;
                                }
                            } else {
                                intv->end = end;
                            }
                        }
                        s = strstr(line + b, "SVLEN=");
                        if (s == line + b) s += 6;  //at start of info
                        else if (s) {               //not at the start
                            s = strstr(line + b, ";SVLEN=");
                            if (s) s += 7;
                        }
                        while (s && d < alcnt) {
                            t = strchr(s, ',');
                            if ((haveins) && (insals[d >> 3] & (1 << (d & 7)))) {
                                tmp = 1;    //<INS>
                            } else {
                                tmp = atoll(s);
                                tmp = tmp < 0 ? llabs(tmp) : tmp;
                            }
                            svlen = svlen < tmp ? tmp : svlen;
                            s = t ? t + 1 : NULL;
                            ++d;
                        }
                        line[i] = c;
                    } else if (getlen && id == 9 ) {    //FORMAT
                        int c = line[i], pos = -1;
                        line[i] = 0;
                        s = line + b;
                        while (s) {
                            ++pos;
                            if (!(t = strchr(s, ':'))) {    //no further fields
                                if (!strcmp(s, "LEN")) {
                                    lenpos = pos;
                                }
                                break;  //not present at all!
                            } else {
                                *t = '\0';
                                if (!strcmp(s, "LEN")) {
                                    lenpos = pos;
                                    *t = ':';
                                    break;
                                }
                                *t = ':';
                                s = t + 1;  //check next one
                            }
                        }
                        line[i] = c;
                        if (lenpos == -1) { //not present
                            break;
                        }
                    } else if (id > 9 && getlen && lenpos != -1) {
                        //get LEN from sample
                        int c = line[i], d = 0;
                        line[i] = 0; tmp = 0;
                        s = line + b;
                        for (d = 0; d <= lenpos; ++d) {
                            if (d == lenpos) {
                                tmp = atoll(s);
                                break;
                            }
                            if ((t = strchr(s, ':'))) {
                                s = t + 1;
                            } else {
                                break;    //not in sycn with fmt def!
                            }
                        }
                        fmtlen = fmtlen < tmp ? tmp : fmtlen;
                        line[i] = c;
                    }
                }
            }
            b = i + 1;  //beginning if current field
            ++id;
        }
    }
    if ((conf->preset&0xffff) == TBX_VCF) {
        tmp = reflen < svlen ?
                svlen < fmtlen ? fmtlen : svlen :
                reflen < fmtlen ? fmtlen : reflen ;
        tmp += intv->beg;
        intv->end = intv->end < tmp ? tmp : intv->end;

        //NOTE: 'end' calculation be in sync with end/rlen in vcf.c:get_rlen
    }
    if (intv->ss == 0 || intv->se == 0 || intv->beg < 0 || intv->end < 0) return -1;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2150, %rsp           # imm = 0x2150
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq $0x0, -0x38(%rbp)
movl $0x1, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x48(%rbp)
movl $0xffffffff, -0x4c(%rbp) # imm = 0xFFFFFFFF
movq $0x0, -0x2068(%rbp)
movq $0x0, -0x2070(%rbp)
movq $0x0, -0x2078(%rbp)
movq $0x0, -0x2080(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x28(%rbp), %rax
movq $-0x1, 0x8(%rax)
movq -0x28(%rbp), %rax
movq $-0x1, (%rax)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x18(%rbp), %rax
ja 0xf1508
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x9, %eax
je 0xf09bd
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0xf14f5
movl -0x3c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jne 0xf09ee
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
addq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
jmp 0xf14e0
movl -0x3c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jne 0xf0bbe
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x3, %eax
jne 0xf0ad6
movq $-0x1, -0x2090(%rbp)
movq -0x20(%rbp), %rax
addq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x30(%rbp), %rcx
cmpq %rcx, %rax
jae 0xf0ad1
movq -0x58(%rbp), %rdi
leaq -0x2088(%rbp), %rsi
xorl %edx, %edx
callq 0x4090
movq %rax, -0x2090(%rbp)
movq -0x28(%rbp), %rax
cmpq $-0x1, (%rax)
jne 0xf0a7d
movq -0x2090(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
jmp 0xf0abd
movq -0x2090(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq (%rcx), %rax
jge 0xf0a9b
movq -0x2090(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x2090(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jle 0xf0abb
movq -0x2090(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0xf0abd
movq -0x2088(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0a2d
jmp 0xf0bb9
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x4090
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jg 0xf0b12
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
cmpq %rcx, %rax
jne 0xf0b2f
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xf1643
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0x10000, %eax          # imm = 0x10000
cmpl $0x0, %eax
jne 0xf0b4f
movq -0x28(%rbp), %rax
movq (%rax), %rcx
addq $-0x1, %rcx
movq %rcx, (%rax)
jmp 0xf0b71
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jg 0xf0b6f
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
jmp 0xf0b71
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jge 0xf0ba0
movl $0x3, %edi
leaq 0x1e691(%rip), %rsi     # 0x10f218
leaq 0x1e695(%rip), %rdx     # 0x10f223
movb $0x0, %al
callq 0x9d90
movq -0x28(%rbp), %rax
movq $0x0, (%rax)
movq -0x28(%rbp), %rax
cmpq $0x1, 0x8(%rax)
jge 0xf0bb7
movq -0x28(%rbp), %rax
movq $0x1, 0x8(%rax)
jmp 0xf0bb9
jmp 0xf14de
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x0, %eax
jne 0xf0c1c
movl -0x3c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jne 0xf0c17
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x4090
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
cmpq %rcx, %rax
jne 0xf0c15
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xf1643
jmp 0xf0c17
jmp 0xf14dc
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x1, %eax
jne 0xf0d16
cmpl $0x6, -0x3c(%rbp)
jne 0xf0d11
movl $0x0, -0x2094(%rbp)
movq -0x20(%rbp), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x30(%rbp), %rcx
cmpq %rcx, %rax
jae 0xf0ce5
movq -0x58(%rbp), %rdi
leaq -0x20a0(%rbp), %rsi
movl $0xa, %edx
callq 0x46c0
movq %rax, -0x20a8(%rbp)
movq -0x20a0(%rbp), %rax
movsbl (%rax), %edi
callq 0xf1650
movb %al, -0x20a9(%rbp)
movsbl -0x20a9(%rbp), %eax
cmpl $0x4d, %eax
je 0xf0cba
movsbl -0x20a9(%rbp), %eax
cmpl $0x44, %eax
je 0xf0cba
movsbl -0x20a9(%rbp), %eax
cmpl $0x4e, %eax
jne 0xf0cd1
movq -0x20a8(%rbp), %rcx
movslq -0x2094(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x2094(%rbp)
movq -0x20a0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0c50
cmpl $0x0, -0x2094(%rbp)
jne 0xf0cf8
movl $0x1, -0x2094(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movslq -0x2094(%rbp), %rax
addq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0xf14da
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x2, %eax
jne 0xf14d8
cmpl $0x4, -0x3c(%rbp)
jne 0xf0d6c
movq -0x38(%rbp), %rax
cmpq -0x30(%rbp), %rax
jae 0xf0d54
movq -0x28(%rbp), %rax
movq (%rax), %rcx
movq -0x30(%rbp), %rax
subq -0x38(%rbp), %rax
addq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
movq -0x30(%rbp), %rax
subq -0x38(%rbp), %rax
movq %rax, -0x2068(%rbp)
cmpl $0x5, -0x3c(%rbp)
jne 0xf0ef3
movl $0x0, -0x20b0(%rbp)
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x20b4(%rbp)
movslq -0x20b0(%rbp), %rax
movb $0x0, -0x2060(%rbp,%rax)
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x20(%rbp), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movl $0x2c, %esi
callq 0x4160
movq %rax, -0x60(%rbp)
movl -0x44(%rbp), %eax
sarl $0x3, %eax
cmpl -0x20b0(%rbp), %eax
je 0xf0df4
movl -0x44(%rbp), %eax
sarl $0x3, %eax
movl %eax, -0x20b0(%rbp)
movslq -0x20b0(%rbp), %rax
movb $0x0, -0x2060(%rbp,%rax)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0xf0e0b
movq -0x60(%rbp), %rax
movb $0x0, (%rax)
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
jne 0xf0e92
movq -0x58(%rbp), %rsi
leaq 0x1834e(%rip), %rdi     # 0x109170
callq 0x46b0
cmpl $0x0, %eax
jne 0xf0e5d
movl -0x44(%rbp), %ecx
subl $0x1, %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movslq -0x20b0(%rbp), %rax
movzbl -0x2060(%rbp,%rax), %ecx
orl %edx, %ecx
movb %cl, -0x2060(%rbp,%rax)
movl $0x1, -0x48(%rbp)
jmp 0xf0e90
movq -0x58(%rbp), %rsi
leaq 0x1830e(%rip), %rdi     # 0x109176
callq 0x46b0
cmpl $0x0, %eax
je 0xf0e87
movq -0x58(%rbp), %rsi
leaq 0x182fd(%rip), %rdi     # 0x10917a
callq 0x46b0
cmpl $0x0, %eax
jne 0xf0e8e
movl $0x1, -0x40(%rbp)
jmp 0xf0e90
jmp 0xf0e92
cmpq $0x0, -0x60(%rbp)
je 0xf0eac
movq -0x60(%rbp), %rax
movb $0x2c, (%rax)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0eae
xorl %eax, %eax
cmpq $0x0, -0x60(%rbp)
movb %al, -0x20dd(%rbp)
je 0xf0ecd
cmpl $0x10000, -0x44(%rbp)   # imm = 0x10000
setl %al
movb %al, -0x20dd(%rbp)
movb -0x20dd(%rbp), %al
testb $0x1, %al
jne 0xf0db9
movl -0x20b4(%rbp), %eax
movb %al, %dl
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0xf14d6
cmpl $0x8, -0x3c(%rbp)
jne 0xf12b4
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x20b8(%rbp)
movl $0x1, -0x20bc(%rbp)
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq 0x1e32f(%rip), %rsi     # 0x10f263
callq 0x40b0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
cmpq %rcx, %rax
jne 0xf0f5c
movq -0x58(%rbp), %rax
addq $0x4, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0f92
cmpq $0x0, -0x58(%rbp)
je 0xf0f90
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq 0x1e2f0(%rip), %rsi     # 0x10f262
callq 0x40b0
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0xf0f8e
movq -0x58(%rbp), %rax
addq $0x5, %rax
movq %rax, -0x58(%rbp)
jmp 0xf0f90
jmp 0xf0f92
cmpq $0x0, -0x58(%rbp)
je 0xf10de
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
je 0xf10de
movq -0x58(%rbp), %rdi
leaq -0x58(%rbp), %rsi
xorl %edx, %edx
callq 0x4090
movq %rax, -0x20c8(%rbp)
movq -0x20c8(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq (%rcx), %rax
jg 0xf10cd
cmpl $0x0, 0x3988a(%rip)     # 0x12a868
jne 0xf10cb
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xf100a
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq %rcx, %rax
movl %eax, -0x20e4(%rbp)
jmp 0xf1014
xorl %eax, %eax
movl %eax, -0x20e4(%rbp)
jmp 0xf1014
movl -0x20e4(%rbp), %eax
movl %eax, -0x20cc(%rbp)
movq -0x20c8(%rbp), %rax
movq %rax, -0x20f0(%rbp)
cmpl $0x0, -0x20cc(%rbp)
jl 0xf1045
movl -0x20cc(%rbp), %eax
movl %eax, -0x20f4(%rbp)
jmp 0xf104f
xorl %eax, %eax
movl %eax, -0x20f4(%rbp)
jmp 0xf104f
movl -0x20f4(%rbp), %eax
movl %eax, -0x20f8(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xf1077
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x2100(%rbp)
jmp 0xf1087
leaq 0x129ac(%rip), %rax     # 0x103a2a
movq %rax, -0x2100(%rbp)
jmp 0xf1087
movl -0x20f8(%rbp), %r8d
movq -0x20f0(%rbp), %rcx
movq -0x2100(%rbp), %r9
movq -0x28(%rbp), %rax
movq (%rax), %rax
movl $0x3, %edi
leaq 0x1e169(%rip), %rsi     # 0x10f218
leaq 0x1e1b2(%rip), %rdx     # 0x10f268
movq %rax, (%rsp)
movb $0x0, %al
callq 0x9d90
movl $0x1, 0x3979d(%rip)     # 0x12a868
jmp 0xf10dc
movq -0x20c8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0xf10de
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq 0x1e1f9(%rip), %rsi     # 0x10f2e6
callq 0x40b0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x20(%rbp), %rcx
addq -0x38(%rbp), %rcx
cmpq %rcx, %rax
jne 0xf1115
movq -0x58(%rbp), %rax
addq $0x6, %rax
movq %rax, -0x58(%rbp)
jmp 0xf114b
cmpq $0x0, -0x58(%rbp)
je 0xf1149
movq -0x20(%rbp), %rdi
addq -0x38(%rbp), %rdi
leaq 0x1e1ba(%rip), %rsi     # 0x10f2e5
callq 0x40b0
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0xf1147
movq -0x58(%rbp), %rax
addq $0x7, %rax
movq %rax, -0x58(%rbp)
jmp 0xf1149
jmp 0xf114b
jmp 0xf114d
xorl %eax, %eax
cmpq $0x0, -0x58(%rbp)
movb %al, -0x2101(%rbp)
je 0xf116e
movl -0x20bc(%rbp), %eax
cmpl -0x44(%rbp), %eax
setl %al
movb %al, -0x2101(%rbp)
movb -0x2101(%rbp), %al
testb $0x1, %al
jne 0xf117d
jmp 0xf129c
movq -0x58(%rbp), %rdi
movl $0x2c, %esi
callq 0x4160
movq %rax, -0x60(%rbp)
cmpl $0x0, -0x48(%rbp)
je 0xf11ce
movl -0x20bc(%rbp), %eax
sarl $0x3, %eax
cltq
movzbl -0x2060(%rbp,%rax), %eax
movl -0x20bc(%rbp), %ecx
andl $0x7, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0xf11ce
movq $0x1, -0x2080(%rbp)
jmp 0xf121e
movq -0x58(%rbp), %rdi
callq 0x4340
movq %rax, -0x2080(%rbp)
cmpq $0x0, -0x2080(%rbp)
jge 0xf1202
movq -0x2080(%rbp), %rax
movq %rax, %rcx
negq %rcx
cmovnsq %rcx, %rax
movq %rax, -0x2110(%rbp)
jmp 0xf1210
movq -0x2080(%rbp), %rax
movq %rax, -0x2110(%rbp)
movq -0x2110(%rbp), %rax
movq %rax, -0x2080(%rbp)
movq -0x2070(%rbp), %rax
cmpq -0x2080(%rbp), %rax
jge 0xf123e
movq -0x2080(%rbp), %rax
movq %rax, -0x2118(%rbp)
jmp 0xf124c
movq -0x2070(%rbp), %rax
movq %rax, -0x2118(%rbp)
movq -0x2118(%rbp), %rax
movq %rax, -0x2070(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0xf1272
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2120(%rbp)
jmp 0xf127d
xorl %eax, %eax
movq %rax, -0x2120(%rbp)
jmp 0xf127d
movq -0x2120(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x20bc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20bc(%rbp)
jmp 0xf114d
movl -0x20b8(%rbp), %eax
movb %al, %dl
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0xf14d4
cmpl $0x0, -0x40(%rbp)
je 0xf13b7
cmpl $0x9, -0x3c(%rbp)
jne 0xf13b7
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x20d0(%rbp)
movl $0xffffffff, -0x20d4(%rbp) # imm = 0xFFFFFFFF
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x20(%rbp), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0xf1394
movl -0x20d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20d4(%rbp)
movq -0x58(%rbp), %rdi
movl $0x3a, %esi
callq 0x4160
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
jne 0xf134e
movq -0x58(%rbp), %rdi
leaq 0x16f42(%rip), %rsi     # 0x10827b
callq 0x46b0
cmpl $0x0, %eax
jne 0xf134c
movl -0x20d4(%rbp), %eax
movl %eax, -0x4c(%rbp)
jmp 0xf1394
movq -0x60(%rbp), %rax
movb $0x0, (%rax)
movq -0x58(%rbp), %rdi
leaq 0x16f1b(%rip), %rsi     # 0x10827b
callq 0x46b0
cmpl $0x0, %eax
jne 0xf137c
movl -0x20d4(%rbp), %eax
movl %eax, -0x4c(%rbp)
movq -0x60(%rbp), %rax
movb $0x3a, (%rax)
jmp 0xf1394
movq -0x60(%rbp), %rax
movb $0x3a, (%rax)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0xf12fc
movl -0x20d0(%rbp), %eax
movb %al, %dl
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb %dl, (%rax,%rcx)
cmpl $-0x1, -0x4c(%rbp)
jne 0xf13b2
jmp 0xf1508
jmp 0xf14d2
cmpl $0x9, -0x3c(%rbp)
jle 0xf14d0
cmpl $0x0, -0x40(%rbp)
je 0xf14d0
cmpl $-0x1, -0x4c(%rbp)
je 0xf14d0
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movl %eax, -0x20d8(%rbp)
movl $0x0, -0x20dc(%rbp)
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq $0x0, -0x2080(%rbp)
movq -0x20(%rbp), %rax
addq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movl $0x0, -0x20dc(%rbp)
movl -0x20dc(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jg 0xf1481
movl -0x20dc(%rbp), %eax
cmpl -0x4c(%rbp), %eax
jne 0xf1446
movq -0x58(%rbp), %rdi
callq 0x4340
movq %rax, -0x2080(%rbp)
jmp 0xf1481
movq -0x58(%rbp), %rdi
movl $0x3a, %esi
callq 0x4160
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
je 0xf146c
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0xf146e
jmp 0xf1481
jmp 0xf1470
movl -0x20dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20dc(%rbp)
jmp 0xf141e
movq -0x2078(%rbp), %rax
cmpq -0x2080(%rbp), %rax
jge 0xf14a1
movq -0x2080(%rbp), %rax
movq %rax, -0x2128(%rbp)
jmp 0xf14af
movq -0x2078(%rbp), %rax
movq %rax, -0x2128(%rbp)
movq -0x2128(%rbp), %rax
movq %rax, -0x2078(%rbp)
movl -0x20d8(%rbp), %eax
movb %al, %dl
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0xf14d2
jmp 0xf14d4
jmp 0xf14d6
jmp 0xf14d8
jmp 0xf14da
jmp 0xf14dc
jmp 0xf14de
jmp 0xf14e0
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xf14f7
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0xf0989
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xffff, %eax           # imm = 0xFFFF
cmpl $0x2, %eax
jne 0xf1608
movq -0x2068(%rbp), %rax
cmpq -0x2070(%rbp), %rax
jge 0xf156a
movq -0x2070(%rbp), %rax
cmpq -0x2078(%rbp), %rax
jge 0xf154c
movq -0x2078(%rbp), %rax
movq %rax, -0x2130(%rbp)
jmp 0xf155a
movq -0x2070(%rbp), %rax
movq %rax, -0x2130(%rbp)
movq -0x2130(%rbp), %rax
movq %rax, -0x2138(%rbp)
jmp 0xf15a6
movq -0x2068(%rbp), %rax
cmpq -0x2078(%rbp), %rax
jge 0xf158a
movq -0x2078(%rbp), %rax
movq %rax, -0x2140(%rbp)
jmp 0xf1598
movq -0x2068(%rbp), %rax
movq %rax, -0x2140(%rbp)
movq -0x2140(%rbp), %rax
movq %rax, -0x2138(%rbp)
movq -0x2138(%rbp), %rax
movq %rax, -0x2080(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
addq -0x2080(%rbp), %rax
movq %rax, -0x2080(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
cmpq -0x2080(%rbp), %rax
jge 0xf15ea
movq -0x2080(%rbp), %rax
movq %rax, -0x2148(%rbp)
jmp 0xf15f9
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x2148(%rbp)
movq -0x2148(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xf1633
movq -0x28(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0xf1633
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jl 0xf1633
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jge 0xf163c
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xf1643
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x2150, %rsp           # imm = 0x2150
popq %rbp
retq
nop