// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/vcfutils.c
// Function: bcf_remove_allele_set
int bcf_remove_allele_set(const bcf_hdr_t *header, bcf1_t *line, const struct kbitset_t *rm_set)
{
    int *map = (int*) calloc(line->n_allele, sizeof(int));
    uint8_t *dat = NULL;

    bcf_unpack(line, BCF_UN_ALL);

    // create map of indexes from old to new ALT numbering and modify ALT
    kstring_t str = {0,0,0};
    kputs(line->d.allele[0], &str);

    int nrm = 0, i,j;  // i: ori alleles, j: new alleles
    for (i=1, j=1; i<line->n_allele; i++)
    {
        if ( kbs_exists(rm_set, i) )
        {
            // remove this allele
            line->d.allele[i] = NULL;
            nrm++;
            continue;
        }
        kputc(',', &str);
        kputs(line->d.allele[i], &str);
        map[i] = j;
        j++;
    }
    if ( !nrm ) goto clean;

    int nR_ori = line->n_allele;
    int nR_new = line->n_allele-nrm;
    if ( nR_new<=0 ) // should not be able to remove reference allele
    {
        hts_log_error("Cannot remove reference allele at %s:%"PRIhts_pos" [%d]",
            bcf_seqname_safe(header,line), line->pos+1, nR_new);
        goto err;
    }
    int nA_ori = nR_ori-1;
    int nA_new = nR_new-1;

    int nG_ori = nR_ori*(nR_ori + 1)/2;
    int nG_new = nR_new*(nR_new + 1)/2;

    bcf_update_alleles_str(header, line, str.s);

    // remove from Number=G, Number=R and Number=A INFO fields.
    int mdat = 0, ndat = 0, mdat_bytes = 0, nret;
    for (i=0; i<line->n_info; i++)
    {
        bcf_info_t *info = &line->d.info[i];
        int vlen = bcf_hdr_id2length(header,BCF_HL_INFO,info->key);

        if ( vlen!=BCF_VL_A && vlen!=BCF_VL_G && vlen!=BCF_VL_R ) continue; // no need to change

        int type = bcf_hdr_id2type(header,BCF_HL_INFO,info->key);
        if ( type==BCF_HT_FLAG ) continue;
        int size = 1;
        if ( type==BCF_HT_REAL || type==BCF_HT_INT ) size = 4;

        mdat = mdat_bytes / size;
        nret = bcf_get_info_values(header, line, bcf_hdr_int2id(header,BCF_DT_ID,info->key), (void**)&dat, &mdat, type);
        mdat_bytes = mdat * size;
        if ( nret<0 )
        {
            hts_log_error("Could not access INFO/%s at %s:%"PRIhts_pos" [%d]",
                bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nret);
            goto err;
        }
        if ( nret==0 ) continue; // no data for this tag

        if ( type==BCF_HT_STR )
        {
            str.l = 0;
            char *ss = (char*) dat, *se = (char*) dat, s = ss[0];
            if ( vlen==BCF_VL_A || vlen==BCF_VL_R )
            {
                int nexp, inc = 0;
                if ( vlen==BCF_VL_A )
                {
                    nexp = nA_ori;
                    inc  = 1;
                }
                else
                    nexp = nR_ori;
                for (j=0; j<nexp; j++)
                {
                    if ( !*se ) break;
                    while ( *se && *se!=',' ) se++;
                    if ( kbs_exists(rm_set, j+inc) )
                    {
                        if ( *se ) se++;
                        ss = se;
                        continue;
                    }
                    if ( str.l ) kputc(',',&str);
                    kputsn(ss,se-ss,&str);
                    if ( *se ) se++;
                    ss = se;
                }
                if ( j==1 && s == '.' ) continue; // missing
                if ( j!=nexp )
                {
                    hts_log_error("Unexpected number of values in INFO/%s at %s:%"PRIhts_pos"; expected Number=%c=%d, but found %d",
                        bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, vlen==BCF_VL_A ? 'A' : 'R', nexp, j);
                    goto err;
                }
            }
            else    // Number=G, assuming diploid genotype
            {
                int k = 0, n = 0;
                for (j=0; j<nR_ori; j++)
                {
                    for (k=0; k<=j; k++)
                    {
                        if ( !*se ) break;
                        while ( *se && *se!=',' ) se++;
                        n++;
                        if ( kbs_exists(rm_set, j) || kbs_exists(rm_set, k) )
                        {
                            if ( *se ) se++;
                            ss = se;
                            continue;
                        }
                        if ( str.l ) kputc(',',&str);
                        kputsn(ss,se-ss,&str);
                        if ( *se ) se++;
                        ss = se;
                    }
                    if ( !*se ) break;
                }
                if ( n==1 && s == '.' ) continue; // missing
                if ( n!=nG_ori )
                {
                    hts_log_error("Unexpected number of values in INFO/%s at %s:%"PRIhts_pos"; expected Number=G=%d, but found %d",
                        bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nG_ori, n);
                    goto err;
                }
            }

            nret = bcf_update_info(header, line, bcf_hdr_int2id(header,BCF_DT_ID,info->key), (void*)str.s, str.l, type);
            if ( nret<0 )
            {
                hts_log_error("Could not update INFO/%s at %s:%"PRIhts_pos" [%d]",
                    bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nret);
                goto err;
            }
            continue;
        }

        if (nret==1) // could be missing - check
        {
            int missing = 0;
            #define BRANCH(type_t, convert, is_missing) { \
                type_t val = convert(info->vptr); \
                if ( is_missing ) missing = 1; \
            }
            switch (info->type) {
                case BCF_BT_INT8:  BRANCH(int8_t, le_to_i8,  val==bcf_int8_missing); break;
                case BCF_BT_INT16: BRANCH(int16_t, le_to_i16, val==bcf_int16_missing); break;
                case BCF_BT_INT32: BRANCH(int32_t, le_to_i32, val==bcf_int32_missing); break;
                case BCF_BT_FLOAT: BRANCH(float,   le_to_float, bcf_float_is_missing(val)); break;
                default: hts_log_error("Unexpected type %d", info->type); goto err;
            }
            #undef BRANCH
            if (missing) continue; // could remove this INFO tag?
        }

        if ( vlen==BCF_VL_A || vlen==BCF_VL_R )
        {
            int inc = 0, ntop;
            if ( vlen==BCF_VL_A )
            {
                if ( nret!=nA_ori )
                {
                    hts_log_error("Unexpected number of values in INFO/%s at %s:%"PRIhts_pos"; expected Number=A=%d, but found %d",
                        bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nA_ori, nret);
                    goto err;
                }
                ntop = nA_ori;
                ndat = nA_new;
                inc  = 1;
            }
            else
            {
                if ( nret!=nR_ori )
                {
                    hts_log_error("Unexpected number of values in INFO/%s at %s:%"PRIhts_pos"; expected Number=R=%d, but found %d",
                        bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nR_ori, nret);
                    goto err;
                }
                ntop = nR_ori;
                ndat = nR_new;
            }
            int k = 0;

            #define BRANCH(type_t,is_vector_end) \
            { \
                type_t *ptr = (type_t*) dat; \
                int size = sizeof(type_t); \
                for (j=0; j<ntop; j++) /* j:ori, k:new */ \
                { \
                    if ( is_vector_end ) { memcpy(dat+k*size, dat+j*size, size); break; } \
                    if ( kbs_exists(rm_set, j+inc) ) continue; \
                    if ( j!=k ) memcpy(dat+k*size, dat+j*size, size); \
                    k++; \
                } \
            }
            switch (type)
            {
                case BCF_HT_INT:  BRANCH(int32_t,ptr[j]==bcf_int32_vector_end); break;
                case BCF_HT_REAL: BRANCH(float,bcf_float_is_vector_end(ptr[j])); break;
            }
            #undef BRANCH
        }
        else    // Number=G
        {
            if ( nret!=nG_ori )
            {
                hts_log_error("Unexpected number of values in INFO/%s at %s:%"PRIhts_pos"; expected Number=G=%d, but found %d",
                    bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nG_ori, nret);
                goto err;
            }
            int k, l_ori = -1, l_new = 0;
            ndat = nG_new;

            #define BRANCH(type_t,is_vector_end) \
            { \
                type_t *ptr = (type_t*) dat; \
                int size = sizeof(type_t); \
                for (j=0; j<nR_ori; j++) \
                { \
                    for (k=0; k<=j; k++) \
                    { \
                        l_ori++; \
                        if ( is_vector_end ) { memcpy(dat+l_new*size, dat+l_ori*size, size); break; } \
                        if ( kbs_exists(rm_set, j) || kbs_exists(rm_set, k) ) continue; \
                        if ( l_ori!=l_new ) memcpy(dat+l_new*size, dat+l_ori*size, size); \
                        l_new++; \
                    } \
                } \
            }
            switch (type)
            {
                case BCF_HT_INT:  BRANCH(int32_t,ptr[l_ori]==bcf_int32_vector_end); break;
                case BCF_HT_REAL: BRANCH(float,bcf_float_is_vector_end(ptr[l_ori])); break;
            }
            #undef BRANCH
        }

        nret = bcf_update_info(header, line, bcf_hdr_int2id(header,BCF_DT_ID,info->key), (void*)dat, ndat, type);
        if ( nret<0 )
        {
            hts_log_error("Could not update INFO/%s at %s:%"PRIhts_pos" [%d]",
                bcf_hdr_int2id(header,BCF_DT_ID,info->key), bcf_seqname_safe(header,line), line->pos+1, nret);
            goto err;
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x350, %rsp            # imm = 0x350
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x10, %rax
andq $0xffff, %rax           # imm = 0xFFFF
movl %eax, %eax
movl %eax, %edi
movl $0x4, %esi
callq 0x16060
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x18(%rbp), %rdi
movl $0xf, %esi
callq 0x14920
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x142a0
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq (%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x9be60
movl $0x0, -0x4c(%rbp)
movl $0x1, -0x50(%rbp)
movl $0x1, -0x54(%rbp)
movl -0x50(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x10, %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
cmpl %ecx, %eax
jge 0x98fad
movq -0x20(%rbp), %rdi
movl -0x50(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x98f5e
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movslq -0x50(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x98f9f
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movslq -0x50(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x48(%rbp), %rsi
callq 0x9be60
movl -0x54(%rbp), %edx
movq -0x28(%rbp), %rax
movslq -0x50(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x98f0d
cmpl $0x0, -0x4c(%rbp)
jne 0x98fb8
jmp 0x9bd31
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x10, %rax
andq $0xffff, %rax           # imm = 0xFFFF
movl %eax, -0x58(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x10, %rax
andq $0xffff, %rax           # imm = 0xFFFF
subl -0x4c(%rbp), %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x5c(%rbp)
jg 0x99029
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq (%rax), %r8
addq $0x1, %r8
movl -0x5c(%rbp), %r9d
movl $0x1, %edi
leaq 0xa02a9(%rip), %rsi     # 0x1392bf
leaq 0xa02b8(%rip), %rdx     # 0x1392d5
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x58(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x60(%rbp)
movl -0x5c(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x64(%rbp)
movl -0x58(%rbp), %eax
movl -0x58(%rbp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x68(%rbp)
movl -0x5c(%rbp), %eax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, -0x6c(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x16080
movl $0x0, -0x70(%rbp)
movl $0x0, -0x74(%rbp)
movl $0x0, -0x78(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
cmpl %ecx, %eax
jge 0x9a063
movq -0x18(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x50(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
shrq $0x8, %rax
andq $0xf, %rax
movl %eax, -0x8c(%rbp)
cmpl $0x2, -0x8c(%rbp)
je 0x9911c
cmpl $0x3, -0x8c(%rbp)
je 0x9911c
cmpl $0x4, -0x8c(%rbp)
je 0x9911c
jmp 0x9a055
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
shrq $0x4, %rax
andq $0xf, %rax
movl %eax, -0x90(%rbp)
cmpl $0x0, -0x90(%rbp)
jne 0x99159
jmp 0x9a055
movl $0x1, -0x94(%rbp)
cmpl $0x2, -0x90(%rbp)
je 0x99175
cmpl $0x1, -0x90(%rbp)
jne 0x9917f
movl $0x4, -0x94(%rbp)
movl -0x78(%rbp), %eax
cltd
idivl -0x94(%rbp)
movl %eax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movl -0x90(%rbp), %r9d
leaq -0x30(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq 0x15990
movl %eax, -0x7c(%rbp)
movl -0x70(%rbp), %eax
imull -0x94(%rbp), %eax
movl %eax, -0x78(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x99244
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x260(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x260(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0xa0091(%rip), %rsi     # 0x1392bf
leaq 0xa00ce(%rip), %rdx     # 0x139303
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
cmpl $0x0, -0x7c(%rbp)
jne 0x9924f
jmp 0x9a055
cmpl $0x3, -0x90(%rbp)
jne 0x9979f
movq $0x0, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rax
movb (%rax), %al
movb %al, -0xa9(%rbp)
cmpl $0x2, -0x8c(%rbp)
je 0x9929f
cmpl $0x4, -0x8c(%rbp)
jne 0x994b9
movl $0x0, -0xb4(%rbp)
cmpl $0x2, -0x8c(%rbp)
jne 0x992c7
movl -0x60(%rbp), %eax
movl %eax, -0xb0(%rbp)
movl $0x1, -0xb4(%rbp)
jmp 0x992d0
movl -0x58(%rbp), %eax
movl %eax, -0xb0(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0xb0(%rbp), %eax
jge 0x993fb
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x992f7
jmp 0x993fb
jmp 0x992f9
movq -0xa8(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x261(%rbp)
je 0x99326
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x261(%rbp)
movb -0x261(%rbp), %al
testb $0x1, %al
jne 0x99332
jmp 0x99346
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
jmp 0x992f9
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
addl -0xb4(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9938b
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x9937b
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0x993ed
cmpq $0x0, -0x48(%rbp)
je 0x993a0
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0xa0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rax
subq %rax, %rsi
leaq -0x48(%rbp), %rdx
callq 0x9bfd0
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x993df
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x992d7
cmpl $0x1, -0x54(%rbp)
jne 0x99412
movsbl -0xa9(%rbp), %eax
cmpl $0x2e, %eax
jne 0x99412
jmp 0x9a055
movl -0x54(%rbp), %eax
cmpl -0xb0(%rbp), %eax
je 0x994b4
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x270(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x270(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x8c(%rbp), %edx
movl $0x52, %r11d
movl $0x41, %eax
cmpl $0x2, %edx
cmovel %eax, %r11d
movl -0xb0(%rbp), %r10d
movl -0x54(%rbp), %eax
movl $0x1, %edi
leaq 0x9fe2b(%rip), %rsi     # 0x1392bf
leaq 0x9fe90(%rip), %rdx     # 0x13932b
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x996ec
movl $0x0, -0xb8(%rbp)
movl $0x0, -0xbc(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9964f
movl $0x0, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x99631
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9950a
jmp 0x99631
jmp 0x9950c
movq -0xa8(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x271(%rbp)
je 0x99539
movq -0xa8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x271(%rbp)
movb -0x271(%rbp), %al
testb $0x1, %al
jne 0x99545
jmp 0x99559
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
jmp 0x9950c
movl -0xbc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbc(%rbp)
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x9958d
movq -0x20(%rbp), %rdi
movl -0xb8(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x995bb
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x995ab
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xa0(%rbp)
jmp 0x9961d
cmpq $0x0, -0x48(%rbp)
je 0x995d0
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0xa0(%rbp), %rdi
movq -0xa8(%rbp), %rsi
movq -0xa0(%rbp), %rax
subq %rax, %rsi
leaq -0x48(%rbp), %rdx
callq 0x9bfd0
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
je 0x9960f
movq -0xa8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x994ea
movq -0xa8(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9963f
jmp 0x9964f
jmp 0x99641
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x994d4
cmpl $0x1, -0xbc(%rbp)
jne 0x99669
movsbl -0xa9(%rbp), %eax
cmpl $0x2e, %eax
jne 0x99669
jmp 0x9a055
movl -0xbc(%rbp), %eax
cmpl -0x68(%rbp), %eax
je 0x996ea
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x280(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x280(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x68(%rbp), %r10d
movl -0xbc(%rbp), %eax
movl $0x1, %edi
leaq 0x9fbf0(%rip), %rsi     # 0x1392bf
leaq 0x9fcab(%rip), %rdx     # 0x139381
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x996ec
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %rax
movl %eax, %r8d
movl -0x90(%rbp), %r9d
callq 0x15a20
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9979a
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x288(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x288(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9fb3b(%rip), %rsi     # 0x1392bf
leaq 0x9fc4b(%rip), %rdx     # 0x1393d6
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x9a055
cmpl $0x1, -0x7c(%rbp)
jne 0x998ea
movl $0x0, -0xc0(%rbp)
movq -0x88(%rbp), %rax
movl 0x4(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x290(%rbp)
subl $0x4, %eax
ja 0x998b1
movq -0x290(%rbp), %rax
leaq 0x9f9c5(%rip), %rcx     # 0x1391a4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x98390
movb %al, -0xc1(%rbp)
movsbl -0xc1(%rbp), %eax
cmpl $-0x80, %eax
jne 0x99814
movl $0x1, -0xc0(%rbp)
jmp 0x998da
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x983e0
movw %ax, -0xc4(%rbp)
movswl -0xc4(%rbp), %eax
cmpl $0xffff8000, %eax       # imm = 0xFFFF8000
jne 0x99848
movl $0x1, -0xc0(%rbp)
jmp 0x998da
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x98430
movl %eax, -0xc8(%rbp)
cmpl $0x80000000, -0xc8(%rbp) # imm = 0x80000000
jne 0x99879
movl $0x1, -0xc0(%rbp)
jmp 0x998da
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x9c080
movss %xmm0, -0xcc(%rbp)
movss -0xcc(%rbp), %xmm0
callq 0x9c0b0
cmpl $0x0, %eax
je 0x998af
movl $0x1, -0xc0(%rbp)
jmp 0x998da
movq -0x88(%rbp), %rax
movl 0x4(%rax), %ecx
movl $0x1, %edi
leaq 0x9f9f8(%rip), %rsi     # 0x1392bf
leaq 0x9e448(%rip), %rdx     # 0x137d16
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
cmpl $0x0, -0xc0(%rbp)
je 0x998e8
jmp 0x9a055
jmp 0x998ea
cmpl $0x2, -0x8c(%rbp)
je 0x99900
cmpl $0x4, -0x8c(%rbp)
jne 0x99c55
movl $0x0, -0xd0(%rbp)
cmpl $0x2, -0x8c(%rbp)
jne 0x999b0
movl -0x7c(%rbp), %eax
cmpl -0x60(%rbp), %eax
je 0x99992
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x298(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x298(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x60(%rbp), %r10d
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9f948(%rip), %rsi     # 0x1392bf
leaq 0x9fa80(%rip), %rdx     # 0x1393fe
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x60(%rbp), %eax
movl %eax, -0xd4(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x74(%rbp)
movl $0x1, -0xd0(%rbp)
jmp 0x99a3a
movl -0x7c(%rbp), %eax
cmpl -0x58(%rbp), %eax
je 0x99a2b
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2a0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2a0(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x58(%rbp), %r10d
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9f8af(%rip), %rsi     # 0x1392bf
leaq 0x9fa3c(%rip), %rdx     # 0x139453
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x58(%rbp), %eax
movl %eax, -0xd4(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x74(%rbp)
movl $0x0, -0xd8(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x2a4(%rbp)
subl $0x1, %eax
je 0x99a6b
jmp 0x99a57
movl -0x2a4(%rbp), %eax
subl $0x2, %eax
je 0x99b5c
jmp 0x99c50
movq -0x30(%rbp), %rax
movq %rax, -0xe0(%rbp)
movl $0x4, -0xe4(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0xd4(%rbp), %eax
jge 0x99b57
movq -0xe0(%rbp), %rax
movslq -0x54(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x99ae1
movq -0x30(%rbp), %rdi
movl -0xd8(%rbp), %eax
imull -0xe4(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0x54(%rbp), %eax
imull -0xe4(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0xe4(%rbp), %rdx
callq 0x16720
jmp 0x99b57
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
addl -0xd0(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x99afa
jmp 0x99b49
movl -0x54(%rbp), %eax
cmpl -0xd8(%rbp), %eax
je 0x99b3a
movq -0x30(%rbp), %rdi
movl -0xd8(%rbp), %eax
imull -0xe4(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0x54(%rbp), %eax
imull -0xe4(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0xe4(%rbp), %rdx
callq 0x16720
movl -0xd8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd8(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x99a87
jmp 0x99c50
movq -0x30(%rbp), %rax
movq %rax, -0xf0(%rbp)
movl $0x4, -0xf4(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0xd4(%rbp), %eax
jge 0x99c4e
movq -0xf0(%rbp), %rax
movslq -0x54(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
callq 0x9c0e0
cmpl $0x0, %eax
je 0x99bd8
movq -0x30(%rbp), %rdi
movl -0xd8(%rbp), %eax
imull -0xf4(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0x54(%rbp), %eax
imull -0xf4(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0xf4(%rbp), %rdx
callq 0x16720
jmp 0x99c4e
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
addl -0xd0(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x99bf1
jmp 0x99c40
movl -0x54(%rbp), %eax
cmpl -0xd8(%rbp), %eax
je 0x99c31
movq -0x30(%rbp), %rdi
movl -0xd8(%rbp), %eax
imull -0xf4(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0x54(%rbp), %eax
imull -0xf4(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0xf4(%rbp), %rdx
callq 0x16720
movl -0xd8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd8(%rbp)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x99b78
jmp 0x99c50
jmp 0x99fa8
movl -0x7c(%rbp), %eax
cmpl -0x68(%rbp), %eax
je 0x99cd0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2b0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2b0(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x68(%rbp), %r10d
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9f60a(%rip), %rsi     # 0x1392bf
leaq 0x9f6c5(%rip), %rdx     # 0x139381
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl $0xffffffff, -0xfc(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x100(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x2b4(%rbp)
subl $0x1, %eax
je 0x99d11
jmp 0x99cfd
movl -0x2b4(%rbp), %eax
subl $0x2, %eax
je 0x99e5a
jmp 0x99fa6
movq -0x30(%rbp), %rax
movq %rax, -0x108(%rbp)
movl $0x4, -0x10c(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x99e55
movl $0x0, -0xf8(%rbp)
movl -0xf8(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x99e45
movl -0xfc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xfc(%rbp)
movq -0x108(%rbp), %rax
movslq -0xfc(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x99db5
movq -0x30(%rbp), %rdi
movl -0x100(%rbp), %eax
imull -0x10c(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0xfc(%rbp), %eax
imull -0x10c(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0x10c(%rbp), %rdx
callq 0x16720
jmp 0x99e45
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x99dda
movq -0x20(%rbp), %rdi
movl -0xf8(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x99ddc
jmp 0x99e31
movl -0xfc(%rbp), %eax
cmpl -0x100(%rbp), %eax
je 0x99e22
movq -0x30(%rbp), %rdi
movl -0x100(%rbp), %eax
imull -0x10c(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0xfc(%rbp), %eax
imull -0x10c(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0x10c(%rbp), %rdx
callq 0x16720
movl -0x100(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x100(%rbp)
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x99d43
jmp 0x99e47
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x99d2d
jmp 0x99fa6
movq -0x30(%rbp), %rax
movq %rax, -0x118(%rbp)
movl $0x4, -0x11c(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x99fa4
movl $0x0, -0xf8(%rbp)
movl -0xf8(%rbp), %eax
cmpl -0x54(%rbp), %eax
jg 0x99f94
movl -0xfc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xfc(%rbp)
movq -0x118(%rbp), %rax
movslq -0xfc(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
callq 0x9c0e0
cmpl $0x0, %eax
je 0x99f04
movq -0x30(%rbp), %rdi
movl -0x100(%rbp), %eax
imull -0x11c(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0xfc(%rbp), %eax
imull -0x11c(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0x11c(%rbp), %rdx
callq 0x16720
jmp 0x99f94
movq -0x20(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x99f29
movq -0x20(%rbp), %rdi
movl -0xf8(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x99f2b
jmp 0x99f80
movl -0xfc(%rbp), %eax
cmpl -0x100(%rbp), %eax
je 0x99f71
movq -0x30(%rbp), %rdi
movl -0x100(%rbp), %eax
imull -0x11c(%rbp), %eax
cltq
addq %rax, %rdi
movq -0x30(%rbp), %rsi
movl -0xfc(%rbp), %eax
imull -0x11c(%rbp), %eax
cltq
addq %rax, %rsi
movslq -0x11c(%rbp), %rdx
callq 0x16720
movl -0x100(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x100(%rbp)
movl -0xf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf8(%rbp)
jmp 0x99e8c
jmp 0x99f96
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x99e76
jmp 0x99fa6
jmp 0x99fa8
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x30(%rbp), %rcx
movl -0x74(%rbp), %r8d
movl -0x90(%rbp), %r9d
callq 0x15a20
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9a053
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x88(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2c0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2c0(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9f282(%rip), %rsi     # 0x1392bf
leaq 0x9f392(%rip), %rdx     # 0x1393d6
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x9a055
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x99096
movl $0x1, -0x50(%rbp)
movl -0x50(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9a091
movq -0x28(%rbp), %rax
movslq -0x50(%rbp), %rcx
movl (%rax,%rcx,4), %eax
cmpl -0x50(%rbp), %eax
je 0x9a084
jmp 0x9a091
jmp 0x9a086
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x9a06a
movl -0x50(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9a321
movl -0x78(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
movl %eax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0xa104f(%rip), %rdx     # 0x13b109
leaq -0x30(%rbp), %rcx
leaq -0x70(%rbp), %r8
movl $0x1, %r9d
callq 0x14810
movl %eax, -0x7c(%rbp)
movl -0x70(%rbp), %eax
shll $0x2, %eax
movl %eax, -0x78(%rbp)
cmpl $0x0, -0x7c(%rbp)
jle 0x9a31f
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x28, %rax
movl %eax, %ecx
movl -0x7c(%rbp), %eax
cltd
idivl %ecx
movl %eax, -0x7c(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x128(%rbp)
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9a2a4
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
cmpl -0x7c(%rbp), %eax
jge 0x9a27b
movq -0x128(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
sarl %eax
cmpl $0x0, %eax
je 0x9a153
xorl %eax, %eax
testb $0x1, %al
jne 0x9a15b
jmp 0x9a160
movb $0x1, %al
testb $0x1, %al
jne 0x9a15b
jmp 0x9a160
jmp 0x9a26d
movq -0x128(%rbp), %rax
movslq -0x54(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x9a179
jmp 0x9a27b
movq -0x128(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
sarl %eax
subl $0x1, %eax
movl %eax, -0x12c(%rbp)
movl -0x12c(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9a1ae
movq -0x28(%rbp), %rax
movslq -0x12c(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
jge 0x9a209
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq (%rax), %r8
addq $0x1, %r8
movl -0x12c(%rbp), %r9d
movl -0x58(%rbp), %r10d
movq -0x28(%rbp), %rax
movslq -0x12c(%rbp), %rdx
movl (%rax,%rdx,4), %eax
movl $0x1, %edi
leaq 0x9f0d1(%rip), %rsi     # 0x1392bf
leaq 0x9f2b3(%rip), %rdx     # 0x1394a8
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
cmpl $0x0, -0x12c(%rbp)
jle 0x9a22d
movq -0x28(%rbp), %rax
movslq -0x12c(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
jne 0x9a22d
xorl %eax, %eax
movl %eax, -0x2c4(%rbp)
jmp 0x9a246
movq -0x28(%rbp), %rax
movslq -0x12c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
addl $0x1, %eax
shll %eax
movl %eax, -0x2c4(%rbp)
movl -0x2c4(%rbp), %edx
movq -0x128(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl (%rax,%rcx,4), %eax
andl $0x1, %eax
orl %eax, %edx
movq -0x128(%rbp), %rax
movslq -0x54(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9a12a
movl -0x7c(%rbp), %ecx
movq -0x128(%rbp), %rax
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x128(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x9a10c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x30(%rbp), %rcx
movl -0x7c(%rbp), %r8d
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x28, %rax
imull %eax, %r8d
leaq 0xa0e3e(%rip), %rdx     # 0x13b109
movl $0x1, %r9d
callq 0x14610
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9a31d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq (%rax), %r8
addq $0x1, %r8
movl -0x7c(%rbp), %r9d
movl $0x1, %edi
leaq 0x9efb5(%rip), %rsi     # 0x1392bf
leaq 0x9f1f6(%rip), %rdx     # 0x139507
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x9a31f
jmp 0x9a321
movl $0x0, -0x50(%rbp)
movl -0x50(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x20, %rcx
andq $0xff, %rcx
cmpl %ecx, %eax
jge 0x9bd2f
movq -0x18(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x50(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x138(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
shrq $0x8, %rax
andq $0xf, %rax
movl %eax, -0x13c(%rbp)
cmpl $0x2, -0x13c(%rbp)
je 0x9a3b2
cmpl $0x3, -0x13c(%rbp)
je 0x9a3b2
cmpl $0x4, -0x13c(%rbp)
je 0x9a3b2
jmp 0x9bd21
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
shrq $0x4, %rax
andq $0xf, %rax
movl %eax, -0x140(%rbp)
cmpl $0x0, -0x140(%rbp)
jne 0x9a3ef
jmp 0x9bd21
movl $0x1, -0x144(%rbp)
cmpl $0x2, -0x140(%rbp)
je 0x9a40b
cmpl $0x1, -0x140(%rbp)
jne 0x9a415
movl $0x4, -0x144(%rbp)
movl -0x78(%rbp), %eax
cltd
idivl -0x144(%rbp)
movl %eax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movl -0x140(%rbp), %r9d
leaq -0x30(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq 0x14810
movl %eax, -0x7c(%rbp)
movl -0x70(%rbp), %eax
imull -0x144(%rbp), %eax
movl %eax, -0x78(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9a4da
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2d0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2d0(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9edfb(%rip), %rsi     # 0x1392bf
leaq 0x9f066(%rip), %rdx     # 0x139531
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
cmpl $0x0, -0x7c(%rbp)
jne 0x9a4e5
jmp 0x9bd21
cmpl $0x3, -0x140(%rbp)
jne 0x9ae93
movl -0x7c(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cltd
idivl %ecx
movl %eax, -0x148(%rbp)
movq $0x0, -0x48(%rbp)
cmpl $0x2, -0x13c(%rbp)
je 0x9a528
cmpl $0x4, -0x13c(%rbp)
jne 0x9a847
movl $0x0, -0x150(%rbp)
cmpl $0x2, -0x13c(%rbp)
jne 0x9a550
movl -0x60(%rbp), %eax
movl %eax, -0x14c(%rbp)
movl $0x1, -0x150(%rbp)
jmp 0x9a559
movl -0x58(%rbp), %eax
movl %eax, -0x14c(%rbp)
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9a842
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x148(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
movslq -0x148(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x160(%rbp)
movq -0x158(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x158(%rbp), %rax
movb (%rax), %al
movb %al, -0x169(%rbp)
movl $0x0, -0x170(%rbp)
movl $0x0, -0x174(%rbp)
movq -0x48(%rbp), %rax
movl %eax, -0x178(%rbp)
movl $0x0, -0x170(%rbp)
movl -0x170(%rbp), %eax
cmpl -0x14c(%rbp), %eax
jge 0x9a732
movq -0x168(%rbp), %rax
cmpq -0x160(%rbp), %rax
jae 0x9a61d
movq -0x168(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9a622
jmp 0x9a732
jmp 0x9a624
movq -0x168(%rbp), %rcx
xorl %eax, %eax
cmpq -0x160(%rbp), %rcx
movb %al, -0x2d1(%rbp)
jae 0x9a669
movq -0x168(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2d1(%rbp)
je 0x9a669
movq -0x168(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x2d1(%rbp)
movb -0x2d1(%rbp), %al
testb $0x1, %al
jne 0x9a675
jmp 0x9a689
movq -0x168(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x168(%rbp)
jmp 0x9a624
movq -0x20(%rbp), %rdi
movl -0x170(%rbp), %esi
addl -0x150(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9a6be
movq -0x168(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x168(%rbp)
movq %rax, -0x158(%rbp)
jmp 0x9a71e
cmpl $0x0, -0x174(%rbp)
je 0x9a6d5
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0x158(%rbp), %rdi
movq -0x168(%rbp), %rsi
movq -0x158(%rbp), %rax
subq %rax, %rsi
leaq -0x48(%rbp), %rdx
callq 0x9bfd0
movq -0x168(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x168(%rbp)
movq %rax, -0x158(%rbp)
movl -0x174(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x174(%rbp)
movl -0x170(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x170(%rbp)
jmp 0x9a5ef
cmpl $0x1, -0x170(%rbp)
jne 0x9a74c
movsbl -0x169(%rbp), %eax
cmpl $0x2e, %eax
jne 0x9a74c
jmp 0x9a834
movl -0x170(%rbp), %eax
cmpl -0x14c(%rbp), %eax
je 0x9a7f4
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2e0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2e0(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x13c(%rbp), %edx
movl $0x52, %r11d
movl $0x41, %eax
cmpl $0x2, %edx
cmovel %eax, %r11d
movl -0x14c(%rbp), %r10d
movl -0x170(%rbp), %eax
movl $0x1, %edi
leaq 0x9eaeb(%rip), %rsi     # 0x1392bf
leaq 0x9ed80(%rip), %rdx     # 0x13955b
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movq -0x48(%rbp), %rax
movslq -0x178(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x178(%rbp)
movl -0x178(%rbp), %eax
cmpl -0x148(%rbp), %eax
jge 0x9a832
xorl %edi, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movl -0x178(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x178(%rbp)
jmp 0x9a808
jmp 0x9a834
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9a560
jmp 0x9ade0
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9adde
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x148(%rbp), %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rax
movslq -0x148(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x188(%rbp)
movq -0x180(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x180(%rbp), %rax
movb (%rax), %al
movb %al, -0x191(%rbp)
movl $0x0, -0x198(%rbp)
movl $0x0, -0x19c(%rbp)
movq -0x48(%rbp), %rax
movl %eax, -0x1a0(%rbp)
movl $0x0, -0x1a4(%rbp)
movq -0x190(%rbp), %rax
cmpq -0x188(%rbp), %rax
jae 0x9a92d
movq -0x190(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9a8fb
jmp 0x9a92d
movq -0x190(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x9a919
movl -0x1a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a4(%rbp)
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
jmp 0x9a8dd
movq -0x190(%rbp), %rax
cmpq -0x180(%rbp), %rax
je 0x9a94c
movl -0x1a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a4(%rbp)
cmpl $0x1, -0x1a4(%rbp)
jne 0x9a966
movsbl -0x191(%rbp), %eax
cmpl $0x2e, %eax
jne 0x9a966
jmp 0x9add0
movl -0x1a4(%rbp), %eax
cmpl -0x68(%rbp), %eax
je 0x9a9ff
movl -0x1a4(%rbp), %eax
cmpl -0x58(%rbp), %eax
je 0x9a9ff
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2e8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2e8(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x68(%rbp), %r11d
movl -0x58(%rbp), %r10d
movl -0x1a4(%rbp), %eax
movl $0x1, %edi
leaq 0x9e8e0(%rip), %rsi     # 0x1392bf
leaq 0x9ebcd(%rip), %rdx     # 0x1395b3
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movq -0x180(%rbp), %rax
movq %rax, -0x190(%rbp)
movl -0x1a4(%rbp), %eax
cmpl -0x68(%rbp), %eax
jne 0x9abc9
movl $0x0, -0x1a8(%rbp)
movl -0x1a8(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9abc4
movl $0x0, -0x1ac(%rbp)
movl -0x1ac(%rbp), %eax
cmpl -0x1a8(%rbp), %eax
jg 0x9ab90
movq -0x190(%rbp), %rax
cmpq -0x188(%rbp), %rax
jae 0x9aa6d
movq -0x190(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9aa72
jmp 0x9ab90
jmp 0x9aa74
movq -0x190(%rbp), %rcx
xorl %eax, %eax
cmpq -0x188(%rbp), %rcx
movb %al, -0x2e9(%rbp)
jae 0x9aab9
movq -0x190(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2e9(%rbp)
je 0x9aab9
movq -0x190(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x2e9(%rbp)
movb -0x2e9(%rbp), %al
testb $0x1, %al
jne 0x9aac5
jmp 0x9aad9
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
jmp 0x9aa74
movq -0x20(%rbp), %rdi
movl -0x1a8(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x9ab01
movq -0x20(%rbp), %rdi
movl -0x1ac(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9ab1c
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
movq %rax, -0x180(%rbp)
jmp 0x9ab7c
cmpl $0x0, -0x19c(%rbp)
je 0x9ab33
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0x180(%rbp), %rdi
movq -0x190(%rbp), %rsi
movq -0x180(%rbp), %rax
subq %rax, %rsi
leaq -0x48(%rbp), %rdx
callq 0x9bfd0
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
movq %rax, -0x180(%rbp)
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
movl -0x1ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ac(%rbp)
jmp 0x9aa3f
movq -0x190(%rbp), %rax
cmpq -0x188(%rbp), %rax
jae 0x9abac
movq -0x190(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9abae
jmp 0x9abc4
jmp 0x9abb0
movl -0x1a8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a8(%rbp)
jmp 0x9aa26
jmp 0x9adce
movl $0x0, -0x198(%rbp)
movl -0x198(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9ad0d
movq -0x190(%rbp), %rax
cmpq -0x188(%rbp), %rax
jae 0x9abfe
movq -0x190(%rbp), %rax
cmpb $0x0, (%rax)
jne 0x9ac03
jmp 0x9ad0d
jmp 0x9ac05
movq -0x190(%rbp), %rcx
xorl %eax, %eax
cmpq -0x188(%rbp), %rcx
movb %al, -0x2ea(%rbp)
jae 0x9ac4a
movq -0x190(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2ea(%rbp)
je 0x9ac4a
movq -0x190(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
setne %al
movb %al, -0x2ea(%rbp)
movb -0x2ea(%rbp), %al
testb $0x1, %al
jne 0x9ac56
jmp 0x9ac6a
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
jmp 0x9ac05
movq -0x20(%rbp), %rdi
movl -0x198(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9ac99
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
movq %rax, -0x180(%rbp)
jmp 0x9acf9
cmpl $0x0, -0x19c(%rbp)
je 0x9acb0
movl $0x2c, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movq -0x180(%rbp), %rdi
movq -0x190(%rbp), %rsi
movq -0x180(%rbp), %rax
subq %rax, %rsi
leaq -0x48(%rbp), %rdx
callq 0x9bfd0
movq -0x190(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x190(%rbp)
movq %rax, -0x180(%rbp)
movl -0x19c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x19c(%rbp)
movl -0x198(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x198(%rbp)
jmp 0x9abd3
movl -0x198(%rbp), %eax
cmpl -0x58(%rbp), %eax
je 0x9ad8e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x2f8(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x2f8(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x58(%rbp), %r10d
movl -0x198(%rbp), %eax
movl $0x1, %edi
leaq 0x9e54c(%rip), %rsi     # 0x1392bf
leaq 0x9e8a8(%rip), %rdx     # 0x139622
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movq -0x48(%rbp), %rax
movslq -0x1a0(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x1a0(%rbp)
movl -0x1a0(%rbp), %eax
cmpl -0x148(%rbp), %eax
jge 0x9adcc
xorl %edi, %edi
leaq -0x48(%rbp), %rsi
callq 0x9bf00
movl -0x1a0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a0(%rbp)
jmp 0x9ada2
jmp 0x9adce
jmp 0x9add0
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9a84e
jmp 0x9ade0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x38(%rbp), %rcx
movq -0x48(%rbp), %rax
movl %eax, %r8d
movl -0x140(%rbp), %r9d
callq 0x14610
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9ae8e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x300(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x300(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9e447(%rip), %rsi     # 0x1392bf
leaq 0x9e803(%rip), %rdx     # 0x139682
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x9bd21
movl -0x7c(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cltd
idivl %ecx
movl %eax, -0x1b0(%rbp)
cmpl $0x1, -0x1b0(%rbp)
jne 0x9b104
cmpl $0x2, -0x13c(%rbp)
jne 0x9aed0
movl -0x1b0(%rbp), %eax
cmpl -0x60(%rbp), %eax
je 0x9b104
movl $0x1, -0x1b4(%rbp)
movq -0x138(%rbp), %rax
movl 0xc(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x308(%rbp)
subl $0x4, %eax
ja 0x9b0cb
movq -0x308(%rbp), %rax
leaq 0x9e28a(%rip), %rcx     # 0x139190
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9af77
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x54(%rbp), %eax
movq -0x138(%rbp), %rcx
imull 0x8(%rcx), %eax
cltq
addq %rax, %rdi
callq 0x98390
movb %al, -0x1b5(%rbp)
movsbl -0x1b5(%rbp), %eax
cmpl $-0x80, %eax
je 0x9af6a
movl $0x0, -0x1b4(%rbp)
jmp 0x9af77
jmp 0x9af6c
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9af16
jmp 0x9b0f4
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9afe7
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x54(%rbp), %eax
movq -0x138(%rbp), %rcx
imull 0x8(%rcx), %eax
cltq
addq %rax, %rdi
callq 0x983e0
movw %ax, -0x1b8(%rbp)
movswl -0x1b8(%rbp), %eax
cmpl $0xffff8000, %eax       # imm = 0xFFFF8000
je 0x9afda
movl $0x0, -0x1b4(%rbp)
jmp 0x9afe7
jmp 0x9afdc
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9af83
jmp 0x9b0f4
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9b054
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x54(%rbp), %eax
movq -0x138(%rbp), %rcx
imull 0x8(%rcx), %eax
cltq
addq %rax, %rdi
callq 0x98430
movl %eax, -0x1bc(%rbp)
cmpl $0x80000000, -0x1bc(%rbp) # imm = 0x80000000
je 0x9b047
movl $0x0, -0x1b4(%rbp)
jmp 0x9b054
jmp 0x9b049
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9aff3
jmp 0x9b0f4
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9b0c9
movq -0x138(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x54(%rbp), %eax
movq -0x138(%rbp), %rcx
imull 0x8(%rcx), %eax
cltq
addq %rax, %rdi
callq 0x9c080
movss %xmm0, -0x1c0(%rbp)
movss -0x1c0(%rbp), %xmm0
callq 0x9c0b0
cmpl $0x0, %eax
jne 0x9b0bc
movl $0x0, -0x1b4(%rbp)
jmp 0x9b0c9
jmp 0x9b0be
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9b060
jmp 0x9b0f4
movq -0x138(%rbp), %rax
movl 0xc(%rax), %ecx
movl $0x1, %edi
leaq 0x9e1de(%rip), %rsi     # 0x1392bf
leaq 0x9cc2e(%rip), %rdx     # 0x137d16
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
cmpl $0x0, -0x1b4(%rbp)
je 0x9b102
jmp 0x9bd21
jmp 0x9b104
cmpl $0x2, -0x13c(%rbp)
je 0x9b132
cmpl $0x4, -0x13c(%rbp)
je 0x9b132
cmpl $0x3, -0x13c(%rbp)
jne 0x9b5dd
movl -0x1b0(%rbp), %eax
cmpl -0x58(%rbp), %eax
jne 0x9b5dd
movl $0x0, -0x1c4(%rbp)
cmpl $0x2, -0x13c(%rbp)
jne 0x9b1f7
movl -0x1b0(%rbp), %eax
cmpl -0x60(%rbp), %eax
je 0x9b1ca
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x310(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x310(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x60(%rbp), %r10d
movl -0x1b0(%rbp), %eax
movl $0x1, %edi
leaq 0x9e110(%rip), %rsi     # 0x1392bf
leaq 0x9e4f6(%rip), %rdx     # 0x1396ac
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x64(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
imull %ecx, %eax
movl %eax, -0x74(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x1c8(%rbp)
movl $0x1, -0x1c4(%rbp)
jmp 0x9b296
movl -0x1b0(%rbp), %eax
cmpl -0x58(%rbp), %eax
je 0x9b278
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x318(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x318(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x58(%rbp), %r10d
movl -0x1b0(%rbp), %eax
movl $0x1, %edi
leaq 0x9e062(%rip), %rsi     # 0x1392bf
leaq 0x9e49f(%rip), %rdx     # 0x139703
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x5c(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
imull %ecx, %eax
movl %eax, -0x74(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x1c8(%rbp)
movl -0x140(%rbp), %eax
movl %eax, -0x31c(%rbp)
subl $0x1, %eax
je 0x9b2bd
jmp 0x9b2a9
movl -0x31c(%rbp), %eax
subl $0x2, %eax
je 0x9b442
jmp 0x9b5d8
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9b43d
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1b0(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1d0(%rbp)
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1c8(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1d8(%rbp)
movl $0x4, -0x1dc(%rbp)
movl $0x0, -0x1e4(%rbp)
movl $0x0, -0x1e0(%rbp)
movl -0x1e0(%rbp), %eax
cmpl -0x1b0(%rbp), %eax
jge 0x9b42d
movq -0x1d0(%rbp), %rax
movslq -0x1e0(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x9b3b8
cmpl $0x0, -0x1e4(%rbp)
je 0x9b3a1
movq -0x1d8(%rbp), %rdi
movslq -0x1e4(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x1d0(%rbp), %rsi
movslq -0x1e0(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x1dc(%rbp), %rdx
callq 0x16720
jmp 0x9b3b6
movq -0x1d8(%rbp), %rax
movslq -0x1e4(%rbp), %rcx
movl $0x80000000, (%rax,%rcx,4) # imm = 0x80000000
jmp 0x9b42d
movq -0x20(%rbp), %rdi
movl -0x1e0(%rbp), %esi
addl -0x1c4(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9b3d4
jmp 0x9b419
movq -0x1d8(%rbp), %rdi
movslq -0x1e4(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x1d0(%rbp), %rsi
movslq -0x1e0(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x1dc(%rbp), %rdx
callq 0x16720
movl -0x1e4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e4(%rbp)
movl -0x1e0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e0(%rbp)
jmp 0x9b337
jmp 0x9b42f
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9b2c4
jmp 0x9b5d8
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9b5d6
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1b0(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1f0(%rbp)
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1c8(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x1f8(%rbp)
movl $0x4, -0x1fc(%rbp)
movl $0x0, -0x204(%rbp)
movl $0x0, -0x200(%rbp)
movl -0x200(%rbp), %eax
cmpl -0x1b0(%rbp), %eax
jge 0x9b5c6
movq -0x1f0(%rbp), %rax
movslq -0x200(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
callq 0x9c0e0
cmpl $0x0, %eax
je 0x9b551
cmpl $0x0, -0x204(%rbp)
je 0x9b52c
movq -0x1f8(%rbp), %rdi
movslq -0x204(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x1f0(%rbp), %rsi
movslq -0x200(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x1fc(%rbp), %rdx
callq 0x16720
jmp 0x9b54f
movq -0x1f8(%rbp), %rdi
movslq -0x204(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq 0xbb7a8(%rip), %rax     # 0x156cf0
movl (%rax), %esi
callq 0x9c110
jmp 0x9b5c6
movq -0x20(%rbp), %rdi
movl -0x200(%rbp), %esi
addl -0x1c4(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9b56d
jmp 0x9b5b2
movq -0x1f8(%rbp), %rdi
movslq -0x204(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x1f0(%rbp), %rsi
movslq -0x200(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x1fc(%rbp), %rdx
callq 0x16720
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
movl -0x200(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x200(%rbp)
jmp 0x9b4bc
jmp 0x9b5c8
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9b449
jmp 0x9b5d8
jmp 0x9bc77
movl -0x1b0(%rbp), %eax
cmpl -0x68(%rbp), %eax
je 0x9b65e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x328(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x328(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x68(%rbp), %r10d
movl -0x1b0(%rbp), %eax
movl $0x1, %edi
leaq 0x9dc7c(%rip), %rsi     # 0x1392bf
leaq 0x9e110(%rip), %rdx     # 0x13975a
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
movl -0x6c(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
imull %ecx, %eax
movl %eax, -0x74(%rbp)
movl -0x140(%rbp), %eax
movl %eax, -0x32c(%rbp)
subl $0x1, %eax
je 0x9b69a
jmp 0x9b686
movl -0x32c(%rbp), %eax
subl $0x2, %eax
je 0x9b983
jmp 0x9bc75
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9b97e
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1b0(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x210(%rbp)
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x6c(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x218(%rbp)
movl $0x4, -0x21c(%rbp)
movl $0x0, -0x228(%rbp)
movl $0x0, -0x230(%rbp)
movl $0x0, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x9b75f
movq -0x210(%rbp), %rax
movslq -0x22c(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x9b73f
jmp 0x9b75f
movl -0x230(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x230(%rbp)
movl -0x22c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x22c(%rbp)
jmp 0x9b71b
movl -0x230(%rbp), %eax
cmpl -0x58(%rbp), %eax
jne 0x9b82a
movl $0x0, -0x22c(%rbp)
movl -0x22c(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9b7ef
movq -0x20(%rbp), %rdi
movl -0x22c(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9b799
jmp 0x9b7de
movq -0x218(%rbp), %rdi
movslq -0x228(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x210(%rbp), %rsi
movslq -0x22c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x21c(%rbp), %rdx
callq 0x16720
movl -0x228(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x228(%rbp)
movl -0x22c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x22c(%rbp)
jmp 0x9b778
movq -0x218(%rbp), %rdi
movslq -0x228(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x210(%rbp), %rsi
movslq -0x22c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x21c(%rbp), %rdx
callq 0x16720
jmp 0x9b96e
movl $0xffffffff, -0x22c(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x220(%rbp)
movl -0x220(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9b96c
movl $0x0, -0x224(%rbp)
movl -0x224(%rbp), %eax
cmpl -0x220(%rbp), %eax
jg 0x9b956
movl -0x22c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x22c(%rbp)
movq -0x210(%rbp), %rax
movslq -0x22c(%rbp), %rcx
cmpl $0x80000001, (%rax,%rcx,4) # imm = 0x80000001
jne 0x9b8d3
movq -0x218(%rbp), %rdi
movslq -0x228(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x210(%rbp), %rsi
movslq -0x22c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x21c(%rbp), %rdx
callq 0x16720
movl -0x58(%rbp), %eax
movl %eax, -0x220(%rbp)
jmp 0x9b956
movq -0x20(%rbp), %rdi
movl -0x220(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x9b8fb
movq -0x20(%rbp), %rdi
movl -0x224(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9b8fd
jmp 0x9b942
movq -0x218(%rbp), %rdi
movslq -0x228(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x210(%rbp), %rsi
movslq -0x22c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x21c(%rbp), %rdx
callq 0x16720
movl -0x228(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x228(%rbp)
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x9b857
jmp 0x9b958
movl -0x220(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x220(%rbp)
jmp 0x9b83e
jmp 0x9b96e
jmp 0x9b970
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9b6a1
jmp 0x9bc75
movl $0x0, -0x54(%rbp)
movl -0x54(%rbp), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x28, %rcx
cmpl %ecx, %eax
jge 0x9bc73
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x1b0(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x238(%rbp)
movq -0x30(%rbp), %rax
movl -0x54(%rbp), %ecx
imull -0x6c(%rbp), %ecx
movslq %ecx, %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x240(%rbp)
movl $0x4, -0x244(%rbp)
movl $0x0, -0x250(%rbp)
movl $0x0, -0x258(%rbp)
movl $0x0, -0x254(%rbp)
movl -0x254(%rbp), %eax
cmpl -0x68(%rbp), %eax
jge 0x9ba4e
movq -0x238(%rbp), %rax
movslq -0x254(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
callq 0x9c0e0
cmpl $0x0, %eax
je 0x9ba2e
jmp 0x9ba4e
movl -0x258(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x258(%rbp)
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
jmp 0x9ba04
movl -0x258(%rbp), %eax
cmpl -0x58(%rbp), %eax
jne 0x9bb19
movl $0x0, -0x254(%rbp)
movl -0x254(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9bade
movq -0x20(%rbp), %rdi
movl -0x254(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9ba88
jmp 0x9bacd
movq -0x240(%rbp), %rdi
movslq -0x250(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x238(%rbp), %rsi
movslq -0x254(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x244(%rbp), %rdx
callq 0x16720
movl -0x250(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x250(%rbp)
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
jmp 0x9ba67
movq -0x240(%rbp), %rdi
movslq -0x250(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x238(%rbp), %rsi
movslq -0x254(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x244(%rbp), %rdx
callq 0x16720
jmp 0x9bc63
movl $0xffffffff, -0x254(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x248(%rbp)
movl -0x248(%rbp), %eax
cmpl -0x58(%rbp), %eax
jge 0x9bc61
movl $0x0, -0x24c(%rbp)
movl -0x24c(%rbp), %eax
cmpl -0x248(%rbp), %eax
jg 0x9bc4b
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
movq -0x238(%rbp), %rax
movslq -0x254(%rbp), %rcx
movss (%rax,%rcx,4), %xmm0
callq 0x9c0e0
cmpl $0x0, %eax
je 0x9bbc8
movq -0x240(%rbp), %rdi
movslq -0x250(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x238(%rbp), %rsi
movslq -0x254(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x244(%rbp), %rdx
callq 0x16720
movl -0x58(%rbp), %eax
movl %eax, -0x248(%rbp)
jmp 0x9bc4b
movq -0x20(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
jne 0x9bbf0
movq -0x20(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x9bec0
cmpl $0x0, %eax
je 0x9bbf2
jmp 0x9bc37
movq -0x240(%rbp), %rdi
movslq -0x250(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rdi
movq -0x238(%rbp), %rsi
movslq -0x254(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
movslq -0x244(%rbp), %rdx
callq 0x16720
movl -0x250(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x250(%rbp)
movl -0x24c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24c(%rbp)
jmp 0x9bb46
jmp 0x9bc4d
movl -0x248(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x248(%rbp)
jmp 0x9bb2d
jmp 0x9bc63
jmp 0x9bc65
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0x9b98a
jmp 0x9bc75
jmp 0x9bc77
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movq -0x30(%rbp), %rcx
movl -0x74(%rbp), %r8d
movl -0x140(%rbp), %r9d
callq 0x14610
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x9bd1f
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x138(%rbp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x338(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9bf80
movq -0x338(%rbp), %rcx
movq %rax, %r8
movq -0x18(%rbp), %rax
movq (%rax), %r9
addq $0x1, %r9
movl -0x7c(%rbp), %eax
movl $0x1, %edi
leaq 0x9d5b3(%rip), %rsi     # 0x1392bf
leaq 0x9d96f(%rip), %rdx     # 0x139682
movl %eax, (%rsp)
movb $0x0, %al
callq 0x15920
jmp 0x9bd55
jmp 0x9bd21
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x9a328
jmp 0x9bd31
movq -0x38(%rbp), %rdi
callq 0x14ef0
movq -0x28(%rbp), %rdi
callq 0x14ef0
movq -0x30(%rbp), %rdi
callq 0x14ef0
movl $0x0, -0x4(%rbp)
jmp 0x9bd77
movq -0x38(%rbp), %rdi
callq 0x14ef0
movq -0x28(%rbp), %rdi
callq 0x14ef0
movq -0x30(%rbp), %rdi
callq 0x14ef0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x350, %rsp            # imm = 0x350
popq %rbp
retq
nopw %cs:(%rax,%rax)