// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2098, %rsp           # imm = 0x2098
movq %rcx, %r13
leaq 0x10(%rcx), %rax
movq %rax, 0x80(%rsp)
leaq 0x8(%rcx), %r14
pxor %xmm0, %xmm0
movdqu %xmm0, 0x10(%rcx)
leaq 0x1(%rdx), %rax
movq %rax, 0x88(%rsp)
pcmpeqd %xmm0, %xmm0
movdqu %xmm0, (%rcx)
movl $0xffffffff, 0x44(%rsp) # imm = 0xFFFFFFFF
movl $0x1, %r8d
xorl %r15d, %r15d
xorl %ebp, %ebp
xorl %ebx, %ebx
movl $0x0, 0x40(%rsp)
movl $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
movq $0x0, 0x68(%rsp)
movq %rcx, 0x50(%rsp)
movq %rdi, 0x38(%rsp)
movq %rsi, 0x28(%rsp)
movq %r14, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movzbl (%rdx,%r15), %r14d
testl %r14d, %r14d
je 0x9ace8
cmpl $0x9, %r14d
jne 0x9ad98
leaq (%rdx,%r15), %r12
cmpl 0x4(%rdi), %r8d
jne 0x9ad07
addq %rdx, %rbp
movq %rbp, 0x10(%r13)
movq %r12, 0x18(%r13)
movq 0x20(%rsp), %r14
jmp 0x9afad
movzwl (%rdi), %eax
cmpl 0x8(%rdi), %r8d
movl %r8d, 0x14(%rsp)
jne 0x9ada5
cmpl $0x3, %eax
movq 0x20(%rsp), %r14
jne 0x9ae0c
addq 0x88(%rsp), %rbp
movq %rbp, 0x30(%rsp)
cmpq %r12, %rbp
jae 0x9afa8
movq %rbp, %rdi
leaq 0x78(%rsp), %rsi
xorl %edx, %edx
callq 0x40a0
movq (%r13), %rcx
cmpq $-0x1, %rcx
je 0x9ad69
cmpq %rcx, %rax
jge 0x9ad5f
movq %rax, (%r13)
movq %r14, %rcx
cmpq (%r14), %rax
jg 0x9ad6f
jmp 0x9ad72
movq %rax, (%r14)
movq %r13, %rcx
movq %rax, (%rcx)
movq 0x78(%rsp), %rbp
incq %rbp
cmpq %r12, %rbp
jb 0x9ad3d
movq %rbp, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
jmp 0x9afa8
incq %r15
movq 0x20(%rsp), %r14
jmp 0x9afb6
cmpl $0x2, %eax
je 0x9aefe
cmpl $0x1, %eax
je 0x9ae61
testl %eax, %eax
movq 0x20(%rsp), %r14
jne 0x9afa8
cmpl 0xc(%rdi), %r8d
movq 0x18(%rsp), %rdx
jne 0x9afad
addq %rdx, %rbp
movq %rbp, %rdi
leaq 0x30(%rsp), %rsi
xorl %edx, %edx
callq 0x40a0
movl 0x14(%rsp), %r8d
movq 0x28(%rsp), %rsi
movq 0x38(%rsp), %rdi
movq %rax, (%r14)
movq 0x18(%rsp), %rdx
cmpq %rbp, 0x30(%rsp)
jne 0x9afad
jmp 0x9b507
addq 0x18(%rsp), %rbp
movq %rbp, %rdi
leaq 0x30(%rsp), %rsi
xorl %edx, %edx
callq 0x40a0
movq 0x38(%rsp), %rdi
movq %rax, (%r13)
movl 0x8(%rdi), %ecx
movl 0xc(%rdi), %edx
cmpl %edx, %ecx
jg 0x9ae36
movq %rax, (%r14)
cmpq %rbp, 0x30(%rsp)
je 0x9b507
testb $0x1, 0x2(%rdi)
jne 0x9af54
decq %rax
movq %rax, (%r13)
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
jmp 0x9af65
cmpl $0x6, %r8d
jne 0x9afc4
movq 0x18(%rsp), %rax
leaq (%rax,%rbp), %r13
xorl %r14d, %r14d
cmpq %rbp, %r15
jle 0x9aecd
xorl %r14d, %r14d
callq 0x4090
movq %rax, %rbp
movq %r13, %rdi
leaq 0x78(%rsp), %rsi
movl $0xa, %edx
callq 0x46f0
movq 0x78(%rsp), %r13
movzbl (%r13), %ecx
movq (%rbp), %rdx
movzbl (%rdx,%rcx,4), %ecx
addl $-0x44, %ecx
cmpl $0xa, %ecx
ja 0x9aec0
movl $0x601, %edx            # imm = 0x601
btl %ecx, %edx
jae 0x9aec0
addl %eax, %r14d
movl 0x14(%rsp), %r8d
incq %r13
cmpq %r12, %r13
jb 0x9ae87
movq %r13, 0x30(%rsp)
cmpl $0x1, %r14d
adcl $0x0, %r14d
movslq %r14d, %rax
movq 0x50(%rsp), %r13
addq (%r13), %rax
movq %rax, 0x8(%r13)
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
jmp 0x9acfd
cmpl $0x8, %r8d
je 0x9b0ff
cmpl $0x5, %r8d
movq 0x18(%rsp), %rdx
je 0x9afce
cmpl $0x4, %r8d
jne 0x9b14b
movq %r15, %rax
subq %rbp, %rax
movq %rax, 0x68(%rsp)
jbe 0x9af49
movq %r15, %rcx
subq %rbp, %rcx
movq (%r13), %rax
movq %rcx, 0x68(%rsp)
addq %rcx, %rax
movq %rax, 0x8(%r13)
movq 0x18(%rsp), %rdx
movq 0x20(%rsp), %r14
incl 0x40(%rsp)
jmp 0x9afad
cmpl %edx, %ecx
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
jg 0x9af65
incq (%r14)
testq %rax, %rax
jns 0x9af9b
movl $0x3, %edi
leaq 0x1c4b6(%rip), %rsi     # 0xb742c
leaq 0x1c4ba(%rip), %rdx     # 0xb7437
xorl %eax, %eax
callq 0x942d
movl 0x14(%rsp), %r8d
movq 0x28(%rsp), %rsi
movq 0x38(%rsp), %rdi
movq $0x0, (%r13)
cmpq $0x0, (%r14)
jg 0x9afa8
movq $0x1, (%r14)
movq 0x18(%rsp), %rdx
incq %r15
incl %r8d
movq %r15, %rbp
cmpq %rsi, %r15
jbe 0x9acd4
jmp 0x9b4a7
movq 0x18(%rsp), %rdx
jmp 0x9acfd
movl %ebx, 0x48(%rsp)
xorl %eax, %eax
movb %al, 0x90(%rsp)
movl $0x0, 0x4c(%rsp)
movb %al, (%r12)
addq %rdx, %rbp
movl 0x40(%rsp), %r8d
cmpl $0x10000, %r8d          # imm = 0x10000
movl $0xffff, %eax           # imm = 0xFFFF
cmovgel %r8d, %eax
incl %eax
movl %eax, 0x5c(%rsp)
movq %rbp, %rdi
movl $0x2c, %esi
movl %r8d, %ebx
callq 0x4180
movl %ebx, %r8d
movq %rax, %r13
movl %ebx, %eax
sarl $0x3, %eax
cmpl 0x4c(%rsp), %eax
je 0x9b035
movslq %eax, %rcx
movb $0x0, 0x90(%rsp,%rcx)
movl %eax, 0x4c(%rsp)
testq %r13, %r13
je 0x9b03f
movb $0x0, (%r13)
cmpb $0x3c, (%rbp)
jne 0x9b0be
leaq 0x12054(%rip), %rdi     # 0xad0a0
movq %rbp, %rsi
callq 0x46e0
testl %eax, %eax
je 0x9b09a
leaq 0x12047(%rip), %rdi     # 0xad0a6
movq %rbp, %rsi
callq 0x46e0
testl %eax, %eax
je 0x9b07e
leaq 0x12038(%rip), %rdi     # 0xad0aa
movq %rbp, %rsi
callq 0x46e0
testl %eax, %eax
jne 0x9b086
movl $0x1, 0x48(%rsp)
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
movl %ebx, %r8d
jmp 0x9b0cd
movl %ebx, %r8d
movl %r8d, %ecx
andb $0x7, %cl
movl $0x1, 0x58(%rsp)
movl $0x1, %eax
shll %cl, %eax
movslq 0x4c(%rsp), %rcx
orb %al, 0x90(%rsp,%rcx)
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
incl %r8d
testq %r13, %r13
je 0x9b1ca
movb $0x2c, (%r13)
incq %r13
movq %r13, %rbp
cmpl %r8d, 0x5c(%rsp)
jne 0x9b005
movq %r13, %rbp
movl 0x5c(%rsp), %eax
movl %eax, 0x40(%rsp)
jmp 0x9b1cf
movb $0x0, (%r12)
addq 0x18(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1c364(%rip), %rsi     # 0xb7477
callq 0x40d0
cmpq %rbp, %rax
je 0x9b25a
testq %rax, %rax
je 0x9b3b1
movq %rbp, %rdi
leaq 0x1c342(%rip), %rsi     # 0xb7476
callq 0x40d0
testq %rax, %rax
je 0x9b3b1
addq $0x5, %rax
jmp 0x9b25e
testl %ebx, %ebx
setne %al
cmpl $0x9, %r8d
sete %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x9b1eb
movb $0x0, (%r12)
addq 0x18(%rsp), %rbp
movq %rbp, %rdi
movl $0x3a, %esi
callq 0x4180
testq %rax, %rax
je 0x9b295
movq %rax, %r13
xorl %ebx, %ebx
movb $0x0, (%r13)
movq %rbp, %rdi
leaq 0x11015(%rip), %rsi     # 0xac1ab
callq 0x46e0
testl %eax, %eax
je 0x9b2ed
movb $0x3a, (%r13)
movq %r13, %rbp
incq %rbp
incl %ebx
movq %rbp, %rdi
movl $0x3a, %esi
callq 0x4180
movq %rax, %r13
testq %rax, %rax
jne 0x9b187
jmp 0x9b297
movl %r8d, 0x40(%rsp)
movl 0x14(%rsp), %r8d
movq %rbp, 0x30(%rsp)
movb %r14b, (%r12)
movq 0x50(%rsp), %r13
movl 0x48(%rsp), %ebx
jmp 0x9acfd
testl %ebx, %ebx
movq 0x18(%rsp), %rdx
je 0x9acfd
cmpl $0xa, %r8d
jl 0x9acfd
movl 0x44(%rsp), %eax
cmpl $-0x1, %eax
je 0x9acfd
movq 0x20(%rsp), %r13
movb $0x0, (%r12)
addq %rdx, %rbp
testl %eax, %eax
js 0x9b331
movl %eax, %ebx
je 0x9b248
movq %rbp, %rdi
movl $0x3a, %esi
callq 0x4180
testq %rax, %rax
je 0x9b331
incq %rax
movq %rax, %rbp
decl %ebx
jne 0x9b228
movq %rbp, 0x30(%rsp)
movq %rbp, %rdi
callq 0x4350
jmp 0x9b338
addq $0x4, %rax
movq %rax, 0x30(%rsp)
cmpb $0x2e, (%rax)
je 0x9b3b1
movq %rax, %rdi
leaq 0x30(%rsp), %rsi
xorl %edx, %edx
callq 0x40a0
movq (%r13), %rcx
cmpq %rcx, %rax
jle 0x9b30b
movq 0x20(%rsp), %rcx
movq %rax, (%rcx)
jmp 0x9b3b1
xorl %ebx, %ebx
movq %rbp, 0x30(%rsp)
movq %rbp, %rdi
leaq 0x10f05(%rip), %rsi     # 0xac1ab
callq 0x46e0
testl %eax, %eax
movl 0x44(%rsp), %eax
cmovel %ebx, %eax
movb %r14b, (%r12)
movl $0x1, %ebx
movl %eax, 0x44(%rsp)
cmpl $-0x1, %eax
movq 0x20(%rsp), %r14
movq 0x50(%rsp), %r13
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
jne 0x9afad
jmp 0x9b4a7
movq %rbp, 0x30(%rsp)
movb $0x3a, (%r13)
movb %r14b, (%r12)
movl %ebx, 0x44(%rsp)
movl $0x1, %ebx
movq 0x20(%rsp), %r14
jmp 0x9b355
cmpb $0x0, 0x32bc6(%rip)     # 0xcded8
jne 0x9b3b1
movq 0x80(%rsp), %rdx
movq (%rdx), %r9
testq %r9, %r9
je 0x9b373
movl 0x18(%r13), %r8d
subl %r9d, %r8d
jmp 0x9b37d
movq %rbp, 0x30(%rsp)
xorl %eax, %eax
movq 0x60(%rsp), %rcx
cmpq %rax, %rcx
cmovleq %rax, %rcx
movq %rcx, 0x60(%rsp)
movb %r14b, (%r12)
movl $0x1, %ebx
movq %r13, %r14
movq 0x50(%rsp), %r13
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
jmp 0x9afad
xorl %r8d, %r8d
leaq 0xc670(%rip), %r9       # 0xa79ed
testl %r8d, %r8d
movl $0x0, %edx
cmovlel %edx, %r8d
movq %rcx, (%rsp)
movl $0x3, %edi
leaq 0x1c093(%rip), %rsi     # 0xb742c
leaq 0x1c0dc(%rip), %rdx     # 0xb747c
movq %rax, %rcx
xorl %eax, %eax
callq 0x942d
movb $0x1, 0x32b27(%rip)     # 0xcded8
movq %rbp, %rdi
leaq 0x1c13f(%rip), %rsi     # 0xb74fa
callq 0x40d0
movq %rax, %r13
cmpq %rbp, %rax
movl %ebx, 0x48(%rsp)
je 0x9b3f6
testq %r13, %r13
je 0x9b3ee
movq %rbp, %rdi
leaq 0x1c11e(%rip), %rsi     # 0xb74f9
callq 0x40d0
testq %rax, %rax
je 0x9b3ee
movq %rax, %r13
addq $0x7, %r13
jmp 0x9b3fa
xorl %r13d, %r13d
jmp 0x9b477
addq $0x6, %r13
cmpl $0x2, 0x40(%rsp)
jl 0x9b477
movl $0x2, %ebx
movq %r13, %rdi
movl $0x2c, %esi
callq 0x4180
movq %rax, %rbp
cmpl $0x0, 0x58(%rsp)
je 0x9b43a
leal -0x1(%rbx), %eax
movl %eax, %ecx
shrl $0x3, %ecx
movzbl 0x90(%rsp,%rcx), %edx
andl $0x7, %eax
movl $0x1, %ecx
btl %eax, %edx
jb 0x9b44c
movq %r13, %rdi
callq 0x4350
movq %rax, %rcx
negq %rcx
cmovsq %rax, %rcx
movq 0x70(%rsp), %rax
cmpq %rcx, %rax
cmovleq %rcx, %rax
movq %rax, 0x70(%rsp)
leaq 0x1(%rbp), %r13
testq %rbp, %rbp
cmoveq %rbp, %r13
movl 0x40(%rsp), %ecx
je 0x9b477
leal 0x1(%rbx), %eax
cmpl %ecx, %ebx
movl %eax, %ebx
jl 0x9b406
movq %r13, 0x30(%rsp)
movb %r14b, (%r12)
movq 0x20(%rsp), %r14
movq 0x50(%rsp), %r13
movq 0x38(%rsp), %rdi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %rsi
movl 0x14(%rsp), %r8d
movl 0x48(%rsp), %ebx
jmp 0x9afad
cmpw $0x2, (%rdi)
jne 0x9b4dd
movq 0x70(%rsp), %rcx
movq 0x68(%rsp), %rax
cmpq %rcx, %rax
cmovgq %rax, %rcx
movq 0x60(%rsp), %rax
cmpq %rax, %rcx
cmovleq %rax, %rcx
addq (%r13), %rcx
movq 0x8(%r13), %rax
cmpq %rcx, %rax
cmovgq %rax, %rcx
movq %rcx, 0x8(%r13)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq 0x80(%rsp), %rcx
cmpq $0x0, (%rcx)
je 0x9b50c
cmpq $0x0, 0x18(%r13)
je 0x9b50c
cmpq $0x0, (%r13)
js 0x9b50c
movq (%r14), %rax
sarq $0x3f, %rax
jmp 0x9b50c
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x2098, %rsp           # imm = 0x2098
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq