// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, 0x8(%rsp)
movzwl 0x1a(%rsi), %edi
movl $0x4, %esi
callq 0x15e90
movq %rax, 0xd8(%rsp)
movq $0x0, 0x30(%rsp)
movq %r12, %rdi
movl $0xf, %esi
callq 0x14860
movq 0x88(%r12), %rax
movq (%rax), %r14
testq %r14, %r14
movq %rbx, 0x28(%rsp)
je 0x7399d
movq %r14, %rdi
callq 0x14de0
movq %rax, %rsi
addq $0x2, %rsi
je 0x739aa
movq %rax, %rbp
movq %rsi, %rdi
shrq %rdi
xorl %edx, %edx
movabsq $0x3fffffffffffffff, %rcx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rcx, %rsi
movl $0x0, %r13d
cmovaq %rdx, %rdi
addq %rsi, %rdi
movq %rdi, %rbx
callq 0x14810
testq %rax, %rax
je 0x74657
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x16530
movb $0x0, (%r15,%rbp)
movq %r15, %r13
movq %rbp, %r15
movq %rbx, %r14
jmp 0x739be
callq 0x159a0
movl $0xe, (%rax)
jmp 0x739b5
callq 0x159a0
movl $0x4b, (%rax)
xorl %r15d, %r15d
xorl %r14d, %r14d
xorl %r13d, %r13d
movzwl 0x1a(%r12), %eax
testl $0xfffe, %eax           # imm = 0xFFFE
je 0x759e3
movl $0x1, %esi
xorl %edx, %edx
movl $0x1, %ebp
movq %r12, 0x50(%rsp)
movq %rbp, %rax
shrq $0x6, %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx,%rax,8), %rax
btq %rbp, %rax
jae 0x73a0e
movq 0x88(%r12), %rax
movq $0x0, (%rax,%rbp,8)
incl %edx
jmp 0x73b41
leaq 0x2(%r15), %rax
cmpq %rax, %r14
movq %rdx, 0x20(%rsp)
movl %esi, (%rsp)
jae 0x73a54
movq %r14, %rbx
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x162c0
testq %rax, %rax
jne 0x73a57
jmp 0x73a67
movq %r13, %rax
movw $0x2c, (%rax,%r15)
incq %r15
movq %r14, %rbx
movq %rax, %r13
movq 0x88(%r12), %rax
movq (%rax,%rbp,8), %r14
testq %r14, %r14
je 0x73adc
movq %r14, %rdi
callq 0x14de0
movq %r15, %rcx
movq %rax, %r15
addq %rcx, %rax
addq $0x2, %rax
movq %rcx, 0x78(%rsp)
cmpq %rcx, %rax
jbe 0x73aec
cmpq %rax, %rbx
jae 0x73b01
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r12d
cmovbeq %rcx, %r12
addq %rax, %r12
movq %r13, %rdi
movq %r12, %rsi
callq 0x162c0
movq %r13, %rcx
movq %rax, %r13
testq %rax, %rax
jne 0x73b04
movq %rcx, %r13
movq 0x50(%rsp), %r12
jmp 0x73af7
callq 0x159a0
movl $0xe, (%rax)
movq %rbx, %r14
jmp 0x73b2c
callq 0x159a0
movl $0x4b, (%rax)
movq %rbx, %r14
movq 0x78(%rsp), %r15
jmp 0x73b2c
movq %rbx, %r12
movq 0x78(%rsp), %rbx
leaq (%rbx,%r13), %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x16530
addq %r15, %rbx
movq %rbx, %r15
movb $0x0, (%r13,%rbx)
movq %r12, %r14
movq 0x50(%rsp), %r12
movq 0xd8(%rsp), %rax
movl (%rsp), %esi
movl %esi, (%rax,%rbp,4)
incl %esi
movq 0x20(%rsp), %rdx
incq %rbp
movl 0x18(%r12), %ecx
movl %ecx, %eax
shrl $0x10, %eax
cmpq %rax, %rbp
jb 0x739e0
movq %rax, 0x40(%rsp)
testl %edx, %edx
je 0x759e3
movq 0x40(%rsp), %rax
movl %eax, %r9d
subl %edx, %r9d
jle 0x74662
movl %ecx, 0x4c(%rsp)
movq %r14, %r15
leal -0x1(%rax), %ecx
movq %rcx, 0xa8(%rsp)
leal -0x1(%r9), %ecx
movl %ecx, 0xe0(%rsp)
leal 0x1(%rax), %ecx
imull %eax, %ecx
movl %ecx, 0xe4(%rsp)
shrl %ecx
movq %rcx, 0x88(%rsp)
leal 0x1(%r9), %ecx
movq %r9, 0xf8(%rsp)
imull %r9d, %ecx
shrl %ecx
movl %ecx, 0x3c(%rsp)
movq %rax, %r14
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x15eb0
movl $0x0, 0x6c(%rsp)
movq 0x18(%r12), %rdi
movl %r14d, %eax
movq %rax, 0x78(%rsp)
testw %di, %di
je 0x746c5
movq $0x0, 0xb8(%rsp)
movq 0x28(%rsp), %rbp
movq %r15, %r10
xorl %r15d, %r15d
movq %r13, (%rsp)
movq 0x90(%r12), %rax
leaq (%r15,%r15,4), %rdx
movq 0x10(%rbx), %rcx
movslq (%rax,%rdx,8), %rsi
shlq $0x4, %rsi
movq 0x8(%rcx,%rsi), %rsi
movl 0x8(%rsi), %ebx
movl %ebx, %r13d
shrl $0x8, %r13d
andl $0xf, %r13d
leal -0x5(%r13), %esi
cmpl $-0x3, %esi
jb 0x73f02
shrl $0x4, %ebx
andl $0xf, %ebx
je 0x73f02
movq %r10, 0x10(%rsp)
leaq (%rax,%rdx,8), %rdi
xorl %r14d, %r14d
cmpl $0x3, %ebx
setb %r14b
leal 0x1(%r14,%r14,2), %esi
movq 0xb8(%rsp), %rax
cltd
idivl %esi
movl %eax, 0x6c(%rsp)
movq %rdi, 0x20(%rsp)
movslq (%rdi), %rax
shlq $0x4, %rax
movq (%rcx,%rax), %rdx
movq 0x8(%rsp), %rdi
movq %r12, %rsi
leaq 0x30(%rsp), %rcx
leaq 0x6c(%rsp), %r8
movl %ebx, %r9d
callq 0x15820
movl %eax, %r10d
movl 0x6c(%rsp), %edx
addb %r14b, %r14b
movl %r14d, %ecx
shll %cl, %edx
testl %eax, %eax
js 0x747bf
movq %rdx, 0xb8(%rsp)
je 0x74251
cmpl $0x3, %ebx
movq %r15, 0x70(%rsp)
jne 0x73f10
movq 0x30(%rsp), %r12
movb (%r12), %cl
cmpl $0x2, %r13d
je 0x73cef
cmpl $0x4, %r13d
jne 0x73f51
cmpl $0x2, %r13d
movq 0x40(%rsp), %rax
cmovel 0xa8(%rsp), %eax
testl %eax, %eax
movq 0x10(%rsp), %r10
jle 0x73f6e
movb %cl, 0x98(%rsp)
xorl %esi, %esi
cmpl $0x2, %r13d
sete %sil
movq %rax, 0x60(%rsp)
movl %eax, %edi
xorl %ebx, %ebx
xorl %r8d, %r8d
movq %rsi, 0x80(%rsp)
movq %rdi, 0xc0(%rsp)
movb (%r12), %al
testb %al, %al
je 0x73ee3
xorl %r14d, %r14d
testb %al, %al
je 0x73d5f
movzbl %al, %ecx
cmpl $0x2c, %ecx
je 0x73d5f
movb 0x1(%r12,%r14), %al
incq %r14
jmp 0x73d49
leaq (%rbx,%rsi), %rcx
movq %rcx, %rdx
shrq $0x6, %rdx
movq 0x10(%rbp,%rdx,8), %rdx
btq %rcx, %rdx
jb 0x73ec9
testq %r8, %r8
je 0x73dca
leaq 0x2(%r8), %rax
cmpq %rax, %r10
jae 0x73dcf
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r15d
cmovbeq %rcx, %r15
addq %rax, %r15
movq (%rsp), %rdi
movq %r15, %rsi
movq %r8, %rbp
callq 0x162c0
movq %rbp, %r8
testq %rax, %rax
jne 0x73dd6
movq 0x10(%rsp), %r10
jmp 0x73de7
xorl %r8d, %r8d
jmp 0x73de7
movq %r10, %r15
movq (%rsp), %rax
movw $0x2c, (%rax,%r8)
incq %r8
movq %r15, %r10
movq %rax, (%rsp)
leaq (%r8,%r14), %rax
addq $0x2, %rax
cmpq %r8, %rax
jbe 0x73e4b
cmpq %rax, %r10
jae 0x73e6e
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %eax
cmovbeq %rcx, %rax
addq %r8, %rax
leaq (%r14,%rax), %rbp
addq $0x2, %rbp
movq (%rsp), %rdi
movq %rbp, %rsi
movq %r8, %r15
callq 0x162c0
movq %r15, %r8
movq %rax, %r15
testq %rax, %rax
jne 0x73e75
movq 0x10(%rsp), %r10
movq 0x70(%rsp), %r15
jmp 0x73e67
movq %r10, %r15
movq %r8, %rbp
callq 0x159a0
movq %rbp, %r8
movq %r15, %r10
movq 0x70(%rsp), %r15
movl $0x4b, (%rax)
movq 0x28(%rsp), %rbp
jmp 0x73eb5
movq %r10, %rbp
movq (%rsp), %r15
movq %rbp, (%rsp)
leaq (%r15,%r8), %rbp
addq %r14, %r8
movq %r8, 0x90(%rsp)
movq %rbp, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x16530
movq 0x90(%rsp), %r8
movb $0x0, (%r14,%rbp)
movq 0x28(%rsp), %rbp
movq (%rsp), %r10
movq %r15, (%rsp)
movq 0x70(%rsp), %r15
movb (%r12,%r14), %al
movq 0x80(%rsp), %rsi
movq 0xc0(%rsp), %rdi
cmpb $0x1, %al
sbbq $-0x1, %r12
addq %r14, %r12
incq %rbx
cmpq %rdi, %rbx
jne 0x73d3a
movq 0x60(%rsp), %rbx
cmpl $0x1, %ebx
sete %al
cmpb $0x2e, 0x98(%rsp)
sete %cl
testb %cl, %al
movq 0x50(%rsp), %r12
movq 0x60(%rsp), %rax
je 0x73f78
movq (%rsp), %r13
movq 0x8(%rsp), %rbx
jmp 0x74631
cmpl $0x1, %r10d
movq 0x20(%rsp), %rdi
jne 0x7426b
movl 0x4(%rdi), %ecx
leal -0x1(%rcx), %eax
cmpl $0x4, %eax
ja 0x761b0
leaq 0x5f0cb(%rip), %rsi     # 0xd3000
movslq (%rsi,%rax,4), %rax
addq %rsi, %rax
jmpq *%rax
movq 0x10(%rdi), %rax
xorl %ecx, %ecx
cmpb (%rax), %cl
jo 0x74251
jmp 0x7426b
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
movq 0x10(%rsp), %r10
jae 0x73f93
xorl %ebx, %ebx
xorl %r8d, %r8d
movq (%rsp), %r13
jmp 0x741f2
xorl %ebx, %ebx
xorl %r8d, %r8d
movq 0x50(%rsp), %r12
cmpl %eax, %ebx
jne 0x75d8a
movq %r10, 0x10(%rsp)
movq (%rsp), %r13
movq 0x8(%rsp), %rbx
jmp 0x74211
movb %cl, 0x98(%rsp)
xorl %ecx, %ecx
movl $0x1, %esi
xorl %ebx, %ebx
xorl %r8d, %r8d
movq (%rsp), %r13
movq %rcx, %rdi
movl $0x1, %r9d
movq %rcx, 0x58(%rsp)
shlq %cl, %r9
shrq $0x6, %rdi
leal (%rsi,%rbx), %eax
movq %rax, 0xc8(%rsp)
xorl %ebp, %ebp
movq %r12, %r15
movq %rsi, 0x80(%rsp)
movq %rdi, 0xc0(%rsp)
movq %r9, 0x60(%rsp)
movb (%r15), %al
testb %al, %al
je 0x741c9
xorl %r14d, %r14d
movq %r15, %r12
testb %al, %al
je 0x7400e
movzbl %al, %ecx
cmpl $0x2c, %ecx
je 0x7400e
movb 0x1(%r12), %al
incq %r12
incq %r14
jmp 0x73ff5
movq 0x28(%rsp), %rdx
testq %r9, 0x10(%rdx,%rdi,8)
jne 0x74181
movq %rbp, %rcx
shrq $0x6, %rcx
movq 0x10(%rdx,%rcx,8), %rcx
btq %rbp, %rcx
jb 0x74181
testq %r8, %r8
je 0x74099
movq %r13, %rdx
leaq 0x2(%r8), %rax
cmpq %rax, %r10
jae 0x7409e
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rsi # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rsi, %rax
movl $0x0, %r13d
cmovbeq %rcx, %r13
addq %rax, %r13
movq %rdx, %rdi
movq %rdx, (%rsp)
movq %r13, %rsi
movq %r8, 0x90(%rsp)
callq 0x162c0
movq 0x90(%rsp), %r8
testq %rax, %rax
jne 0x740a4
movq (%rsp), %r13
movq 0x10(%rsp), %r10
jmp 0x740b4
xorl %r8d, %r8d
jmp 0x740b4
movq %r10, %r13
movq %rdx, %rax
movw $0x2c, (%rax,%r8)
incq %r8
movq %r13, %r10
movq %rax, %r13
leaq (%r8,%r14), %rax
addq $0x2, %rax
cmpq %r8, %rax
jbe 0x7411a
cmpq %rax, %r10
jae 0x74133
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %eax
cmovbeq %rcx, %rax
addq %r8, %rax
leaq (%r14,%rax), %rsi
addq $0x2, %rsi
movq %r13, %rdi
movq %rsi, (%rsp)
movq %r8, 0x90(%rsp)
callq 0x162c0
movq 0x90(%rsp), %r8
testq %rax, %rax
jne 0x7413a
movq 0x10(%rsp), %r10
jmp 0x74168
movq %r10, %r14
movq %r8, %r15
callq 0x159a0
movq %r15, %r8
movq %r14, %r10
movl $0x4b, (%rax)
jmp 0x74168
movq %r10, (%rsp)
movq %r13, %rax
movq %rax, 0x10(%rsp)
leaq (%rax,%r8), %r13
addq %r14, %r8
movq %r13, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %r8, %r15
callq 0x16530
movq %r15, %r8
movb $0x0, (%r14,%r13)
movq (%rsp), %r10
movq 0x10(%rsp), %r13
movb (%r12), %al
movq 0x80(%rsp), %rsi
movq 0xc0(%rsp), %rdi
movq 0x60(%rsp), %r9
incl %ebx
cmpb $0x1, %al
movq %r12, %r15
sbbq $-0x1, %r15
incq %rbp
cmpq %rsi, %rbp
jne 0x73fe4
cmpb $0x1, %al
sbbq $-0x1, %r12
cmpb $0x0, (%r12)
je 0x7464a
movq 0x58(%rsp), %rcx
incq %rcx
incq %rsi
cmpq 0x78(%rsp), %rcx
movq 0xc8(%rsp), %rbx
jb 0x73faa
jmp 0x741c9
cmpl $0x1, %ebx
sete %al
cmpb $0x2e, 0x98(%rsp)
sete %cl
testb %cl, %al
movq 0x28(%rsp), %rbp
movq 0x70(%rsp), %r15
je 0x741f2
movq 0x50(%rsp), %r12
jmp 0x73f06
cmpl 0x88(%rsp), %ebx
movq 0x50(%rsp), %r12
movq %rbx, %rax
movq 0x8(%rsp), %rbx
jne 0x75fb9
movq %r10, 0x10(%rsp)
movq 0x10(%rbx), %rax
movq 0x20(%rsp), %r14
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rdx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rcx
movl $0x3, %r9d
callq 0x158b0
testl %eax, %eax
jns 0x7462c
jmp 0x75c7d
movq 0x10(%rdi), %rax
xorl %ecx, %ecx
cmpw (%rax), %cx
jno 0x7426b
movq (%rsp), %r13
jmp 0x74627
movq 0x10(%rdi), %rax
movq 0x7ea93(%rip), %rcx     # 0xf2cf8
movl (%rcx), %ecx
cmpl (%rax), %ecx
je 0x74251
cmpl $0x4, %r13d
je 0x742a0
cmpl $0x2, %r13d
jne 0x74328
movl $0x1, %eax
movq 0xa8(%rsp), %rdx
movl %edx, %ecx
movl 0xe0(%rsp), %r8d
cmpl %edx, %r10d
movq (%rsp), %r13
je 0x742c1
jmp 0x76046
movq 0x40(%rsp), %rax
cmpl %eax, %r10d
jne 0x76001
movl %eax, %ecx
xorl %eax, %eax
movq 0xf8(%rsp), %rdx
movl %edx, %r8d
movq (%rsp), %r13
cmpl $0x2, %ebx
je 0x74451
cmpl $0x1, %ebx
jne 0x745f6
movq 0x30(%rsp), %rsi
movl %ecx, %edi
xorl %ecx, %ecx
xorl %edx, %edx
cmpl $0x80000001, (%rsi,%rcx,4) # imm = 0x80000001
je 0x744b3
leaq (%rax,%rcx), %r9
movq %r9, %r10
shrq $0x6, %r10
movq 0x10(%rbp,%r10,8), %r10
btq %r9, %r10
jb 0x7431b
movl %edx, %r9d
cmpq %r9, %rcx
je 0x74319
movq 0x30(%rsp), %r9
movslq %edx, %r10
movl (%r9,%rcx,4), %r11d
movl %r11d, (%r9,%r10,4)
incl %edx
incq %rcx
cmpq %rcx, %rdi
jne 0x742de
jmp 0x745f6
cmpl 0x88(%rsp), %r10d
movq (%rsp), %r13
jne 0x76087
cmpl $0x2, %ebx
je 0x744dc
movl 0x3c(%rsp), %r8d
cmpl $0x1, %ebx
jne 0x745f6
movl 0x3c(%rsp), %r8d
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jb 0x745f6
movq 0x30(%rsp), %rax
addq $0x4, %rax
movq %rax, 0x80(%rsp)
xorl %ecx, %ecx
movq $-0x1, %rdi
movl $0x1, %edx
xorl %esi, %esi
movl $0x1, %r8d
shlq %cl, %r8
movq %rcx, %r9
shrq $0x6, %r9
movslq %edi, %rdi
leal 0x4(,%rdi,4), %r10d
leaq 0x4(,%rdi,4), %r14
leal 0x1(%rdi), %r15d
movq 0x80(%rsp), %rax
leaq (%rax,%rdi,4), %r12
xorl %r13d, %r13d
movq %r13, %r11
cmpl $0x80000001, (%r12,%r13,4) # imm = 0x80000001
je 0x74414
testq %r8, 0x10(%rbp,%r9,8)
jne 0x74405
movq %r11, %r13
shrq $0x6, %r13
movq 0x10(%rbp,%r13,8), %r13
btq %r11, %r13
jb 0x74405
leal (%r15,%r11), %ebp
cmpl %esi, %ebp
je 0x743fe
movq 0x30(%rsp), %r13
movslq %esi, %rbp
leaq (%r14,%r13), %rax
movl (%rax,%r11,4), %eax
movl %eax, (%r13,%rbp,4)
incl %esi
movq 0x28(%rsp), %rbp
leaq 0x1(%r11), %r13
addl $0x4, %r10d
cmpq %r13, %rdx
jne 0x743bb
jmp 0x74427
movq 0x30(%rsp), %r8
movslq %esi, %r9
movslq %r10d, %r10
movl (%r8,%r10), %r10d
movl %r10d, (%r8,%r9,4)
incq %rcx
incq %rdx
addq %r11, %rdi
incq %rdi
cmpq 0x78(%rsp), %rcx
jne 0x74385
movl 0x3c(%rsp), %r8d
movq (%rsp), %r13
movq 0x50(%rsp), %r12
jmp 0x745f1
movq 0x30(%rsp), %rsi
movl %ecx, %edi
movq 0x7e941(%rip), %rcx     # 0xf2da0
movl (%rcx), %r9d
xorl %ecx, %ecx
xorl %edx, %edx
cmpl (%rsi,%rcx,4), %r9d
je 0x744b3
leaq (%rax,%rcx), %r10
movq %r10, %r11
shrq $0x6, %r11
movq 0x10(%rbp,%r11,8), %r11
btq %r10, %r11
jb 0x744a6
movl %edx, %r10d
cmpq %r10, %rcx
je 0x744a4
movq 0x30(%rsp), %r9
movslq %edx, %r10
movl (%r9,%rcx,4), %r11d
movl %r11d, (%r9,%r10,4)
movq 0x7e8ff(%rip), %r9      # 0xf2da0
movl (%r9), %r9d
incl %edx
incq %rcx
cmpq %rcx, %rdi
jne 0x74466
jmp 0x745f6
movq 0x30(%rsp), %rax
movslq %edx, %rdx
shll $0x2, %ecx
movl (%rax,%rcx), %ecx
movl %ecx, (%rax,%rdx,4)
jmp 0x745f6
movq 0x10(%rdi), %rax
xorl %ecx, %ecx
cmpl (%rax), %ecx
jo 0x74251
jmp 0x7426b
movl 0x3c(%rsp), %r8d
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jb 0x745f6
movq 0x30(%rsp), %rcx
movq 0x7e8a5(%rip), %rax     # 0xf2da0
movl (%rax), %edi
addq $0x4, %rcx
movq %rcx, 0x80(%rsp)
xorl %ecx, %ecx
movq $-0x1, %r8
movl $0x1, %edx
xorl %esi, %esi
movl $0x1, %r9d
shlq %cl, %r9
movq %rcx, %r10
shrq $0x6, %r10
movslq %r8d, %r8
leal 0x4(,%r8,4), %r11d
leaq 0x4(,%r8,4), %r15
leal 0x1(%r8), %r12d
movq 0x80(%rsp), %rax
leaq (%rax,%r8,4), %r13
xorl %ebp, %ebp
movq %rbp, %r14
cmpl (%r13,%rbp,4), %edi
je 0x745ab
movq 0x28(%rsp), %rax
testq %r9, 0x10(%rax,%r10,8)
jne 0x7459c
movq %r14, %rbp
shrq $0x6, %rbp
movq 0x10(%rax,%rbp,8), %rbp
btq %r14, %rbp
jb 0x7459c
leal (%r12,%r14), %ebp
cmpl %esi, %ebp
je 0x7459a
movq 0x30(%rsp), %rdi
movslq %esi, %rbp
leaq (%rdi,%r15), %rax
movl (%rax,%r14,4), %eax
movl %eax, (%rdi,%rbp,4)
movq 0x7e808(%rip), %rax     # 0xf2da0
movl (%rax), %edi
incl %esi
leaq 0x1(%r14), %rbp
addl $0x4, %r11d
cmpq %rbp, %rdx
jne 0x7454e
jmp 0x745c7
movq 0x30(%rsp), %rdi
movslq %esi, %r9
movslq %r11d, %r10
movl (%rdi,%r10), %r10d
movl %r10d, (%rdi,%r9,4)
movq 0x7e7db(%rip), %rax     # 0xf2da0
movl (%rax), %edi
incq %rcx
incq %rdx
addq %r14, %r8
incq %r8
cmpq 0x78(%rsp), %rcx
jne 0x74519
movl 0x3c(%rsp), %r8d
movq (%rsp), %r13
movq 0x50(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0x70(%rsp), %r15
movq 0x8(%rsp), %rdi
movq 0x10(%rdi), %rax
movq 0x20(%rsp), %r14
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rdx
movq 0x30(%rsp), %rcx
movq %r12, %rsi
movl %ebx, %r9d
callq 0x158b0
testl %eax, %eax
js 0x75c4c
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r10
incq %r15
movq 0x18(%r12), %rdi
movzwl %di, %eax
cmpq %rax, %r15
jb 0x73c0a
jmp 0x746d9
movq 0xc8(%rsp), %rbx
jmp 0x741c9
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x739be
movslq 0x10(%r12), %rax
testq %rax, %rax
sets %cl
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
sete %dl
orb %cl, %dl
jne 0x7468f
cmpl %eax, 0x4(%rsi)
jle 0x7468f
movq 0x18(%rsi), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rax
jmp 0x74691
xorl %eax, %eax
testq %rax, %rax
leaq 0x5e1b3(%rip), %rcx     # 0xd284e
cmovneq %rax, %rcx
movq (%r12), %r8
incq %r8
leaq 0x5ea82(%rip), %rsi     # 0xd312f
leaq 0x5ea91(%rip), %rdx     # 0xd3145
movl $0x1, %edi
xorl %eax, %eax
callq 0x157b0
jmp 0x75f81
movq $0x0, 0xb8(%rsp)
movq 0x28(%rsp), %rbp
movq %r15, %r10
cmpl $0x20000, 0x4c(%rsp)    # imm = 0x20000
jb 0x7480e
movl $0x1, %eax
movq 0xd8(%rsp), %rcx
movl (%rcx,%rax,4), %ecx
cmpq %rcx, %rax
jne 0x74710
incq %rax
cmpq %rax, 0x78(%rsp)
jne 0x746ec
movq 0x8(%rsp), %rbx
jmp 0x7480e
movq %r10, 0x10(%rsp)
movq 0xb8(%rsp), %rcx
leal 0x3(%rcx), %eax
testl %ecx, %ecx
cmovnsl %ecx, %eax
sarl $0x2, %eax
leaq 0x6c(%rsp), %rbx
movl %eax, (%rbx)
leaq 0x60416(%rip), %rdx     # 0xd4b4c
leaq 0x30(%rsp), %rcx
movq 0x8(%rsp), %rdi
movq %r12, %rsi
movq %rbx, %r8
movl $0x1, %r9d
callq 0x14750
movl %eax, %esi
movl (%rbx), %eax
shll $0x2, %eax
movq 0x18(%r12), %rdi
testl %esi, %esi
movq %rax, 0xb8(%rsp)
jle 0x74804
movq %rdi, %r10
shrq $0x28, %r10
xorl %r11d, %r11d
movl %esi, %eax
xorl %edx, %edx
divl %r10d
movq 0x30(%rsp), %rcx
testq %r10, %r10
jne 0x75abf
movl %r10d, %r8d
imull %eax, %r8d
leaq 0x603b2(%rip), %rdx     # 0xd4b4c
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movl $0x1, %r9d
callq 0x14560
testl %eax, %eax
js 0x75cdf
movq 0x18(%r12), %rdi
jmp 0x74809
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x20(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75b8a
cmpl %eax, 0x4(%rdx)
movq (%rsp), %r13
jle 0x75bc3
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75bc5
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r10
shrq $0x20, %rdi
testb %dil, %dil
je 0x759e3
movq 0x88(%rsp), %rax
cmpl $0x1, %eax
movl %eax, %r9d
adcl $0x0, %r9d
movl 0x3c(%rsp), %ecx
movq %rcx, 0x108(%rsp)
movl %eax, %eax
movq %rax, 0xf0(%rsp)
leaq (,%rax,4), %rax
movq %rax, 0x100(%rsp)
xorl %esi, %esi
movq %r9, 0xa0(%rsp)
movq 0x98(%r12), %rdx
movq %rsi, %rax
shlq $0x5, %rax
movq 0x10(%rbx), %rcx
movq %rdx, %rdi
movslq (%rdx,%rax), %rdx
shlq $0x4, %rdx
movq 0x8(%rcx,%rdx), %rdx
movl 0x10(%rdx), %ebx
movl %ebx, %edx
shrl $0x8, %edx
andl $0xf, %edx
movq %rdx, 0x90(%rsp)
addl $-0x5, %edx
cmpl $-0x3, %edx
jb 0x74c9a
shrl $0x4, %ebx
andl $0xf, %ebx
je 0x74c9a
movq %rsi, 0xb0(%rsp)
movq %r10, 0x10(%rsp)
addq %rax, %rdi
xorl %r14d, %r14d
cmpl $0x3, %ebx
setb %r14b
leal 0x1(%r14,%r14,2), %esi
movq 0xb8(%rsp), %rax
cltd
idivl %esi
movl %eax, 0x6c(%rsp)
movq %rdi, 0x58(%rsp)
movslq (%rdi), %rax
shlq $0x4, %rax
movq (%rcx,%rax), %rdx
movq 0x8(%rsp), %rdi
movq %r12, %rsi
leaq 0x30(%rsp), %rcx
leaq 0x6c(%rsp), %r8
movl %ebx, %r9d
callq 0x14750
movl 0x6c(%rsp), %edx
addb %r14b, %r14b
movl %r14d, %ecx
shll %cl, %edx
testl %eax, %eax
js 0x75a7b
movq %rdx, 0xb8(%rsp)
je 0x759bf
movq 0x18(%r12), %rsi
movq %rsi, %rcx
shrq $0x28, %rcx
movq %rax, 0xd0(%rsp)
xorl %edx, %edx
movq %rcx, 0x60(%rsp)
divl %ecx
movl %eax, %edi
cmpl $0x3, %ebx
movq 0x10(%rsp), %r10
movq %rdi, 0x20(%rsp)
jne 0x74ca4
movq 0x90(%rsp), %rcx
cmpl $0x2, %ecx
je 0x7496d
cmpl $0x4, %ecx
jne 0x74d19
cmpl $0x2, %ecx
movq 0x40(%rsp), %rax
movl %eax, %edx
cmovel 0xa8(%rsp), %edx
movabsq $0x10000000000, %rax    # imm = 0x10000000000
cmpq %rax, %rsi
jb 0x74d28
xorl %eax, %eax
cmpl $0x2, %ecx
sete %al
movq %rax, 0x70(%rsp)
movl %edi, %eax
movq %rax, 0x110(%rsp)
testl %edx, %edx
setg %al
movq %rdx, 0xe8(%rsp)
movslq %edx, %rcx
movq %rcx, 0x80(%rsp)
movq 0xd0(%rsp), %rcx
cmpl 0x60(%rsp), %ecx
setae %cl
andb %al, %cl
movb %cl, 0xc8(%rsp)
xorl %ecx, %ecx
xorl %edx, %edx
xorl %ebp, %ebp
cmpb $0x0, 0xc8(%rsp)
movq %rcx, 0x60(%rsp)
je 0x74bd4
movq 0x30(%rsp), %r12
movq %rcx, %rax
movq 0x110(%rsp), %rcx
imulq %rcx, %rax
movb (%r12,%rax), %sil
testb %sil, %sil
je 0x74c5b
movb %sil, 0x1f(%rsp)
addq %rax, %r12
leaq (%r12,%rcx), %rbx
xorl %esi, %esi
movq %rdx, 0xd0(%rsp)
movq %rdx, %r9
xorl %ebp, %ebp
movq %r12, %r14
cmpq %rbx, %r12
jae 0x74a4e
movq %r12, %r14
movzbl (%r14), %eax
testl %eax, %eax
je 0x74a4e
cmpl $0x2c, %eax
je 0x74a4e
incq %r14
cmpq %rbx, %r14
jb 0x74a39
movq 0x70(%rsp), %rax
addq %rbp, %rax
movq %rax, %rcx
shrq $0x6, %rcx
movq 0x28(%rsp), %rdx
movq 0x10(%rdx,%rcx,8), %rcx
btq %rax, %rcx
jb 0x74b9f
testl %esi, %esi
movq %rsi, 0xc0(%rsp)
je 0x74ae4
leaq 0x2(%r9), %rax
cmpq %rax, %r10
jae 0x74ad3
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r15d
cmovbeq %rcx, %r15
addq %rax, %r15
movq %r13, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r9, %r13
callq 0x162c0
movq %r13, %r9
movq %rax, %r13
testq %rax, %rax
jne 0x74ad6
movq 0x10(%rsp), %r10
movq (%rsp), %r13
jmp 0x74ae4
movq %r10, %r15
movw $0x2c, (%r13,%r9)
incq %r9
movq %r15, %r10
movq %r14, %r15
subq %r12, %r15
leaq (%r9,%r15), %rax
addq $0x2, %rax
cmpq %r9, %rax
jbe 0x74b51
cmpq %rax, %r10
jae 0x74b6a
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %esi
cmovbeq %rcx, %rsi
addq %rax, %rsi
movq %r13, %rdi
movq %rsi, (%rsp)
movq %r9, 0x98(%rsp)
callq 0x162c0
movq 0x98(%rsp), %r9
movq %r13, %rcx
movq %rax, %r13
testq %rax, %rax
jne 0x74b6e
movq %rcx, %r13
movq 0x10(%rsp), %r10
jmp 0x74b90
movq %r10, %r15
movq %r9, %r12
callq 0x159a0
movq %r12, %r9
movq %r15, %r10
movl $0x4b, (%rax)
jmp 0x74b90
movq %r10, (%rsp)
leaq (%r9,%r13), %rdi
addq %r15, %r9
movq %r12, %rsi
movq %r15, %rdx
movq %r9, %r15
callq 0x16530
movq %r15, %r9
movb $0x0, (%r13,%r15)
movq (%rsp), %r10
movq 0xc0(%rsp), %rsi
incl %esi
movq 0x20(%rsp), %rdi
incq %rbp
cmpq 0x80(%rsp), %rbp
jge 0x74bc2
movq %r14, %r12
incq %r12
cmpq %rbx, %r12
jae 0x74bc2
cmpb $0x0, (%r12)
jne 0x74a2e
movq 0xd0(%rsp), %rdx
movb 0x1f(%rsp), %sil
jmp 0x74c60
movq %rdx, %r9
cmpl 0xe8(%rsp), %ebp
jne 0x759ea
movl %r9d, %ebx
subl %edx, %ebx
cmpl %ebx, %edi
jle 0x74c78
leaq 0x2(%r9), %rax
cmpq %rax, %r10
jae 0x74c3d
movq %r10, %r15
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq %r13, %rdi
movq %r14, %rsi
movq %r9, %rbp
callq 0x162c0
movq %rbp, %r9
movq 0x20(%rsp), %rdi
testq %rax, %rax
jne 0x74c43
movq %r15, %r10
jmp 0x74c53
movq %r10, %r14
movq %r13, %rax
movw $0x0, (%rax,%r9)
incq %r9
movq %r14, %r10
movq %rax, %r13
incl %ebx
cmpl %edi, %ebx
jl 0x74bf1
jmp 0x74c78
xorl %ebp, %ebp
movq %rdx, %r9
cmpl $0x1, %ebp
movq 0x50(%rsp), %r12
jne 0x74bd7
cmpb $0x2e, %sil
jne 0x74bd7
movq 0x60(%rsp), %rcx
incq %rcx
movq 0x18(%r12), %rax
shrq $0x28, %rax
movq %r9, %rdx
cmpq %rax, %rcx
jb 0x749dd
jmp 0x74d2b
movq 0x8(%rsp), %rbx
jmp 0x759d1
cmpl $0x1, %edi
jne 0x75388
cmpl $0x2, 0x90(%rsp)
jne 0x74cc5
cmpl $0x1, 0xa8(%rsp)
je 0x753cb
movq 0x58(%rsp), %rax
movl 0xc(%rax), %ecx
leal -0x1(%rcx), %eax
cmpl $0x4, %eax
ja 0x7635b
leaq 0x5e334(%rip), %rdx     # 0xd3014
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movq 0x58(%rsp), %rcx
movq 0x10(%rcx), %rax
movslq 0x8(%rcx), %rcx
movq 0x60(%rsp), %rdx
cmpl $0x1, %edx
adcl $0x0, %edx
xorl %edi, %edi
cmpb (%rax), %dil
jno 0x75388
addq %rcx, %rax
decq %rdx
jne 0x74d01
jmp 0x7537e
movabsq $0x10000000000, %rax    # imm = 0x10000000000
cmpq %rax, %rsi
jae 0x74d73
xorl %r9d, %r9d
movq %r10, %r14
movq 0x8(%rsp), %rbx
movq 0x10(%rbx), %rax
movq 0x58(%rsp), %r15
movslq (%r15), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rdx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rcx
movl %r9d, %r8d
movl $0x3, %r9d
callq 0x14560
testl %eax, %eax
js 0x75e08
movq 0x28(%rsp), %rbp
movq %r14, %r10
jmp 0x759c9
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
setae %al
movl %edi, %ecx
movq %rcx, 0xe8(%rsp)
movq 0xd0(%rsp), %rsi
cmpl 0x60(%rsp), %esi
setae %cl
andb %al, %cl
movb %cl, 0x1f(%rsp)
xorl %edx, %edx
xorl %r9d, %r9d
movq %r10, %r8
movq 0x30(%rsp), %rax
movq %rdx, 0xc8(%rsp)
movq 0xe8(%rsp), %rcx
imulq %rcx, %rdx
leaq (%rax,%rdx), %r12
leaq (%r12,%rcx), %rbx
xorl %ecx, %ecx
movb (%rax,%rdx), %al
movq %r12, %rdx
cmpl 0x60(%rsp), %esi
movq 0x28(%rsp), %rdi
jae 0x75065
xorl %r10d, %r10d
cmpq %r12, %rdx
setne %r10b
addl %ecx, %r10d
cmpl $0x1, %r10d
jne 0x74e22
cmpb $0x2e, %al
jne 0x74e22
movq %r8, %r10
movq 0xc8(%rsp), %rdx
incq %rdx
movq 0x50(%rsp), %r12
movq 0x18(%r12), %rax
shrq $0x28, %rax
cmpq %rax, %rdx
movq 0xd0(%rsp), %rsi
jb 0x74da2
jmp 0x74d2b
movq 0x88(%rsp), %rdx
cmpl %edx, %r10d
sete %al
cmpl 0x40(%rsp), %r10d
sete %cl
orb %al, %cl
je 0x75bf1
cmpl %edx, %r10d
jne 0x75092
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
movq %r8, %r10
jb 0x74df7
xorl %ecx, %ecx
xorl %edx, %edx
movq %r12, %r15
cmpq %rbx, %r12
jae 0x74df7
movq %rcx, %rsi
shrq $0x6, %rsi
movl $0x1, %r8d
shlq %cl, %r8
xorl %r14d, %r14d
movq %rcx, 0x80(%rsp)
movq %rsi, 0xc0(%rsp)
movq %r8, 0x90(%rsp)
movb (%r12), %al
testb %al, %al
je 0x75047
cmpq %rbx, %r12
jae 0x74ebb
incq %r12
testb %al, %al
je 0x74eb8
movzbl %al, %eax
cmpl $0x2c, %eax
je 0x74eb8
cmpq %rbx, %r12
jae 0x74ebb
movb (%r12), %al
jmp 0x74e9e
decq %r12
testq %r8, 0x10(%rdi,%rsi,8)
jne 0x75024
movq %r14, %rax
shrq $0x6, %rax
movq 0x10(%rdi,%rax,8), %rax
btq %r14, %rax
jb 0x75024
testl %edx, %edx
movl %edx, 0x70(%rsp)
je 0x74f50
movq %r13, %rbp
leaq 0x2(%r9), %rax
cmpq %rax, %r10
jae 0x74f3a
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r13d
cmovbeq %rcx, %r13
addq %rax, %r13
movq %rbp, %rdi
movq %rbp, (%rsp)
movq %r13, %rsi
movq %r9, %rbp
callq 0x162c0
movq %rbp, %r9
testq %rax, %rax
jne 0x74f40
movq (%rsp), %r13
movq 0x10(%rsp), %r10
jmp 0x74f50
movq %r10, %r13
movq %rbp, %rax
movw $0x2c, (%rax,%r9)
incq %r9
movq %r13, %r10
movq %rax, %r13
movq %r12, %rbp
subq %r15, %rbp
leaq (%r9,%rbp), %rax
addq $0x2, %rax
cmpq %r9, %rax
jbe 0x74fc2
cmpq %rax, %r10
jae 0x74fdb
movq %r10, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %esi
cmovbeq %rcx, %rsi
addq %rax, %rsi
movq %r13, %rdi
movq %rsi, (%rsp)
movq %r9, 0x98(%rsp)
callq 0x162c0
movq 0x98(%rsp), %r9
movq %r13, %rcx
movq %rax, %r13
testq %rax, %rax
jne 0x74fdf
movq %rcx, %r13
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %r10
jmp 0x75006
movq %r10, %r15
movq %r9, %rbp
callq 0x159a0
movq %rbp, %r9
movq %r15, %r10
movl $0x4b, (%rax)
jmp 0x75001
movq %r10, (%rsp)
leaq (%r9,%r13), %rdi
addq %rbp, %r9
movq %r15, %rsi
movq %rbp, %rdx
movq %r9, %r15
callq 0x16530
movq %r15, %r9
movb $0x0, (%r13,%r15)
movq (%rsp), %r10
movq 0x28(%rsp), %rdi
movl 0x70(%rsp), %edx
incl %edx
movq 0x80(%rsp), %rcx
movq 0xc0(%rsp), %rsi
movq 0x90(%rsp), %r8
incq %r12
cmpq %rcx, %r14
jae 0x7503b
incq %r14
movq %r12, %r15
cmpq %rbx, %r12
jb 0x74e8d
movq %r12, %r15
cmpq %rbx, %r12
jae 0x74df7
cmpb $0x0, (%r12)
je 0x74df7
incq %rcx
cmpq 0x78(%rsp), %rcx
jb 0x74e5d
jmp 0x74df7
xorl %ecx, %ecx
movl %eax, %esi
movq %r12, %rdx
cmpb $0x2c, %sil
je 0x7507f
movzbl %sil, %esi
testl %esi, %esi
jne 0x75081
jmp 0x74ddd
incl %ecx
incq %rdx
cmpq %rbx, %rdx
jae 0x74ddd
movb (%rdx), %sil
jmp 0x7506c
xorl %ebp, %ebp
cmpb $0x0, 0x1f(%rsp)
je 0x7525f
xorl %ebp, %ebp
xorl %esi, %esi
movq %r9, %r11
movq %r8, %rdx
movq 0x20(%rsp), %rdi
movq %r9, 0x98(%rsp)
movb (%r12), %al
testb %al, %al
je 0x7525a
movq %r12, %r14
cmpq %rbx, %r12
jae 0x750eb
leaq 0x1(%r12), %r14
testb %al, %al
je 0x750e8
movzbl %al, %eax
cmpl $0x2c, %eax
je 0x750e8
cmpq %rbx, %r14
jae 0x750eb
movb (%r14), %al
incq %r14
jmp 0x750cf
decq %r14
movq %rbp, %rax
shrq $0x6, %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx,%rax,8), %rax
btq %rbp, %rax
jb 0x75241
testl %esi, %esi
movl %esi, 0x70(%rsp)
je 0x75175
leaq 0x2(%r11), %rax
cmpq %rax, %rdx
jae 0x75164
movq %rdx, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r15d
cmovbeq %rcx, %r15
addq %rax, %r15
movq %r13, (%rsp)
movq %r13, %rdi
movq %r15, %rsi
movq %r11, %r13
callq 0x162c0
movq %r13, %r11
movq %rax, %r13
testq %rax, %rax
jne 0x75167
movq 0x10(%rsp), %rdx
movq (%rsp), %r13
jmp 0x75175
movq %rdx, %r15
movw $0x2c, (%r13,%r11)
incq %r11
movq %r15, %rdx
movq %r14, %r15
subq %r12, %r15
leaq (%r11,%r15), %rax
addq $0x2, %rax
cmpq %r11, %rax
jbe 0x751e2
cmpq %rax, %rdx
jae 0x75208
movq %rdx, 0x10(%rsp)
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %esi
cmovbeq %rcx, %rsi
addq %rax, %rsi
movq %r13, %rdi
movq %rsi, (%rsp)
movq %r11, 0x80(%rsp)
callq 0x162c0
movq 0x80(%rsp), %r11
movq %r13, %rcx
movq %rax, %r13
testq %rax, %rax
jne 0x7520c
movq %rcx, %r13
movq 0x10(%rsp), %rdx
jmp 0x7522e
movq %rdx, %r15
movq %r11, %r12
callq 0x159a0
movq %r12, %r11
movq 0x98(%rsp), %r9
movq 0x20(%rsp), %rdi
movq %r15, %rdx
movl $0x4b, (%rax)
jmp 0x7523b
movq %rdx, (%rsp)
leaq (%r11,%r13), %rdi
addq %r15, %r11
movq %r12, %rsi
movq %r15, %rdx
movq %r11, %r15
callq 0x16530
movq %r15, %r11
movb $0x0, (%r13,%r15)
movq (%rsp), %rdx
movq 0x20(%rsp), %rdi
movq 0x98(%rsp), %r9
movl 0x70(%rsp), %esi
incl %esi
incq %rbp
cmpq 0x78(%rsp), %rbp
jae 0x7525a
incq %r14
movq %r14, %r12
cmpq %rbx, %r14
jb 0x750b6
movq %rdx, %r8
jmp 0x75267
movq %r9, %r11
movq 0x20(%rsp), %rdi
movq 0x40(%rsp), %r10
cmpl %r10d, %ebp
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rcx
jne 0x75e77
movl %r11d, %ebx
subl %r9d, %ebx
movq %r11, %r9
cmpl %ebx, %edi
jle 0x74df4
movq %r8, %r10
leaq 0x2(%r9), %rax
cmpq %rax, %r10
jae 0x752da
movq %r10, %r15
movq %rax, %rcx
shrq %rcx
movabsq $0x3fffffffffffffff, %rdx # imm = 0x3FFFFFFFFFFFFFFF
cmpq %rdx, %rax
movl $0x0, %r14d
cmovbeq %rcx, %r14
addq %rax, %r14
movq %r13, %rdi
movq %r14, %rsi
movq %r9, %r12
callq 0x162c0
movq %r12, %r9
testq %rax, %rax
jne 0x752e0
movq %r15, %r10
jmp 0x752f0
movq %r10, %r14
movq %r13, %rax
movw $0x0, (%rax,%r9)
incq %r9
movq %r14, %r10
movq %rax, %r13
movq 0x20(%rsp), %rax
incl %ebx
cmpl %eax, %ebx
jl 0x75293
jmp 0x74df7
movq 0x58(%rsp), %rcx
movq 0x10(%rcx), %rax
movslq 0x8(%rcx), %rcx
movq 0x60(%rsp), %rdx
cmpl $0x1, %edx
adcl $0x0, %edx
xorl %edi, %edi
cmpw (%rax), %di
jno 0x75388
addq %rcx, %rax
decq %rdx
jne 0x75318
jmp 0x7537e
movq 0x58(%rsp), %rcx
movq 0x10(%rcx), %rax
movslq 0x8(%rcx), %rcx
movq 0x7d9bb(%rip), %rdx     # 0xf2cf8
movl (%rdx), %edx
movq 0x60(%rsp), %rdi
cmpl $0x1, %edi
adcl $0x0, %edi
cmpl (%rax), %edx
jne 0x75388
addq %rcx, %rax
decq %rdi
jne 0x7534a
jmp 0x7537e
movq 0x58(%rsp), %rcx
movq 0x10(%rcx), %rax
movslq 0x8(%rcx), %rcx
movq 0x60(%rsp), %rdx
cmpl $0x1, %edx
adcl $0x0, %edx
xorl %edi, %edi
cmpl (%rax), %edi
jno 0x75388
addq %rcx, %rax
decq %rdx
jne 0x75370
movq 0x8(%rsp), %rbx
jmp 0x759c9
movq 0x90(%rsp), %rax
cmpl $0x2, %eax
je 0x753cb
cmpl $0x4, %eax
movq 0x20(%rsp), %rdi
je 0x753b2
cmpl $0x3, %eax
jne 0x754ce
cmpl 0x40(%rsp), %edi
jne 0x754ce
cmpl 0x40(%rsp), %edi
jne 0x761d8
xorl %eax, %eax
movq 0xf8(%rsp), %rcx
movl %ecx, %r8d
jmp 0x753ea
movl $0x1, %eax
movl 0xe0(%rsp), %r8d
movq 0x20(%rsp), %rdi
cmpl 0xa8(%rsp), %edi
jne 0x760cb
cmpl $0x1, %ebx
je 0x756f1
cmpl $0x2, %ebx
jne 0x75988
movabsq $0x10000000000, %rcx    # imm = 0x10000000000
cmpq %rcx, %rsi
jb 0x75988
movl %edi, %ecx
movl %r8d, (%rsp)
movslq %r8d, %r8
xorl %esi, %esi
testl %edi, %edi
jle 0x754af
movq %rsi, %rdi
imulq %rcx, %rdi
movq %rsi, %r10
imulq %r8, %r10
movq 0x30(%rsp), %r11
leaq (%r11,%rdi,4), %r9
leaq (%r11,%r10,4), %rdi
movq 0x7d95c(%rip), %rdx     # 0xf2da0
movl (%rdx), %r11d
xorl %r14d, %r14d
xorl %r10d, %r10d
movl (%r9,%r14,4), %ebp
cmpl %ebp, %r11d
je 0x75494
leaq (%rax,%r14), %r15
movq %r15, %r12
shrq $0x6, %r12
movq 0x28(%rsp), %rdx
movq 0x10(%rdx,%r12,8), %r12
btq %r15, %r12
jb 0x75485
movslq %r10d, %r10
movl %ebp, (%rdi,%r10,4)
incl %r10d
movq 0x7d91e(%rip), %rdx     # 0xf2da0
movl (%rdx), %r11d
movq 0x50(%rsp), %r12
incq %r14
cmpq %rcx, %r14
jb 0x7544d
jmp 0x754af
testl %r10d, %r10d
je 0x754a2
movslq %r10d, %r9
movl %r11d, (%rdi,%r9,4)
jmp 0x754af
movq 0x7d84f(%rip), %rdx     # 0xf2cf8
movl (%rdx), %r9d
movl %r9d, (%rdi)
incq %rsi
movq 0x18(%r12), %rdi
shrq $0x28, %rdi
cmpq %rdi, %rsi
movq 0x20(%rsp), %rdi
jb 0x7541a
jmp 0x757a1
cmpl 0x88(%rsp), %edi
jne 0x76227
cmpl $0x1, %ebx
movq %r13, (%rsp)
je 0x757af
movl 0x3c(%rsp), %r8d
cmpl $0x2, %ebx
jne 0x75988
movl 0x3c(%rsp), %r8d
movabsq $0x10000000000, %rax    # imm = 0x10000000000
cmpq %rax, %rsi
jb 0x75988
movl $0x4, %eax
xorl %edx, %edx
xorl %esi, %esi
movq 0xa0(%rsp), %r11
xorl %ecx, %ecx
movq 0x30(%rsp), %rdi
cmpl $0x2, 0xe4(%rsp)
jb 0x75551
movq 0x7d869(%rip), %rcx     # 0xf2da0
movl (%rcx), %r8d
leaq (%rdi,%rdx), %r9
xorl %ecx, %ecx
cmpl (%r9,%rcx,4), %r8d
je 0x75551
incq %rcx
cmpq %rcx, %r11
jne 0x75540
movl %r11d, %ecx
movq %rsi, %r8
imulq 0x108(%rsp), %r8
leaq (%rdi,%r8,4), %r8
cmpl 0x40(%rsp), %ecx
jne 0x7557f
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jae 0x7564e
xorl %ecx, %ecx
xorl %r9d, %r9d
jmp 0x75692
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jb 0x756c9
addq %rax, %rdi
xorl %r9d, %r9d
movl $0xffffffff, %r15d      # imm = 0xFFFFFFFF
xorl %ecx, %ecx
movq %rdi, 0x70(%rsp)
testl %ecx, %ecx
js 0x75640
movl %ecx, %r11d
shrl $0x6, %r11d
movq %rdi, %r10
movl $0x1, %r14d
shlq %cl, %r14
movl %r15d, 0x20(%rsp)
movslq %r15d, %r15
incl %ecx
movq 0x7d7d4(%rip), %rdi     # 0xf2da0
movl (%rdi), %ebp
leaq (%r10,%r15,4), %r12
xorl %r10d, %r10d
movl (%r12,%r10,4), %r13d
cmpl %r13d, %ebp
je 0x756ac
movq 0x28(%rsp), %rdi
testq %r14, 0x10(%rdi,%r11,8)
jne 0x75613
movq %r10, %r15
shrq $0x6, %r15
movq 0x10(%rdi,%r15,8), %r15
btq %r10, %r15
jb 0x75613
movslq %r9d, %r9
movl %r13d, (%r8,%r9,4)
incl %r9d
movq 0x7d78f(%rip), %rdi     # 0xf2da0
movl (%rdi), %ebp
incq %r10
cmpq %r10, %rcx
jne 0x755d5
movl 0x20(%rsp), %r15d
addl %r10d, %r15d
movq (%rsp), %r13
movq 0x50(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0xa0(%rsp), %r11
movq 0x70(%rsp), %rdi
jmp 0x75642
incl %ecx
cmpl 0x40(%rsp), %ecx
jl 0x755a0
jmp 0x756c9
leaq (%rdi,%rdx), %rcx
xorl %r9d, %r9d
xorl %r10d, %r10d
movq %r9, %r11
shrq $0x6, %r11
movq 0x10(%rbp,%r11,8), %r11
btq %r9, %r11
jb 0x75678
movslq %r10d, %r10
movl (%rcx,%r9,4), %r11d
movl %r11d, (%r8,%r10,4)
incl %r10d
incq %r9
cmpq %r9, 0x78(%rsp)
jne 0x75658
movslq %r10d, %rcx
movq 0x78(%rsp), %r9
movq 0xa0(%rsp), %r11
movq %rsi, %r10
imulq 0xf0(%rsp), %r10
leaq (%rdi,%r10,4), %rdi
movl (%rdi,%r9,4), %edi
movl %edi, (%r8,%rcx,4)
jmp 0x756c9
movslq %r9d, %rcx
movl %ebp, (%r8,%rcx,4)
movq (%rsp), %r13
movq 0x50(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0xa0(%rsp), %r11
incq %rsi
movq 0x18(%r12), %rcx
shrq $0x28, %rcx
movq 0x100(%rsp), %rdi
addq %rdi, %rdx
addq %rdi, %rax
cmpq %rcx, %rsi
jb 0x7551f
jmp 0x75983
movabsq $0x10000000000, %rcx    # imm = 0x10000000000
cmpq %rcx, %rsi
jb 0x75988
movl %edi, %ecx
movl %r8d, (%rsp)
movslq %r8d, %rdx
xorl %esi, %esi
testl %edi, %edi
jle 0x75787
movq %rsi, %rdi
imulq %rcx, %rdi
movq %rsi, %r9
imulq %rdx, %r9
movq 0x30(%rsp), %r11
leaq (%r11,%rdi,4), %r10
leaq (%r11,%r9,4), %rdi
xorl %r11d, %r11d
xorl %r9d, %r9d
movl (%r10,%r11,4), %ebp
cmpl $0x80000001, %ebp       # imm = 0x80000001
je 0x7576f
leaq (%rax,%r11), %r14
movq %r14, %r15
shrq $0x6, %r15
movq 0x28(%rsp), %r8
movq 0x10(%r8,%r15,8), %r15
btq %r14, %r15
jb 0x75765
movslq %r9d, %r9
movl %ebp, (%rdi,%r9,4)
incl %r9d
incq %r11
cmpq %rcx, %r11
jb 0x75734
jmp 0x75787
testl %r9d, %r9d
je 0x75781
movslq %r9d, %r9
movl $0x80000001, (%rdi,%r9,4) # imm = 0x80000001
jmp 0x75787
movl $0x80000000, (%rdi)     # imm = 0x80000000
incq %rsi
movq 0x18(%r12), %rdi
shrq $0x28, %rdi
cmpq %rdi, %rsi
movq 0x20(%rsp), %rdi
jb 0x7570f
movq 0x28(%rsp), %rbp
movl (%rsp), %r8d
jmp 0x75988
movl 0x3c(%rsp), %r8d
movabsq $0x10000000000, %rax    # imm = 0x10000000000
cmpq %rax, %rsi
jb 0x75988
movl $0x4, %eax
xorl %edx, %edx
xorl %esi, %esi
movq 0xa0(%rsp), %r11
xorl %ecx, %ecx
movq 0x30(%rsp), %rdi
cmpl $0x2, 0xe4(%rsp)
jb 0x75804
leaq (%rdi,%rdx), %r8
xorl %ecx, %ecx
cmpl $0x80000001, (%r8,%rcx,4) # imm = 0x80000001
je 0x75804
incq %rcx
cmpq %rcx, %r11
jne 0x757ef
movl %r11d, %ecx
movq %rsi, %r8
imulq 0x108(%rsp), %r8
leaq (%rdi,%r8,4), %r8
cmpl 0x40(%rsp), %ecx
jne 0x75832
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jae 0x758e5
xorl %ecx, %ecx
xorl %r9d, %r9d
jmp 0x75929
cmpl $0x10000, 0x4c(%rsp)    # imm = 0x10000
jb 0x75960
addq %rax, %rdi
xorl %r9d, %r9d
movl $0xffffffff, %r10d      # imm = 0xFFFFFFFF
xorl %ecx, %ecx
testl %ecx, %ecx
js 0x758d7
movl %ecx, %r11d
shrl $0x6, %r11d
movl $0x1, %r14d
shlq %cl, %r14
movl %r10d, 0x20(%rsp)
movslq %r10d, %r15
incl %ecx
leaq (%rdi,%r15,4), %r12
xorl %r15d, %r15d
movl (%r12,%r15,4), %ebp
cmpl $0x80000001, %ebp       # imm = 0x80000001
je 0x75943
movq 0x28(%rsp), %r10
testq %r14, 0x10(%r10,%r11,8)
jne 0x758b3
movq %r15, %r13
shrq $0x6, %r13
movq 0x10(%r10,%r13,8), %r13
btq %r15, %r13
jb 0x758af
movslq %r9d, %r9
movl %ebp, (%r8,%r9,4)
incl %r9d
movq (%rsp), %r13
incq %r15
cmpq %r15, %rcx
jne 0x75877
movl 0x20(%rsp), %r10d
addl %r15d, %r10d
movq 0x50(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0xa0(%rsp), %r11
jmp 0x758d9
incl %ecx
cmpl 0x40(%rsp), %ecx
jl 0x7584e
jmp 0x75960
leaq (%rdi,%rdx), %rcx
xorl %r9d, %r9d
xorl %r10d, %r10d
movq %r9, %r11
shrq $0x6, %r11
movq 0x10(%rbp,%r11,8), %r11
btq %r9, %r11
jb 0x7590f
movslq %r10d, %r10
movl (%rcx,%r9,4), %r11d
movl %r11d, (%r8,%r10,4)
incl %r10d
incq %r9
cmpq %r9, 0x78(%rsp)
jne 0x758ef
movslq %r10d, %rcx
movq 0x78(%rsp), %r9
movq 0xa0(%rsp), %r11
movq %rsi, %r10
imulq 0xf0(%rsp), %r10
leaq (%rdi,%r10,4), %rdi
movl (%rdi,%r9,4), %edi
movl %edi, (%r8,%rcx,4)
jmp 0x75960
movslq %r9d, %rcx
movl $0x80000001, (%r8,%rcx,4) # imm = 0x80000001
movq 0x50(%rsp), %r12
movq 0x28(%rsp), %rbp
movq 0xa0(%rsp), %r11
incq %rsi
movq 0x18(%r12), %rcx
shrq $0x28, %rcx
movq 0x100(%rsp), %rdi
addq %rdi, %rdx
addq %rdi, %rax
cmpq %rcx, %rsi
jb 0x757d8
movl 0x3c(%rsp), %r8d
imull 0x60(%rsp), %r8d
movq 0x8(%rsp), %rdi
movq 0x10(%rdi), %rax
movq 0x58(%rsp), %r14
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rdx
movq 0x30(%rsp), %rcx
movq %r12, %rsi
movl %ebx, %r9d
callq 0x14560
testl %eax, %eax
js 0x75ddc
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r10
movq 0xb0(%rsp), %rsi
incq %rsi
movzbl 0x1c(%r12), %eax
cmpq %rax, %rsi
jb 0x7485d
xorl %ebx, %ebx
jmp 0x75f86
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x75a25
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75a25
cmpl %eax, 0x4(%rdx)
jle 0x75a25
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75a27
xorl %eax, %eax
testq %rax, %rax
leaq 0x5ce1d(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
cmpl $0x2, 0x90(%rsp)
movl $0x41, %eax
movl $0x52, %r10d
cmovel %eax, %r10d
subq $0x8, %rsp
leaq 0x5d6d1(%rip), %rsi     # 0xd312f
leaq 0x5d966(%rip), %rdx     # 0xd33cb
movl $0x1, %edi
xorl %eax, %eax
pushq %rbp
pushq 0xf8(%rsp)
pushq %r10
jmp 0x75f78
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rsi
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rsi,%rcx), %rcx
movslq 0x10(%r12), %rsi
testq %rsi, %rsi
js 0x75b92
cmpl %esi, 0x4(%rdx)
jle 0x75b92
movq %rax, %r10
movq 0x18(%rdx), %rdx
shlq $0x4, %rsi
movq (%rdx,%rsi), %rax
jmp 0x75b97
movl %eax, %edx
movq %rcx, %rbx
cmpl %r10d, %esi
jb 0x75b2c
xorl %edi, %edi
movl (%rbx,%rdi,4), %r8d
cmpl $0x2, %r8d
jb 0x75b1f
cmpl $0x80000001, %r8d       # imm = 0x80000001
je 0x75b27
movl %r8d, %r14d
sarl %r14d
leal -0x1(%r14), %r9d
movslq %r9d, %r9
cmpl 0x40(%rsp), %r14d
jg 0x75b44
movq 0xd8(%rsp), %r15
movl (%r15,%r9,4), %r15d
testl %r15d, %r15d
js 0x75b44
leal 0x2(%r15,%r15), %r9d
cmovnel %r9d, %r15d
cmpl $0x2, %r14d
cmovll %r9d, %r15d
andl $0x1, %r8d
orl %r15d, %r8d
movl %r8d, (%rbx,%rdi,4)
incq %rdi
cmpq %rdx, %rdi
jb 0x75acb
movq 0x18(%r12), %rdi
leaq (%rbx,%rdx,4), %rbx
incl %r11d
movq %rdi, %r8
shrq $0x28, %r8
cmpl %r8d, %r11d
jb 0x75ac4
jmp 0x7478f
testq %r12, %r12
je 0x75d0d
movslq 0x10(%r12), %rax
testq %rax, %rax
sets %cl
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
sete %dl
orb %cl, %dl
movq 0x40(%rsp), %r11
jne 0x75d09
cmpl %eax, 0x4(%rsi)
jle 0x75d09
movq 0x18(%rsi), %rcx
shlq $0x4, %rax
movq (%rcx,%rax), %rax
jmp 0x75d14
xorl %eax, %eax
movq (%rsp), %r13
jmp 0x75bc5
movq %rax, %r10
xorl %eax, %eax
testq %rax, %rax
leaq 0x5ccad(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
subq $0x8, %rsp
leaq 0x5d578(%rip), %rsi     # 0xd312f
leaq 0x5d7e3(%rip), %rdx     # 0xd33a1
jmp 0x75e60
xorl %eax, %eax
testq %rax, %rax
leaq 0x5cc7f(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
subq $0x8, %rsp
leaq 0x5d54a(%rip), %rsi     # 0xd312f
leaq 0x5d587(%rip), %rdx     # 0xd3173
jmp 0x75e60
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movq 0x50(%rsp), %rsi
testq %rsi, %rsi
je 0x75f37
movslq 0x10(%rsi), %rax
testq %rax, %rax
movq 0x40(%rsp), %r11
movq 0x88(%rsp), %rbx
js 0x75f02
cmpl %eax, 0x4(%rdx)
jle 0x75f02
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75f46
movl %eax, %r10d
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x75cb1
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75cb1
cmpl %eax, 0x4(%rdx)
jle 0x75cb1
movq 0x18(%rdx), %rdx
jmp 0x75ca7
movl %eax, %r10d
movq 0x10(%rbx), %rax
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x75cb1
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75cb1
cmpl %eax, 0x4(%rbx)
jle 0x75cb1
movq 0x18(%rbx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75cb3
xorl %eax, %eax
testq %rax, %rax
leaq 0x5cb91(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
subq $0x8, %rsp
leaq 0x5d45c(%rip), %rsi     # 0xd312f
leaq 0x5d56c(%rip), %rdx     # 0xd3246
jmp 0x75e60
movslq 0x10(%r12), %rcx
testq %rcx, %rcx
sets %dl
testq %rbx, %rbx
sete %sil
orb %dl, %sil
jne 0x75d58
cmpl %ecx, 0x4(%rbx)
jle 0x75d58
movq 0x18(%rbx), %rdx
shlq $0x4, %rcx
movq (%rdx,%rcx), %rdx
jmp 0x75d5a
xorl %eax, %eax
jmp 0x75d14
xorl %eax, %eax
movq 0x40(%rsp), %r11
testq %rax, %rax
leaq 0x5cb30(%rip), %rcx     # 0xd284e
cmovneq %rax, %rcx
movq (%r12), %r8
incq %r8
movq 0xd8(%rsp), %rax
movl (%rax,%r9,4), %r10d
leaq 0x5d3f3(%rip), %rsi     # 0xd312f
leaq 0x5d5d5(%rip), %rdx     # 0xd3318
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
pushq %r11
callq 0x157b0
jmp 0x75e6e
xorl %edx, %edx
testq %rdx, %rdx
leaq 0x5caea(%rip), %rcx     # 0xd284e
cmovneq %rdx, %rcx
movq (%r12), %r8
incq %r8
leaq 0x5d3b9(%rip), %rsi     # 0xd312f
leaq 0x5d5fa(%rip), %rdx     # 0xd3377
movl $0x1, %edi
movl %eax, %r9d
jmp 0x746b9
movq %rax, %r11
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x20(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x75eac
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75eac
movq 0x8(%rsp), %rdx
cmpl %eax, 0x4(%rdx)
jle 0x75eac
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75eae
movl %eax, %r10d
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movslq (%r14), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75e37
cmpl %eax, 0x4(%rdx)
jle 0x75e37
movq 0x18(%rdx), %rdx
jmp 0x75e2d
movl %eax, %r10d
movq 0x10(%rbx), %rax
movslq (%r15), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x75e37
cmpl %eax, 0x4(%rbx)
jle 0x75e37
movq 0x18(%rbx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75e39
xorl %eax, %eax
testq %rax, %rax
leaq 0x5ca0b(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
subq $0x8, %rsp
leaq 0x5d2d6(%rip), %rsi     # 0xd312f
leaq 0x5d692(%rip), %rdx     # 0xd34f2
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
callq 0x157b0
addq $0x10, %rsp
jmp 0x75f81
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %rsi, %rsi
je 0x75f06
movslq 0x10(%rsi), %rax
testq %rax, %rax
js 0x75f06
cmpl %eax, 0x4(%rdx)
jle 0x75f06
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x75f08
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c996(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
cmpl $0x2, %r13d
movl $0x41, %eax
movl $0x52, %r10d
cmovel %eax, %r10d
subq $0x8, %rsp
leaq 0x5d24e(%rip), %rsi     # 0xd312f
leaq 0x5d2b3(%rip), %rdx     # 0xd319b
movl $0x1, %edi
xorl %eax, %eax
pushq %rbx
pushq %r11
pushq %r10
callq 0x157b0
addq $0x20, %rsp
jmp 0x761ca
xorl %eax, %eax
jmp 0x75f46
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c93c(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%rsi), %r9
incq %r9
leaq 0x5d20c(%rip), %rsi     # 0xd312f
leaq 0x5d568(%rip), %rdx     # 0xd3492
movl $0x1, %edi
xorl %eax, %eax
pushq %rbp
jmp 0x75e67
xorl %eax, %eax
movq 0x40(%rsp), %r11
movq 0x88(%rsp), %rbx
testq %rax, %rax
leaq 0x5c8fe(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%rsi), %r9
incq %r9
subq $0x8, %rsp
leaq 0x5d1ca(%rip), %rsi     # 0xd312f
leaq 0x5d4b7(%rip), %rdx     # 0xd3423
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
pushq %r11
pushq %rbx
callq 0x157b0
addq $0x20, %rsp
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq %r13, %rdi
callq 0x14dd0
movq 0xd8(%rsp), %rdi
callq 0x14dd0
movq 0x30(%rsp), %rdi
callq 0x14dd0
movl %ebx, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r10
movq 0x10(%rbx), %rax
movq 0x20(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x7610a
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x7610a
cmpl %eax, 0x4(%rbx)
jle 0x7610a
movq 0x18(%rbx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x7610c
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movslq (%rdi), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
movq (%rsp), %r13
js 0x76279
cmpl %eax, 0x4(%rdx)
movq 0x40(%rsp), %r11
jle 0x7628e
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x76290
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x20(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x76144
cmpl %eax, 0x4(%rdx)
jle 0x76144
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x76146
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movslq (%rdi), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x76282
cmpl %eax, 0x4(%rdx)
movq 0x88(%rsp), %r11
jle 0x762b5
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x762b7
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x76174
movslq 0x10(%r12), %rax
testq %rax, %rax
js 0x76174
cmpl %eax, 0x4(%rdx)
jle 0x76174
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x76176
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c738(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5d007(%rip), %rsi     # 0xd312f
leaq 0x5d0c2(%rip), %rdx     # 0xd31f1
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
pushq 0x90(%rsp)
jmp 0x75e69
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c6fe(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5cfcd(%rip), %rsi     # 0xd312f
leaq 0x5d105(%rip), %rdx     # 0xd326e
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
jmp 0x761a4
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c6ce(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5cf9d(%rip), %rsi     # 0xd312f
leaq 0x5d383(%rip), %rdx     # 0xd351c
movl $0x1, %edi
xorl %eax, %eax
pushq 0x20(%rsp)
pushq 0xb0(%rsp)
jmp 0x75e69
leaq 0x5cf78(%rip), %rsi     # 0xd312f
leaq 0x5b9cb(%rip), %rdx     # 0xd1b89
movl $0x1, %edi
xorl %eax, %eax
callq 0x157b0
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq (%rsp), %r13
jmp 0x75f86
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x762f2
movslq 0x10(%r12), %rax
testq %rax, %rax
movq 0x40(%rsp), %r10
js 0x762ea
cmpl %eax, 0x4(%rdx)
jle 0x762ea
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x762f9
movq 0x8(%rsp), %rdx
movq 0x10(%rdx), %rax
movq 0x58(%rsp), %rcx
movslq (%rcx), %rcx
shlq $0x4, %rcx
movq (%rax,%rcx), %rcx
testq %r12, %r12
je 0x7631e
movslq 0x10(%r12), %rax
testq %rax, %rax
movq 0x88(%rsp), %r10
js 0x762ee
cmpl %eax, 0x4(%rdx)
jle 0x762ee
movq 0x18(%rdx), %rdx
shlq $0x4, %rax
movq (%rdx,%rax), %rax
jmp 0x76328
xorl %eax, %eax
movq 0x40(%rsp), %r11
jmp 0x76290
xorl %eax, %eax
movq 0x88(%rsp), %r11
jmp 0x762b7
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c5b4(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5ce83(%rip), %rsi     # 0xd312f
leaq 0x5d010(%rip), %rdx     # 0xd32c3
jmp 0x762da
xorl %eax, %eax
testq %rax, %rax
leaq 0x5c58d(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5ce5c(%rip), %rsi     # 0xd312f
leaq 0x5cf17(%rip), %rdx     # 0xd31f1
movl $0x1, %edi
xorl %eax, %eax
pushq %r10
pushq %r11
jmp 0x75e69
xorl %eax, %eax
jmp 0x762f9
xorl %eax, %eax
jmp 0x76328
xorl %eax, %eax
movq 0x40(%rsp), %r10
testq %rax, %rax
leaq 0x5c54b(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5ce1a(%rip), %rsi     # 0xd312f
leaq 0x5d257(%rip), %rdx     # 0xd3573
jmp 0x7634b
xorl %eax, %eax
movq 0x88(%rsp), %r10
testq %rax, %rax
leaq 0x5c51c(%rip), %r8      # 0xd284e
cmovneq %rax, %r8
movq (%r12), %r9
incq %r9
leaq 0x5cdeb(%rip), %rsi     # 0xd312f
leaq 0x5d27f(%rip), %rdx     # 0xd35ca
movl $0x1, %edi
xorl %eax, %eax
pushq 0x20(%rsp)
jmp 0x75e67
leaq 0x5cdcd(%rip), %rsi     # 0xd312f
leaq 0x5b820(%rip), %rdx     # 0xd1b89
movl $0x1, %edi
xorl %eax, %eax
callq 0x157b0
jmp 0x75f81