// File: /workspace/github_c_makefile_star2_O3/samtools[P]htslib/vcf.c
// Function: vcf_parse_info
static int vcf_parse_info(kstring_t *str, const bcf_hdr_t *h, bcf1_t *v, char *p, char *q) {
    static int extreme_int_warned = 0, negative_rlen_warned = 0;
    int max_n_val = 0, overflow = 0;
    char *r, *key;
    khint_t k;
    vdict_t *d = (vdict_t*)h->dict[BCF_DT_ID];
    int32_t *a_val = NULL;

    v->n_info = 0;
    if (*(q-1) == ';') *(q-1) = 0;
    for (r = key = p;; ++r) {
        int c;
        char *val, *end;
        while (*r > '=' || (*r != ';' && *r != '=' && *r != 0)) r++;
        if (v->n_info == UINT16_MAX) {
            hts_log_error("Too many INFO entries at %s:%"PRIhts_pos,
                          bcf_seqname_safe(h,v), v->pos+1);
            v->errcode |= BCF_ERR_LIMITS;
            goto fail;
        }
        val = end = NULL;
        c = *r; *r = 0;
        if (c == '=') {
            val = r + 1;

            for (end = val; *end != ';' && *end != 0; ++end);
            c = *end; *end = 0;
        } else end = r;
        if ( !*key ) { if (c==0) break; r = end; key = r + 1; continue; }  // faulty VCF, ";;" in the INFO
        k = kh_get(vdict, d, key);
        if (k == kh_end(d) || kh_val(d, k).info[BCF_HL_INFO] == 15)
        {
            hts_log_warning("INFO '%s' is not defined in the header, assuming Type=String", key);
            kstring_t tmp = {0,0,0};
            int l;
            ksprintf(&tmp, "##INFO=<ID=%s,Number=1,Type=String,Description=\"Dummy\">", key);
            bcf_hrec_t *hrec = bcf_hdr_parse_line(h,tmp.s,&l);
            free(tmp.s);
            int res = hrec ? bcf_hdr_add_hrec((bcf_hdr_t*)h, hrec) : -1;
            if (res < 0) bcf_hrec_destroy(hrec);
            if (res > 0) res = bcf_hdr_sync((bcf_hdr_t*)h);
            k = kh_get(vdict, d, key);
            v->errcode |= BCF_ERR_TAG_UNDEF;
            if (res || k == kh_end(d)) {
                hts_log_error("Could not add dummy header for INFO '%s' at %s:%"PRIhts_pos, key, bcf_seqname_safe(h,v), v->pos+1);
                v->errcode |= BCF_ERR_TAG_INVALID;
                goto fail;
            }
        }
        uint32_t y = kh_val(d, k).info[BCF_HL_INFO];
        ++v->n_info;
        bcf_enc_int1(str, kh_val(d, k).id);
        if (val == 0) {
            bcf_enc_size(str, 0, BCF_BT_NULL);
        } else if ((y>>4&0xf) == BCF_HT_FLAG || (y>>4&0xf) == BCF_HT_STR) { // if Flag has a value, treat it as a string
            bcf_enc_vchar(str, end - val, val);
        } else { // int/float value/array
            int i, n_val;
            char *t, *te;
            for (t = val, n_val = 1; *t; ++t) // count the number of values
                if (*t == ',') ++n_val;
            // Check both int and float size in one step for simplicity
            if (n_val > max_n_val) {
                int32_t *a_tmp = (int32_t *)realloc(a_val, n_val * sizeof(*a_val));
                if (!a_tmp) {
                    hts_log_error("Could not allocate memory at %s:%"PRIhts_pos, bcf_seqname_safe(h,v), v->pos+1);
                    v->errcode |= BCF_ERR_LIMITS; // No appropriate code?
                    goto fail;
                }
                a_val = a_tmp;
                max_n_val = n_val;
            }
            if ((y>>4&0xf) == BCF_HT_INT) {
                i = 0, t = val;
                int64_t val1;
                int is_int64 = 0;
#ifdef VCF_ALLOW_INT64
                if ( n_val==1 )
                {
                    overflow = 0;
                    long long int tmp_val = hts_str2int(val, &te, sizeof(tmp_val)*CHAR_BIT, &overflow);
                    if ( te==val ) tmp_val = bcf_int32_missing;
                    else if ( overflow || tmp_val<BCF_MIN_BT_INT64 || tmp_val>BCF_MAX_BT_INT64 )
                    {
                        if ( !extreme_int_warned )
                        {
                            hts_log_warning("Extreme INFO/%s value encountered and set to missing at %s:%"PRIhts_pos,key,bcf_seqname_safe(h,v), v->pos+1);
                            extreme_int_warned = 1;
                        }
                        tmp_val = bcf_int32_missing;
                    }
                    else
                        is_int64 = 1;
                    val1 = tmp_val;
                    t = te;
                    i = 1;  // this is just to avoid adding another nested block...
                }
#endif
                for (; i < n_val; ++i, ++t)
                {
                    overflow = 0;
                    long int tmp_val = hts_str2int(t, &te, sizeof(tmp_val)*CHAR_BIT, &overflow);
                    if ( te==t ) tmp_val = bcf_int32_missing;
                    else if ( overflow || tmp_val<BCF_MIN_BT_INT32 || tmp_val>BCF_MAX_BT_INT32 )
                    {
                        if ( !extreme_int_warned )
                        {
                            hts_log_warning("Extreme INFO/%s value encountered and set to missing at %s:%"PRIhts_pos,key,bcf_seqname_safe(h,v), v->pos+1);
                            extreme_int_warned = 1;
                        }
                        tmp_val = bcf_int32_missing;
                    }
                    a_val[i] = tmp_val;
                    for (t = te; *t && *t != ','; t++);
                }
                if (n_val == 1) {
#ifdef VCF_ALLOW_INT64
                    if ( is_int64 )
                    {
                        v->unpacked |= BCF_IS_64BIT;
                        bcf_enc_long1(str, val1);
                    }
                    else
                        bcf_enc_int1(str, (int32_t)val1);
#else
                    val1 = a_val[0];
                    bcf_enc_int1(str, (int32_t)val1);
#endif
                } else {
                    bcf_enc_vint(str, n_val, a_val, -1);
                }
                if (n_val==1 && (val1!=bcf_int32_missing || is_int64)
                    && memcmp(key, "END", 4) == 0)
                {
                    if ( val1 <= v->pos )
                    {
                        if ( !negative_rlen_warned )
                        {
                            hts_log_warning("INFO/END=%"PRIhts_pos" is smaller than POS at %s:%"PRIhts_pos,val1,bcf_seqname_safe(h,v),v->pos+1);
                            negative_rlen_warned = 1;
                        }
                    }
                }
            } else if ((y>>4&0xf) == BCF_HT_REAL) {
                float *val_f = (float *)a_val;
                for (i = 0, t = val; i < n_val; ++i, ++t)
                {
                    overflow = 0;
                    val_f[i] = hts_str2dbl(t, &te, &overflow);
                    if ( te==t || overflow ) // conversion failed
                        bcf_float_set_missing(val_f[i]);
                    for (t = te; *t && *t != ','; t++);
                }
                bcf_enc_vfloat(str, n_val, val_f);
            }
        }
        if (c == 0) break;
        r = end;
        key = r + 1;
    }

    free(a_val);
    return 0;

 fail:
    free(a_val);
    return -1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdx, %r13
movl $0x0, 0x14(%rsp)
movq %rsi, 0x30(%rsp)
movq 0x28(%rsi), %rax
movq %rax, 0x20(%rsp)
andq $-0x10000, 0x18(%rdx)   # imm = 0xFFFF0000
movq %rcx, %r10
cmpb $0x3b, -0x1(%r8)
jne 0x34269
movb $0x0, -0x1(%r8)
movabsq $0x2800000000000001, %rcx # imm = 0x2800000000000001
xorl %r14d, %r14d
movl $0x0, 0x54(%rsp)
movq %r10, %rbx
movq %r13, 0x78(%rsp)
movq %rdi, 0x88(%rsp)
movb (%rbx), %dl
cmpb $0x3d, %dl
jg 0x342a5
movzbl %dl, %eax
cmpl $0x3d, %eax
ja 0x342a5
movl %eax, %eax
btq %rax, %rcx
jb 0x342aa
incq %rbx
jmp 0x3428e
cmpw $-0x1, 0x18(%r13)
je 0x34cea
movb $0x0, (%rbx)
cmpb $0x3d, %dl
jne 0x342d8
movq %rbx, %rsi
incq %rsi
movq %rsi, %rbx
movzbl (%rbx), %edx
testl %edx, %edx
je 0x342dc
cmpl $0x3b, %edx
je 0x342dc
incq %rbx
jmp 0x342c7
xorl %esi, %esi
jmp 0x342df
movb $0x0, (%rbx)
movb (%r10), %al
testb %al, %al
je 0x343ac
movq %rsi, 0x48(%rsp)
movq 0x20(%rsp), %rcx
movl (%rcx), %esi
testl %esi, %esi
movq %r10, 0x8(%rsp)
movq %rbx, 0x58(%rsp)
movl %edx, 0x84(%rsp)
movq %r14, 0x40(%rsp)
je 0x343cc
leaq 0x1(%r10), %rcx
movl $0x811c9dc5, %r12d      # imm = 0x811C9DC5
movzbl %al, %eax
xorl %r12d, %eax
imull $0x1000193, %eax, %r12d # imm = 0x1000193
movb (%rcx), %al
incq %rcx
testb %al, %al
jne 0x3431e
movq %rsi, 0x38(%rsp)
leal -0x1(%rsi), %ebp
andl %ebp, %r12d
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movl $0x1, %r13d
movl %r12d, %r15d
movq %rsi, 0x18(%rsp)
movl %r15d, %eax
shrl $0x4, %eax
movl (%rsi,%rax,4), %ebx
leal (%r15,%r15), %r14d
andl $0x1e, %r14d
movl %ebx, %eax
movl %r14d, %ecx
shrl %cl, %eax
testb $0x2, %al
jne 0x343b9
testb $0x1, %al
jne 0x3439c
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movl %r15d, %ecx
movq (%rax,%rcx,8), %rdi
movq %r10, %rsi
callq 0x46e0
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %r10
testl %eax, %eax
je 0x343b9
addl %r13d, %r15d
andl %ebp, %r15d
incl %r13d
cmpl %r12d, %r15d
jne 0x34356
jmp 0x343f3
testb %dl, %dl
jne 0x34b3f
jmp 0x34d4d
movl %r14d, %ecx
shrl %cl, %ebx
testb $0x3, %bl
movq 0x38(%rsp), %rsi
cmovnel %esi, %r15d
jmp 0x343cf
xorl %r15d, %r15d
cmpl %esi, %r15d
je 0x343f3
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rcx
movl %r15d, %eax
imulq $0x38, %rax, %rdx
movq 0x8(%rcx,%rdx), %r12
cmpq $0xf, %r12
jne 0x3459c
movl $0x3, %edi
leaq 0x785fd(%rip), %rsi     # 0xac9fc
leaq 0x78625(%rip), %rdx     # 0xaca2b
movq %r10, %rcx
xorl %eax, %eax
movq %r10, %rbx
callq 0x942d
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x60(%rsp), %rdi
leaq 0x78638(%rip), %rsi     # 0xaca68
movq %rbx, %rdx
xorl %eax, %eax
callq 0x89557
movq 0x70(%rsp), %rsi
leaq 0x94(%rsp), %rdx
callq 0x2b376
movq %rax, %r14
movq 0x70(%rsp), %rdi
callq 0x45c0
testq %r14, %r14
movq 0x30(%rsp), %rbx
je 0x34487
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2bd95
testl %eax, %eax
js 0x34487
je 0x3477c
movq %rbx, %rdi
callq 0x2ab97
testl %eax, %eax
setne %al
jmp 0x34491
movq %r14, %rdi
callq 0x2ac82
movb $0x1, %al
movl %eax, 0x2c(%rsp)
movq 0x8(%rsp), %r10
movq 0x20(%rsp), %rax
movl (%rax), %eax
movq %rax, 0x38(%rsp)
testl %eax, %eax
je 0x34c5d
movb (%r10), %cl
testb %cl, %cl
je 0x344d7
leaq 0x1(%r10), %rax
movl $0x811c9dc5, %r15d      # imm = 0x811C9DC5
movzbl %cl, %ecx
xorl %r15d, %ecx
imull $0x1000193, %ecx, %r15d # imm = 0x1000193
movb (%rax), %cl
incq %rax
testb %cl, %cl
jne 0x344bf
jmp 0x344dd
movl $0x811c9dc5, %r15d      # imm = 0x811C9DC5
movq 0x38(%rsp), %rax
leal -0x1(%rax), %r13d
andl %r13d, %r15d
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movl $0x1, %ebx
movl %r15d, %r12d
movq %rsi, 0x18(%rsp)
movl %r12d, %eax
shrl $0x4, %eax
movl (%rsi,%rax,4), %ebp
leal (%r12,%r12), %r14d
andl $0x1e, %r14d
movl %ebp, %eax
movl %r14d, %ecx
shrl %cl, %eax
testb $0x2, %al
jne 0x34557
testb $0x1, %al
jne 0x34545
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movl %r12d, %ecx
movq (%rax,%rcx,8), %rdi
movq %r10, %rsi
callq 0x46e0
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %r10
testl %eax, %eax
je 0x34557
addl %ebx, %r12d
andl %r13d, %r12d
incl %ebx
cmpl %r15d, %r12d
jne 0x344ff
jmp 0x34c5d
movl %r14d, %ecx
shrl %cl, %ebp
testb $0x3, %bpl
movq 0x38(%rsp), %rax
cmovnel %eax, %r12d
movq 0x78(%rsp), %rbx
orb $0x2, 0xcc(%rbx)
cmpl %eax, %r12d
sete %al
movl 0x2c(%rsp), %ecx
orb %al, %cl
jne 0x34c69
movq 0x20(%rsp), %rax
movq 0x20(%rax), %rcx
movl %r12d, %eax
imulq $0x38, %rax, %rdx
movq 0x8(%rcx,%rdx), %r12
movq 0x78(%rsp), %r13
incw 0x18(%r13)
movq 0x20(%rsp), %rcx
movq 0x20(%rcx), %rcx
imulq $0x38, %rax, %rax
movl 0x30(%rcx,%rax), %r15d
movq 0x88(%rsp), %rbp
movq (%rbp), %rcx
leaq 0x5(%rcx), %rax
cmpq %rax, 0x8(%rbp)
jae 0x3461c
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq 0x10(%rbp), %rdi
movq %r14, %rsi
callq 0x4860
movq 0x8(%rsp), %r10
testq %rax, %rax
movabsq $0xccccccccccccccc, %rbx # imm = 0xCCCCCCCCCCCCCCC
je 0x3467b
movq %rax, 0x10(%rbp)
movq %r14, 0x8(%rbp)
movq (%rbp), %rcx
jmp 0x34620
movq 0x10(%rbp), %rax
movl %r15d, %edx
negl %edx
jo 0x34642
cmpl $0x80000001, %r15d      # imm = 0x80000001
movabsq $0xccccccccccccccc, %rbx # imm = 0xCCCCCCCCCCCCCCC
jne 0x34659
movw $0x8111, (%rax,%rcx)    # imm = 0x8111
jmp 0x34672
movw $0x8011, (%rax,%rcx)    # imm = 0x8011
movl $0x2, %eax
movabsq $0xccccccccccccccc, %rbx # imm = 0xCCCCCCCCCCCCCCC
jmp 0x34677
leal 0x78(%r15), %edx
cmpl $0xf7, %edx
ja 0x34789
movb $0x11, (%rax,%rcx)
movb %r15b, 0x1(%rax,%rcx)
movl $0x2, %eax
addq %rax, (%rbp)
cmpq $0x0, 0x48(%rsp)
je 0x346b9
shrl $0x4, %r12d
andl $0xf, %r12d
cmpl $0x3, %r12d
movq 0x40(%rsp), %r14
je 0x3469b
testl %r12d, %r12d
jne 0x34713
movq 0x58(%rsp), %rbx
movl %ebx, %esi
movq 0x48(%rsp), %rdx
subl %edx, %esi
movq %rbp, %rdi
callq 0x32aea
movq %r14, %r11
jmp 0x34b24
movq (%rbp), %rcx
leaq 0x1(%rcx), %rax
cmpq %rax, 0x8(%rbp)
jae 0x34761
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq 0x10(%rbp), %rdi
movq %r14, %rsi
callq 0x4860
testq %rax, %rax
movq 0x58(%rsp), %rbx
je 0x34854
movq %rax, 0x10(%rbp)
movq %r14, 0x8(%rbp)
movq (%rbp), %rcx
jmp 0x3476a
movl $0x1, %r15d
movq 0x48(%rsp), %rax
movzbl (%rax), %ecx
cmpl $0x2c, %ecx
je 0x3472c
testl %ecx, %ecx
jne 0x3472f
jmp 0x34734
incl %r15d
incq %rax
jmp 0x3471e
cmpl 0x54(%rsp), %r15d
jle 0x347b0
movslq %r15d, %rsi
shlq $0x2, %rsi
movq %r14, %rdi
callq 0x4860
movq 0x8(%rsp), %r10
movq %rax, %r11
movl %r15d, 0x54(%rsp)
testq %rax, %rax
jne 0x347b3
jmp 0x34d54
movq 0x10(%rbp), %rax
movq 0x58(%rsp), %rbx
movq 0x40(%rsp), %r11
movb $0x0, (%rax,%rcx)
incq (%rbp)
jmp 0x34b24
movl $0x0, 0x2c(%rsp)
jmp 0x34495
leal 0x7ff8(%r15), %edx
cmpl $0xfff7, %edx           # imm = 0xFFF7
ja 0x34af4
movb $0x12, (%rax,%rcx)
movw %r15w, 0x1(%rax,%rcx)
movl $0x3, %eax
jmp 0x34677
movq %r14, %r11
cmpl $0x1, %r12d
movq %r11, 0x18(%rsp)
je 0x3485e
cmpl $0x2, %r12d
jne 0x34b1f
testl %r15d, %r15d
movq 0x48(%rsp), %r12
jle 0x34841
movl %r15d, %r14d
xorl %ebx, %ebx
movl $0x0, 0x14(%rsp)
movq %r12, %rdi
leaq 0x60(%rsp), %rsi
leaq 0x14(%rsp), %rdx
callq 0x41969
movq 0x18(%rsp), %r11
cvtsd2ss %xmm0, %xmm0
movss %xmm0, (%r11,%rbx,4)
movq 0x60(%rsp), %rax
cmpq %r12, %rax
je 0x34815
cmpl $0x0, 0x14(%rsp)
je 0x3481f
movl 0x98cf5(%rip), %ecx     # 0xcd510
movl %ecx, (%r11,%rbx,4)
incq %rax
movq %rax, %r12
movzbl -0x1(%r12), %eax
testl %eax, %eax
je 0x34839
cmpl $0x2c, %eax
je 0x34839
incq %r12
jmp 0x34825
incq %rbx
cmpq %r14, %rbx
jne 0x347db
movq %rbp, %rdi
movl %r15d, %esi
movq %r11, %rdx
callq 0x32942
jmp 0x34b1a
movq 0x40(%rsp), %r11
jmp 0x34b24
testl %r15d, %r15d
movq 0x48(%rsp), %rdx
jle 0x34b07
movl %r15d, %eax
movq %rax, 0x38(%rsp)
xorl %r14d, %r14d
movl $0x0, 0x14(%rsp)
movzbl (%rdx), %eax
cmpl $0x2b, %eax
je 0x348d6
movq %rdx, %rcx
cmpl $0x2d, %eax
jne 0x348da
movq %rdx, %r9
leaq 0x13(%rdx), %rax
movl $0x1, %ecx
xorl %r12d, %r12d
movzbl (%r9,%rcx), %edx
leal -0x30(%rdx), %esi
cmpb $0xa, %sil
jae 0x349ba
leaq (%r12,%r12,4), %rsi
leaq (%rdx,%rsi,2), %r12
addq $-0x30, %r12
incq %rcx
cmpl $0x13, %ecx
jne 0x3489e
movabsq $0x7fffffffffffffff, %rcx # imm = 0x7FFFFFFFFFFFFFFF
leaq 0x1(%rcx), %rdx
xorl %ecx, %ecx
jmp 0x34917
leaq 0x1(%rdx), %rcx
movq %rdx, %r9
leaq 0x12(%rcx), %rax
xorl %edx, %edx
xorl %r12d, %r12d
movzbl (%rcx,%rdx), %esi
leal -0x30(%rsi), %edi
cmpb $0xa, %dil
jae 0x3499c
leaq (%r12,%r12,4), %rdi
leaq (%rsi,%rdi,2), %r12
addq $-0x30, %r12
incq %rdx
cmpl $0x12, %edx
jne 0x348e6
movb $0x1, %cl
movabsq $0x7fffffffffffffff, %rdx # imm = 0x7FFFFFFFFFFFFFFF
movzbl (%rax), %edi
cmpl $0x30, %edi
jb 0x34961
addl $-0x30, %edi
cmpl $0x9, %edi
ja 0x34961
movabsq $0x7fffffffffffffff, %rsi # imm = 0x7FFFFFFFFFFFFFFF
addq %rdx, %rsi
addq $0x9, %rsi
cmpq %rbx, %r12
jae 0x34941
movl %edi, %edi
jmp 0x3494a
jne 0x34971
movl %edi, %edi
cmpq %rdi, %rsi
jb 0x34971
leaq (%r12,%r12,4), %r8
leaq (%rdi,%r8,2), %r12
movzbl 0x1(%rax), %edi
incq %rax
addl $-0x30, %edi
cmpl $0xa, %edi
jb 0x34938
movq %rax, 0x60(%rsp)
xorl %esi, %esi
testb %cl, %cl
jne 0x349a9
negq %r12
jmp 0x349a9
movzbl 0x1(%rax), %esi
incq %rax
addl $-0x30, %esi
cmpl $0xa, %esi
jb 0x34971
movl $0x1, 0x14(%rsp)
movq %rax, 0x60(%rsp)
movb $0x1, %sil
testb %cl, %cl
jne 0x34997
negq %rdx
movq %rdx, %r12
jmp 0x349a9
addq %rdx, %rcx
movq %rcx, 0x60(%rsp)
xorl %esi, %esi
movq %rcx, %rax
cmpq %r9, %rax
jne 0x349ca
movq $-0x80000000, %r12      # imm = 0x80000000
jmp 0x34a62
movq %r9, %rax
addq %rcx, %rax
movq %rax, 0x60(%rsp)
negq %r12
xorl %esi, %esi
testb %sil, %sil
jne 0x349e6
leaq -0x80000000(%r12), %rcx
movabsq $-0xfffffff9, %rdx      # imm = 0xFFFFFFFF00000007
cmpq %rdx, %rcx
ja 0x34a62
movq $-0x80000000, %r12      # imm = 0x80000000
cmpb $0x0, 0x9941c(%rip)     # 0xcde10
jne 0x34a62
movslq 0x10(%r13), %rax
testq %rax, %rax
js 0x34a17
movq 0x30(%rsp), %rcx
cmpl %eax, 0x4(%rcx)
jle 0x34a17
movq 0x18(%rcx), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %r8
jmp 0x34a1a
xorl %r8d, %r8d
testq %r8, %r8
leaq 0x77eeb(%rip), %rax     # 0xac90f
cmoveq %rax, %r8
movq (%r13), %r9
incq %r9
movl $0x3, %edi
leaq 0x77fc1(%rip), %rsi     # 0xac9fc
leaq 0x78091(%rip), %rdx     # 0xacad3
movq %r10, %rcx
xorl %eax, %eax
callq 0x942d
movq 0x8(%rsp), %r10
movb $0x1, 0x993b8(%rip)     # 0xcde10
movq 0x60(%rsp), %rax
movq 0x18(%rsp), %r11
movl %r12d, (%r11,%r14,4)
incq %rax
movq %rax, %rdx
movzbl -0x1(%rdx), %eax
testl %eax, %eax
je 0x34a7e
cmpl $0x2c, %eax
je 0x34a7e
incq %rdx
jmp 0x34a6c
incq %r14
cmpq 0x38(%rsp), %r14
jne 0x34877
cmpl $0x1, %r15d
jne 0x34b07
movl (%r11), %r14d
movq (%rbp), %rcx
leaq 0x5(%rcx), %rax
cmpq %rax, 0x8(%rbp)
jae 0x34b4a
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r15d
cmovbeq %rcx, %r15
addq %rax, %r15
movq 0x10(%rbp), %rdi
movq %r15, %rsi
callq 0x4860
movq 0x18(%rsp), %r11
testq %rax, %rax
movq 0x8(%rsp), %rsi
je 0x34b9b
movq %rax, 0x10(%rbp)
movq %r15, 0x8(%rbp)
movq (%rbp), %rcx
jmp 0x34b4e
movb $0x13, (%rax,%rcx)
movl %r15d, 0x1(%rax,%rcx)
movl $0x5, %eax
jmp 0x34677
movq %rbp, %rdi
movl %r15d, %esi
movq %r11, %rdx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x32025
movq 0x18(%rsp), %r11
movq 0x58(%rsp), %rbx
cmpb $0x0, 0x84(%rsp)
movabsq $0x2800000000000001, %rcx # imm = 0x2800000000000001
je 0x34d46
movq %r11, %r14
incq %rbx
movq %rbx, %r10
jmp 0x3428e
movq 0x10(%rbp), %rax
movl %r14d, %edx
negl %edx
jo 0x34b6b
cmpl $0x80000001, %r14d      # imm = 0x80000001
movq 0x8(%rsp), %rsi
jne 0x34b7d
movw $0x8111, (%rax,%rcx)    # imm = 0x8111
jmp 0x34b92
movw $0x8011, (%rax,%rcx)    # imm = 0x8011
movl $0x2, %eax
movq 0x8(%rsp), %rsi
jmp 0x34b97
leal 0x78(%r14), %edx
cmpl $0xf7, %edx
ja 0x34bf0
movb $0x11, (%rax,%rcx)
movb %r14b, 0x1(%rax,%rcx)
movl $0x2, %eax
addq %rax, (%rbp)
movl %r14d, %eax
negl %eax
jo 0x34b1f
cmpl $0x444e45, (%rsi)       # imm = 0x444E45
jne 0x34b1f
movslq %r14d, %rcx
movq (%r13), %r9
cmpq %rcx, %r9
jl 0x34b1f
testb $0x1, 0x9924b(%rip)     # 0xcde14
jne 0x34b1f
movslq 0x10(%r13), %rax
testq %rax, %rax
js 0x34c23
movq 0x30(%rsp), %rdx
cmpl %eax, 0x4(%rdx)
jle 0x34c23
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %r8
jmp 0x34c26
leal 0x7ff8(%r14), %edx
cmpl $0xfff7, %edx           # imm = 0xFFF7
ja 0x34c10
movb $0x12, (%rax,%rcx)
movw %r14w, 0x1(%rax,%rcx)
movl $0x3, %eax
jmp 0x34b97
movb $0x13, (%rax,%rcx)
movl %r14d, 0x1(%rax,%rcx)
movl $0x5, %eax
jmp 0x34b97
xorl %r8d, %r8d
testq %r8, %r8
leaq 0x77cdf(%rip), %rax     # 0xac90f
cmoveq %rax, %r8
incq %r9
movl $0x3, %edi
leaq 0x77db9(%rip), %rsi     # 0xac9fc
leaq 0x775fc(%rip), %rdx     # 0xac246
xorl %eax, %eax
callq 0x942d
movb $0x1, 0x991bc(%rip)     # 0xcde14
jmp 0x34b1a
movq 0x78(%rsp), %rbx
orb $0x2, 0xcc(%rbx)
movslq 0x10(%rbx), %rax
testq %rax, %rax
movq 0x40(%rsp), %r14
js 0x34c8f
movq 0x30(%rsp), %rcx
cmpl %eax, 0x4(%rcx)
jle 0x34c8f
movq 0x18(%rcx), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rax
jmp 0x34c91
xorl %eax, %eax
testq %rax, %rax
leaq 0x77c74(%rip), %r8      # 0xac90f
cmovneq %rax, %r8
movq (%rbx), %r9
incq %r9
leaq 0x77d50(%rip), %rsi     # 0xac9fc
leaq 0x77ded(%rip), %rdx     # 0xacaa0
movl $0x1, %edi
movq %r10, %rcx
xorl %eax, %eax
callq 0x942d
orb $0x40, 0xcc(%rbx)
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq %r14, %rdi
callq 0x45c0
movl %ebx, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movslq 0x10(%r13), %rax
testq %rax, %rax
js 0x34d0b
movq 0x30(%rsp), %rcx
cmpl %eax, 0x4(%rcx)
jle 0x34d0b
movq 0x18(%rcx), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rax
jmp 0x34d0d
xorl %eax, %eax
testq %rax, %rax
leaq 0x77bf8(%rip), %rcx     # 0xac90f
cmovneq %rax, %rcx
movq (%r13), %r8
incq %r8
leaq 0x77cd3(%rip), %rsi     # 0xac9fc
leaq 0x77cdb(%rip), %rdx     # 0xaca0b
movl $0x1, %edi
xorl %eax, %eax
callq 0x942d
orb $0x8, 0xcc(%r13)
jmp 0x34cc9
xorl %ebx, %ebx
movq %r11, %r14
jmp 0x34cce
xorl %ebx, %ebx
jmp 0x34cce
movslq 0x10(%r13), %rax
testq %rax, %rax
js 0x34d75
movq 0x30(%rsp), %rcx
cmpl %eax, 0x4(%rcx)
jle 0x34d75
movq 0x18(%rcx), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rax
jmp 0x34d77
xorl %eax, %eax
testq %rax, %rax
leaq 0x77b8e(%rip), %rcx     # 0xac90f
cmovneq %rax, %rcx
movq (%r13), %r8
incq %r8
leaq 0x77c69(%rip), %rsi     # 0xac9fc
leaq 0x77bb9(%rip), %rdx     # 0xac953
jmp 0x34d30