// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/vcf.c
// Function: bcf1_sync
static int bcf1_sync(bcf1_t *line)
{
    char *shared_ori = line->shared.s;
    size_t prev_len;

    kstring_t tmp = {0,0,0};
    if ( !line->shared.l )
    {
        // New line created via API, BCF data blocks do not exist. Get it ready for BCF output
        tmp = line->shared;
        bcf1_sync_id(line, &tmp);
        line->unpack_size[0] = tmp.l; prev_len = tmp.l;

        bcf1_sync_alleles(line, &tmp);
        line->unpack_size[1] = tmp.l - prev_len; prev_len = tmp.l;

        bcf1_sync_filter(line, &tmp);
        line->unpack_size[2] = tmp.l - prev_len;

        bcf1_sync_info(line, &tmp);
        line->shared = tmp;
    }
    else if ( line->d.shared_dirty )
    {
        // The line was edited, update the BCF data block.

        if ( !(line->unpacked & BCF_UN_STR) ) bcf_unpack(line,BCF_UN_STR);

        // ptr_ori points to the original unchanged BCF data.
        uint8_t *ptr_ori = (uint8_t *) line->shared.s;

        // ID: single typed string
        if ( line->d.shared_dirty & BCF1_DIRTY_ID )
            bcf1_sync_id(line, &tmp);
        else
            kputsn_(ptr_ori, line->unpack_size[0], &tmp);
        ptr_ori += line->unpack_size[0];
        line->unpack_size[0] = tmp.l; prev_len = tmp.l;

        // REF+ALT: list of typed strings
        if ( line->d.shared_dirty & BCF1_DIRTY_ALS )
            bcf1_sync_alleles(line, &tmp);
        else
        {
            kputsn_(ptr_ori, line->unpack_size[1], &tmp);
            if ( !line->rlen && line->n_allele ) line->rlen = strlen(line->d.allele[0]);
        }
        ptr_ori += line->unpack_size[1];
        line->unpack_size[1] = tmp.l - prev_len; prev_len = tmp.l;

        if ( line->unpacked & BCF_UN_FLT )
        {
            // FILTER: typed vector of integers
            if ( line->d.shared_dirty & BCF1_DIRTY_FLT )
                bcf1_sync_filter(line, &tmp);
            else if ( line->d.n_flt )
                kputsn_(ptr_ori, line->unpack_size[2], &tmp);
            else
                bcf_enc_vint(&tmp, 0, 0, -1);
            ptr_ori += line->unpack_size[2];
            line->unpack_size[2] = tmp.l - prev_len;

            if ( line->unpacked & BCF_UN_INFO )
            {
                // INFO: pairs of typed vectors
                if ( line->d.shared_dirty & BCF1_DIRTY_INF )
                {
                    bcf1_sync_info(line, &tmp);
                    ptr_ori = (uint8_t*)line->shared.s + line->shared.l;
                }
            }
        }

        int size = line->shared.l - (size_t)ptr_ori + (size_t)line->shared.s;
        if ( size ) kputsn_(ptr_ori, size, &tmp);

        free(line->shared.s);
        line->shared = tmp;
    }
    if ( line->shared.s != shared_ori && line->unpacked & BCF_UN_INFO )
    {
        // Reallocated line->shared.s block invalidated line->d.info[].vptr pointers
        size_t off_new = line->unpack_size[0] + line->unpack_size[1] + line->unpack_size[2];
        int i;
        for (i=0; i<line->n_info; i++)
        {
            uint8_t *vptr_free = line->d.info[i].vptr_free ? line->d.info[i].vptr - line->d.info[i].vptr_off : NULL;
            line->d.info[i].vptr = (uint8_t*) line->shared.s + off_new + line->d.info[i].vptr_off;
            off_new += line->d.info[i].vptr_len + line->d.info[i].vptr_off;
            if ( vptr_free )
            {
                free(vptr_free);
                line->d.info[i].vptr_free = 0;
            }
        }
    }

    if ( line->n_sample && line->n_fmt && (!line->indiv.l || line->d.indiv_dirty) )
    {
        // The genotype fields changed or are not present
        tmp.l = tmp.m = 0; tmp.s = NULL;
        int i, irm = -1;
        for (i=0; i<line->n_fmt; i++)
        {
            bcf_fmt_t *fmt = &line->d.fmt[i];
            if ( !fmt->p )
            {
                // marked for removal
                if ( irm < 0 ) irm = i;
                continue;
            }
            kputsn_(fmt->p - fmt->p_off, fmt->p_len + fmt->p_off, &tmp);
            if ( irm >=0 )
            {
                bcf_fmt_t tfmt = line->d.fmt[irm]; line->d.fmt[irm] = line->d.fmt[i]; line->d.fmt[i] = tfmt;
                while ( irm<=i && line->d.fmt[irm].p ) irm++;
            }

        }
        if ( irm>=0 ) line->n_fmt = irm;
        free(line->indiv.s);
        line->indiv = tmp;

        // Reallocated line->indiv.s block invalidated line->d.fmt[].p pointers
        size_t off_new = 0;
        for (i=0; i<line->n_fmt; i++)
        {
            uint8_t *p_free = line->d.fmt[i].p_free ? line->d.fmt[i].p - line->d.fmt[i].p_off : NULL;
            line->d.fmt[i].p = (uint8_t*) line->indiv.s + off_new + line->d.fmt[i].p_off;
            off_new += line->d.fmt[i].p_len + line->d.fmt[i].p_off;
            if ( p_free )
            {
                free(p_free);
                line->d.fmt[i].p_free = 0;
            }
        }
    }
    if ( !line->n_sample ) line->n_fmt = 0;
    line->d.shared_dirty = line->d.indiv_dirty = 0;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
movl $0x18, %edx
callq 0x4240
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x427f3
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq %rcx, -0x30(%rbp)
movq 0x28(%rax), %rcx
movq %rcx, -0x28(%rbp)
movq 0x30(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x521c0
movq -0x30(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc0(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52240
movq -0x30(%rbp), %rax
subq -0x18(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc4(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52320
movq -0x30(%rbp), %rax
subq -0x18(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc8(%rax)
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52380
movq -0x8(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x42a8d
movq -0x8(%rbp), %rax
cmpl $0x0, 0xb0(%rax)
je 0x42a8b
movq -0x8(%rbp), %rax
movl 0xbc(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x42824
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x48110
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movl 0xb0(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x42851
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x521c0
jmp 0x42869
movq -0x38(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0xc0(%rax), %rsi
leaq -0x30(%rbp), %rdx
callq 0x52570
movq -0x8(%rbp), %rax
movl 0xc0(%rax), %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc0(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0xb0(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x428ba
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52240
jmp 0x42914
movq -0x38(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0xc4(%rax), %rsi
leaq -0x30(%rbp), %rdx
callq 0x52570
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x42912
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x10, %rax
andq $0xffff, %rax           # imm = 0xFFFF
cmpl $0x0, %eax
je 0x42912
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rax
movq (%rax), %rdi
callq 0x41a0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x42914
movq -0x8(%rbp), %rax
movl 0xc4(%rax), %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
subq -0x18(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc4(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0xbc(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x42a2e
movq -0x8(%rbp), %rax
movl 0xb0(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x4297f
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52320
jmp 0x429b9
movq -0x8(%rbp), %rax
cmpl $0x0, 0x68(%rax)
je 0x429a3
movq -0x38(%rbp), %rdi
movq -0x8(%rbp), %rax
movslq 0xc8(%rax), %rsi
leaq -0x30(%rbp), %rdx
callq 0x52570
jmp 0x429b7
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
xorl %eax, %eax
movl %eax, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x442f0
jmp 0x429b9
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
subq -0x18(%rbp), %rax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xc8(%rax)
movq -0x8(%rbp), %rax
movl 0xbc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x42a2c
movq -0x8(%rbp), %rax
movl 0xb0(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x42a2a
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x52380
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x8(%rbp), %rcx
addq 0x20(%rcx), %rax
movq %rax, -0x38(%rbp)
jmp 0x42a2c
jmp 0x42a2e
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movq -0x8(%rbp), %rcx
movq 0x30(%rcx), %rcx
addq %rcx, %rax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
je 0x42a62
movq -0x38(%rbp), %rdi
movslq -0x3c(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x52570
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x45a0
movq -0x8(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, 0x20(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x28(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x30(%rax)
jmp 0x42a8d
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
cmpq -0x10(%rbp), %rax
je 0x42c52
movq -0x8(%rbp), %rax
movl 0xbc(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x42c52
movq -0x8(%rbp), %rax
movl 0xc0(%rax), %eax
movq -0x8(%rbp), %rcx
addl 0xc4(%rcx), %eax
movq -0x8(%rbp), %rcx
addl 0xc8(%rcx), %eax
cltq
movq %rax, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
andq $0xffff, %rcx           # imm = 0xFFFF
cmpl %ecx, %eax
jge 0x42c50
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x42b68
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x4c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl 0x1c(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movslq %ecx, %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
jmp 0x42b73
xorl %eax, %eax
movq %rax, -0xa0(%rbp)
jmp 0x42b73
movq -0xa0(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
addq -0x48(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl 0x1c(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
cltq
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x90(%rcx), %rcx
movslq -0x4c(%rbp), %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl 0x1c(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
addl %ecx, %eax
movl %eax, %eax
addq -0x48(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x42c40
movq -0x58(%rbp), %rdi
callq 0x45a0
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rax
movslq -0x4c(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0x1c(%rax)
jmp 0x42c42
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x42ae0
jmp 0x42c52
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x28, %rax
cmpl $0x0, %eax
je 0x43072
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x20, %rax
andq $0xff, %rax
cmpl $0x0, %eax
je 0x43072
movq -0x8(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x42c9e
movq -0x8(%rbp), %rax
cmpl $0x0, 0xb4(%rax)
je 0x43072
movq $0x0, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x20(%rbp)
movl $0xffffffff, -0x60(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x20, %rcx
andq $0xff, %rcx
cmpl %ecx, %eax
jge 0x42e7b
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x42d18
cmpl $0x0, -0x60(%rbp)
jge 0x42d13
movl -0x5c(%rbp), %eax
movl %eax, -0x60(%rbp)
jmp 0x42e6d
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x68(%rbp), %rax
movl 0x1c(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movslq %eax, %rcx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rdi
movq -0x68(%rbp), %rax
movl 0x18(%rax), %eax
movq -0x68(%rbp), %rcx
movl 0x1c(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
addl %ecx, %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdx
callq 0x52570
cmpl $0x0, -0x60(%rbp)
jl 0x42e6b
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x60(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, -0x88(%rbp)
movq 0x8(%rax), %rcx
movq %rcx, -0x80(%rbp)
movq 0x10(%rax), %rcx
movq %rcx, -0x78(%rbp)
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x60(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movq 0x98(%rcx), %rcx
movslq -0x5c(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq -0x88(%rbp), %rcx
movq %rcx, (%rax)
movq -0x80(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x78(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x70(%rbp), %rcx
movq %rcx, 0x18(%rax)
movl -0x60(%rbp), %ecx
xorl %eax, %eax
cmpl -0x5c(%rbp), %ecx
movb %al, -0xa1(%rbp)
jg 0x42e52
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x60(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, 0x10(%rax)
setne %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
testb $0x1, %al
jne 0x42e5e
jmp 0x42e69
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x42e1e
jmp 0x42e6b
jmp 0x42e6d
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x42cc4
cmpl $0x0, -0x60(%rbp)
jl 0x42eaf
movl -0x60(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, %ecx
movl %ecx, %edx
movq 0x18(%rax), %rcx
andq $0xff, %rdx
shlq $0x20, %rdx
movabsq $-0xff00000001, %rsi    # imm = 0xFFFFFF00FFFFFFFF
andq %rsi, %rcx
orq %rdx, %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rdi
callq 0x45a0
movq -0x8(%rbp), %rax
movq -0x30(%rbp), %rcx
movq %rcx, 0x38(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x40(%rax)
movq -0x20(%rbp), %rcx
movq %rcx, 0x48(%rax)
movq $0x0, -0x90(%rbp)
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
shrq $0x20, %rcx
andq $0xff, %rcx
cmpl %ecx, %eax
jge 0x43070
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x42f76
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x98(%rcx), %rcx
movslq -0x5c(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
movl 0x1c(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movslq %ecx, %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
jmp 0x42f81
xorl %eax, %eax
movq %rax, -0xb0(%rbp)
jmp 0x42f81
movq -0xb0(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rcx
addq -0x90(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movl 0x1c(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
cltq
addq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movq -0x8(%rbp), %rcx
movq 0x98(%rcx), %rcx
movslq -0x5c(%rbp), %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
movl 0x1c(%rcx), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
addl %ecx, %eax
movl %eax, %eax
addq -0x90(%rbp), %rax
movq %rax, -0x90(%rbp)
cmpq $0x0, -0x98(%rbp)
je 0x43060
movq -0x98(%rbp), %rdi
callq 0x45a0
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rax
movslq -0x5c(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x1c(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0x1c(%rax)
jmp 0x43062
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x42eea
jmp 0x43072
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x28, %rax
cmpl $0x0, %eax
jne 0x4309d
movq -0x8(%rbp), %rax
movabsq $-0xff00000001, %rcx    # imm = 0xFFFFFF00FFFFFFFF
andq 0x18(%rax), %rcx
orq $0x0, %rcx
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0xb4(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0xb0(%rax)
xorl %eax, %eax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)