// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movl $0x0, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rcx
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq $0x0, %rcx
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x3b, %eax
jne 0x4632d
movq -0x30(%rbp), %rax
movb $0x0, -0x1(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x48(%rbp)
movq %rax, -0x40(%rbp)
jmp 0x4633b
movq -0x40(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x3d, %ecx
movb %al, -0xe9(%rbp)
jg 0x46396
movq -0x40(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x3b, %ecx
movb %al, -0xea(%rbp)
je 0x4638a
movq -0x40(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x3d, %ecx
movb %al, -0xea(%rbp)
je 0x4638a
movq -0x40(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0xea(%rbp)
movb -0xea(%rbp), %al
movb %al, -0xe9(%rbp)
movb -0xe9(%rbp), %al
testb $0x1, %al
jne 0x463a2
jmp 0x463b0
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x4633b
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
andq $0xffff, %rax           # imm = 0xFFFF
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x46412
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43520
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq (%rax), %r8
addq $0x1, %r8
movl $0x1, %edi
leaq 0xc26e0(%rip), %rsi     # 0x108acc
leaq 0xc26e8(%rip), %rdx     # 0x108adb
movb $0x0, %al
callq 0x9d90
movq -0x20(%rbp), %rax
movl 0xcc(%rax), %ecx
orl $0x8, %ecx
movl %ecx, 0xcc(%rax)
jmp 0x46c66
movq $0x0, -0x78(%rbp)
movq $0x0, -0x70(%rbp)
movq -0x40(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x64(%rbp)
movq -0x40(%rbp), %rax
movb $0x0, (%rax)
cmpl $0x3d, -0x64(%rbp)
jne 0x464a3
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x3b, %ecx
movb %al, -0xeb(%rbp)
je 0x46474
movq -0x78(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0xeb(%rbp)
movb -0xeb(%rbp), %al
testb $0x1, %al
jne 0x46480
jmp 0x46490
jmp 0x46482
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x4644d
movq -0x78(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x64(%rbp)
movq -0x78(%rbp), %rax
movb $0x0, (%rax)
jmp 0x464ab
movq -0x40(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x464d8
cmpl $0x0, -0x64(%rbp)
jne 0x464bf
jmp 0x46c54
movq -0x78(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x46c43
movq -0x58(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x3e520
movl %eax, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq -0x58(%rbp), %rcx
cmpl (%rcx), %eax
je 0x46510
movq -0x58(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x4c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
cmpq $0xf, 0x8(%rax)
jne 0x4667e
movq -0x48(%rbp), %rcx
movl $0x3, %edi
leaq 0xc25ac(%rip), %rsi     # 0x108acc
leaq 0xc25d4(%rip), %rdx     # 0x108afb
movb $0x0, %al
callq 0x9d90
leaq -0x90(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x4240
movq -0x48(%rbp), %rdx
leaq -0x90(%rbp), %rdi
leaq 0xc25e5(%rip), %rsi     # 0x108b38
movb $0x0, %al
callq 0xd62e0
movq -0x18(%rbp), %rdi
movq -0x80(%rbp), %rsi
leaq -0x94(%rbp), %rdx
callq 0x3bbb0
movq %rax, -0xa0(%rbp)
movq -0x80(%rbp), %rdi
callq 0x45a0
cmpq $0x0, -0xa0(%rbp)
je 0x465a0
movq -0x18(%rbp), %rdi
movq -0xa0(%rbp), %rsi
callq 0x3ce30
movl %eax, -0xf0(%rbp)
jmp 0x465ad
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, -0xf0(%rbp)
jmp 0x465ad
movl -0xf0(%rbp), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x0, -0xa4(%rbp)
jge 0x465ce
movq -0xa0(%rbp), %rdi
callq 0x3b040
cmpl $0x0, -0xa4(%rbp)
jle 0x465e6
movq -0x18(%rbp), %rdi
callq 0x3ae50
movl %eax, -0xa4(%rbp)
movq -0x58(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x3e520
movl %eax, -0x4c(%rbp)
movq -0x20(%rbp), %rax
movl 0xcc(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0xcc(%rax)
cmpl $0x0, -0xa4(%rbp)
jne 0x4661d
movl -0x4c(%rbp), %eax
movq -0x58(%rbp), %rcx
cmpl (%rcx), %eax
jne 0x4667c
movq -0x48(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43520
movq -0xf8(%rbp), %rcx
movq %rax, %r8
movq -0x20(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl $0x1, %edi
leaq 0xc2476(%rip), %rsi     # 0x108acc
leaq 0xc2513(%rip), %rdx     # 0x108b70
movb $0x0, %al
callq 0x9d90
movq -0x20(%rbp), %rax
movl 0xcc(%rax), %ecx
orl $0x40, %ecx
movl %ecx, 0xcc(%rax)
jmp 0x46c66
jmp 0x4667e
movq -0x58(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x4c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movl %eax, -0xa8(%rbp)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
addl $0x1, %ecx
movl %ecx, %ecx
movl %ecx, %edx
movq 0x18(%rax), %rcx
andq $0xffff, %rdx           # imm = 0xFFFF
andq $-0x10000, %rcx         # imm = 0xFFFF0000
orq %rdx, %rcx
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rdi
movq -0x58(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x4c(%rbp), %ecx
imulq $0x38, %rcx, %rcx
addq %rcx, %rax
movl 0x30(%rax), %esi
callq 0x44a50
cmpq $0x0, -0x70(%rbp)
jne 0x46700
movq -0x10(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x448b0
jmp 0x46c27
movl -0xa8(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x46722
movl -0xa8(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x3, %eax
jne 0x46741
movq -0x10(%rbp), %rdi
movq -0x78(%rbp), %rax
movq -0x70(%rbp), %rcx
subq %rcx, %rax
movl %eax, %esi
movq -0x70(%rbp), %rdx
callq 0x44db0
jmp 0x46c25
movq -0x70(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl $0x1, -0xb0(%rbp)
movq -0xb8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x46796
movq -0xb8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x46780
movl -0xb0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb0(%rbp)
jmp 0x46782
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x46756
movl -0xb0(%rbp), %eax
cmpl -0x34(%rbp), %eax
jle 0x4682b
movq -0x60(%rbp), %rdi
movslq -0xb0(%rbp), %rsi
shlq $0x2, %rsi
callq 0x4840
movq %rax, -0xc8(%rbp)
cmpq $0x0, -0xc8(%rbp)
jne 0x46817
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43520
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq (%rax), %r8
addq $0x1, %r8
movl $0x1, %edi
leaq 0xc22db(%rip), %rsi     # 0x108acc
leaq 0xc222b(%rip), %rdx     # 0x108a23
movb $0x0, %al
callq 0x9d90
movq -0x20(%rbp), %rax
movl 0xcc(%rax), %ecx
orl $0x8, %ecx
movl %ecx, 0xcc(%rax)
jmp 0x46c66
movq -0xc8(%rbp), %rax
movq %rax, -0x60(%rbp)
movl -0xb0(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0xa8(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x1, %eax
jne 0x46ad4
movl $0x0, -0xac(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl $0x0, -0xd4(%rbp)
movl -0xac(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0x469de
movl $0x0, -0x38(%rbp)
movq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x40, %edx
leaq -0x38(%rbp), %rcx
callq 0x52630
movq %rax, -0xe0(%rbp)
movq -0xc0(%rbp), %rax
cmpq -0xb8(%rbp), %rax
jne 0x468bb
movq $-0x80000000, -0xe0(%rbp) # imm = 0x80000000
jmp 0x46942
cmpl $0x0, -0x38(%rbp)
jne 0x468db
cmpq $-0x7ffffff8, -0xe0(%rbp) # imm = 0x80000008
jl 0x468db
cmpq $0x7fffffff, -0xe0(%rbp) # imm = 0x7FFFFFFF
jle 0x46940
cmpl $0x0, 0xe3ece(%rip)     # 0x12a7b0
jne 0x46935
movq -0x48(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43520
movq -0x100(%rbp), %rcx
movq %rax, %r8
movq -0x20(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl $0x3, %edi
leaq 0xc21af(%rip), %rsi     # 0x108acc
leaq 0xc227f(%rip), %rdx     # 0x108ba3
movb $0x0, %al
callq 0x9d90
movl $0x1, 0xe3e7b(%rip)     # 0x12a7b0
movq $-0x80000000, -0xe0(%rbp) # imm = 0x80000000
jmp 0x46942
movq -0xe0(%rbp), %rax
movl %eax, %edx
movq -0x60(%rbp), %rax
movslq -0xac(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movq -0xc0(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x101(%rbp)
je 0x46994
movq -0xb8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x101(%rbp)
movb -0x101(%rbp), %al
testb $0x1, %al
jne 0x469a0
jmp 0x469b6
jmp 0x469a2
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x46967
jmp 0x469b8
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x4685f
cmpl $0x1, -0xb0(%rbp)
jne 0x46a09
movq -0x60(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x10(%rbp), %rdi
movq -0xd0(%rbp), %rax
movl %eax, %esi
callq 0x44a50
jmp 0x46a21
movq -0x10(%rbp), %rdi
movl -0xb0(%rbp), %esi
movq -0x60(%rbp), %rdx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x442f0
cmpl $0x1, -0xb0(%rbp)
jne 0x46acf
cmpq $-0x80000000, -0xd0(%rbp) # imm = 0x80000000
jne 0x46a48
cmpl $0x0, -0xd4(%rbp)
je 0x46acf
movq -0x48(%rbp), %rax
movl (%rax), %eax
subl $0x444e45, %eax         # imm = 0x444E45
setne %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x46acf
movq -0xd0(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jg 0x46acd
cmpl $0x0, 0xe3d3f(%rip)     # 0x12a7b4
jne 0x46acb
movq -0xd0(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x43520
movq -0x110(%rbp), %rcx
movq %rax, %r8
movq -0x20(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl $0x3, %edi
leaq 0xc2019(%rip), %rsi     # 0x108acc
leaq 0xc185c(%rip), %rdx     # 0x108316
movb $0x0, %al
callq 0x9d90
movl $0x1, 0xe3ce9(%rip)     # 0x12a7b4
jmp 0x46acd
jmp 0x46acf
jmp 0x46c23
movl -0xa8(%rbp), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x2, %eax
jne 0x46c21
movq -0x60(%rbp), %rax
movq %rax, -0xe8(%rbp)
movl $0x0, -0xac(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl -0xac(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0x46c0b
movl $0x0, -0x38(%rbp)
movq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x528b0
cvtsd2ss %xmm0, %xmm0
movq -0xe8(%rbp), %rax
movslq -0xac(%rbp), %rcx
movss %xmm0, (%rax,%rcx,4)
movq -0xc0(%rbp), %rax
cmpq -0xb8(%rbp), %rax
je 0x46b66
cmpl $0x0, -0x38(%rbp)
je 0x46b86
movq -0xe8(%rbp), %rdi
movslq -0xac(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movl 0xdeabf(%rip), %esi     # 0x125640
callq 0x40e90
movq -0xc0(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x111(%rbp)
je 0x46bc1
movq -0xb8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x111(%rbp)
movb -0x111(%rbp), %al
testb $0x1, %al
jne 0x46bcd
jmp 0x46be3
jmp 0x46bcf
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x46b94
jmp 0x46be5
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
movq -0xb8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xb8(%rbp)
jmp 0x46b09
movq -0x10(%rbp), %rdi
movl -0xb0(%rbp), %esi
movq -0xe8(%rbp), %rdx
callq 0x44c70
jmp 0x46c23
jmp 0x46c25
jmp 0x46c27
cmpl $0x0, -0x64(%rbp)
jne 0x46c2f
jmp 0x46c54
movq -0x78(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x46339
movq -0x60(%rbp), %rdi
callq 0x45a0
movl $0x0, -0x4(%rbp)
jmp 0x46c76
movq -0x60(%rbp), %rdi
callq 0x45a0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
nopw %cs:(%rax,%rax)