// File: chhylp123[P]hifiasm/hic.cpp
// Function: update_bubble_graph(kvec_t_u32_warp*, unsigned int, unsigned int, unsigned int, unsigned int, bubble_type*, kvec_asg_arc_t_warp*, asg_t*, asg_arc_t*, unsigned char*, ma_ug_t*, unsigned long*, unsigned long)
void update_bubble_graph(kvec_t_u32_warp* broken, uint32_t beg, uint32_t beg_bub_id, 
uint32_t sink, uint32_t sink_bub_id, bubble_type* bub, kvec_asg_arc_t_warp* edges, asg_t *bsg, 
asg_arc_t *p_t, uint8_t *bsg_idx, ma_ug_t *unitig_ug, uint64_t* occ_thres, uint64_t is_b_bub)
{
    uint32_t i, pre, n, bub_id, v;
    uint64_t occ;
    asg_arc_t t_f, t_r;
    
    radix_sort_u32(broken->a.a, broken->a.a + broken->a.n);
    for (i = n = occ = 0, pre = (uint32_t)-1; i < broken->a.n; i++)
    {
        if((broken->a.a[i]>>1) == (pre>>1)) continue;
        if(IF_HOM((broken->a.a[i]>>1), *bub))
        {
            if(is_local_simple_circle(unitig_ug->g, broken->a.a[i]))
            {
                bub->index[broken->a.a[i]>>1] = bub->f_bub+1;
            }
            else
            {
                continue;
            }
        }
         
        pre = broken->a.a[i];
        broken->a.a[n] = pre;
        occ += unitig_ug->u.a[broken->a.a[n]>>1].n;
        n++;
    }
    broken->a.n = n;
    ///if(broken->a.n == 0) return;
    if(broken->a.n == 1)
    {
        ///fprintf(stderr, "+++++sb+++++utg%.6ul\n", (broken->a.a[0]>>1)+1);
        if(beg != (uint32_t)-1 && sink != (uint32_t)-1 && 
                            is_simple_broken_bubble(unitig_ug, broken->a.a[0], beg, sink, &v))
        {
            if((v>>1) != (broken->a.a[0]>>1))
            {
                ///fprintf(stderr, "-----sb-----utg%.6ul\n", (v>>1)+1);
                kv_push(uint32_t, broken->a, v);
                occ += unitig_ug->u.a[v>>1].n;
                if(occ_thres && occ > (*occ_thres)) return;
                bub->index[v>>1] = bub->f_bub+1; ///set to het
            }
        }
    } 
    
    
    if(occ_thres && occ > (*occ_thres)) return;
    /********************push graph node********************/
    bub_id = bub->b_g->n_seq;
    asg_seq_set(bub->b_g, bub_id, 0, 0);
    bub->b_g->seq[bub_id].c = HAP_LABLE;
    if(is_b_bub) bub->b_bub++;
    /********************push graph node********************/

    /********************push bubble********************/
    kv_push(uint32_t, bub->num, bub->list.n);
    kv_push(uint64_t, bub->pathLen, 0);
    kv_push(uint32_t, bub->list, beg);
    kv_push(uint32_t, bub->list, sink);

    for (i = 0; i < broken->a.n; i++)
    {
        kv_push(uint32_t, bub->list, broken->a.a[i]);
        if(bsg_idx) bsg_idx[broken->a.a[i]>>1] = 1;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq 0x40(%rbp), %rax
movq 0x38(%rbp), %rax
movq 0x30(%rbp), %rax
movq 0x28(%rbp), %rax
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq %r9, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1ba520
movq $0x0, -0x40(%rbp)
movl $0x0, -0x2c(%rbp)
movl $0x0, -0x24(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl -0x24(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x1decb2
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x24(%rbp), %ecx
movl (%rax,%rcx,4), %eax
shrl %eax
movl -0x28(%rbp), %ecx
shrl %ecx
cmpl %ecx, %eax
jne 0x1debca
jmp 0x1deca4
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movl -0x24(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
shrl %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movq -0x20(%rbp), %rcx
movq 0x80(%rcx), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jbe 0x1dec4d
movq 0x30(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x24(%rbp), %ecx
movl (%rax,%rcx,4), %esi
callq 0x1de950
cmpl $0x0, %eax
je 0x1dec49
movq -0x20(%rbp), %rax
movq 0x80(%rax), %rax
addq $0x1, %rax
movl %eax, %edx
movq -0x20(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movl -0x24(%rbp), %esi
movl (%rcx,%rsi,4), %ecx
shrl %ecx
movl %ecx, %ecx
movl %edx, (%rax,%rcx,4)
jmp 0x1dec4b
jmp 0x1deca4
jmp 0x1dec4d
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x24(%rbp), %ecx
movl (%rax,%rcx,4), %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %edx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x2c(%rbp), %ecx
movl %edx, (%rax,%rcx,4)
movq 0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movl -0x2c(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
shrl %ecx
movl %ecx, %ecx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1deb9c
movl -0x2c(%rbp), %eax
movl %eax, %ecx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rax
cmpq $0x1, (%rax)
jne 0x1dee08
cmpl $-0x1, -0xc(%rbp)
je 0x1dee06
cmpl $-0x1, -0x14(%rbp)
je 0x1dee06
movq 0x30(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %esi
movl -0xc(%rbp), %edx
movl -0x14(%rbp), %ecx
leaq -0x34(%rbp), %r8
callq 0x1de070
cmpl $0x0, %eax
je 0x1dee06
movl -0x34(%rbp), %eax
shrl %eax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movl (%rcx), %ecx
shrl %ecx
cmpl %ecx, %eax
je 0x1dee04
jmp 0x1ded21
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1ded89
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1ded4e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0x78(%rbp)
jmp 0x1ded59
movl $0x2, %eax
movq %rax, -0x78(%rbp)
jmp 0x1ded59
movq -0x78(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movl -0x34(%rbp), %edx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rsi
movq (%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, (%rsi)
movl %edx, (%rax,%rcx,4)
movq 0x30(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x34(%rbp), %ecx
shrl %ecx
movl %ecx, %ecx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
addq -0x40(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, 0x38(%rbp)
je 0x1dede2
movq -0x40(%rbp), %rax
movq 0x38(%rbp), %rcx
cmpq (%rcx), %rax
jbe 0x1dede2
jmp 0x1df618
movq -0x20(%rbp), %rax
movq 0x80(%rax), %rax
addq $0x1, %rax
movl %eax, %edx
movq -0x20(%rbp), %rax
movq (%rax), %rax
movl -0x34(%rbp), %ecx
shrl %ecx
movl %ecx, %ecx
movl %edx, (%rax,%rcx,4)
jmp 0x1dee06
jmp 0x1dee08
cmpq $0x0, 0x38(%rbp)
je 0x1dee21
movq -0x40(%rbp), %rax
movq 0x38(%rbp), %rcx
cmpq (%rcx), %rax
jbe 0x1dee21
jmp 0x1df618
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rax
movl 0x14(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rdi
movl -0x30(%rbp), %esi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0xcd8f0
movq -0x20(%rbp), %rax
movq 0xb8(%rax), %rax
movq 0x20(%rax), %rax
movl -0x30(%rbp), %ecx
movb $0x2, 0x4(%rax,%rcx,8)
cmpq $0x0, 0x40(%rbp)
je 0x1dee82
movq -0x20(%rbp), %rax
movq 0x88(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x88(%rax)
jmp 0x1dee84
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jne 0x1deeed
movq -0x20(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x1deeb2
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rax
shlq %rax
movq %rax, -0x80(%rbp)
jmp 0x1deebd
movl $0x2, %eax
movq %rax, -0x80(%rbp)
jmp 0x1deebd
movq -0x80(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movl %eax, %edx
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x20(%rbp), %rsi
movq 0x30(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x30(%rsi)
movl %edx, (%rax,%rcx,4)
jmp 0x1def17
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x50(%rcx), %rax
jne 0x1def89
movq -0x20(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x1def48
movq -0x20(%rbp), %rax
movq 0x50(%rax), %rax
shlq %rax
movq %rax, -0x88(%rbp)
jmp 0x1def56
movl $0x2, %eax
movq %rax, -0x88(%rbp)
jmp 0x1def56
movq -0x88(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x50(%rax), %rsi
shlq $0x3, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rax
movq -0x20(%rbp), %rdx
movq 0x48(%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x48(%rdx)
movq $0x0, (%rax,%rcx,8)
jmp 0x1defae
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jne 0x1df020
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1defdf
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
shlq %rax
movq %rax, -0x90(%rbp)
jmp 0x1defed
movl $0x2, %eax
movq %rax, -0x90(%rbp)
jmp 0x1defed
movq -0x90(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movl -0xc(%rbp), %edx
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movl %edx, (%rax,%rcx,4)
jmp 0x1df043
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jne 0x1df0b5
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1df074
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
shlq %rax
movq %rax, -0x98(%rbp)
jmp 0x1df082
movl $0x2, %eax
movq %rax, -0x98(%rbp)
jmp 0x1df082
movq -0x98(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movl %edx, (%rax,%rcx,4)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x1df1be
jmp 0x1df0ef
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jne 0x1df161
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1df120
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
shlq %rax
movq %rax, -0xa0(%rbp)
jmp 0x1df12e
movl $0x2, %eax
movq %rax, -0xa0(%rbp)
jmp 0x1df12e
movq -0xa0(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x24(%rbp), %ecx
movl (%rax,%rcx,4), %edx
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rsi
movq 0x18(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x18(%rsi)
movl %edx, (%rax,%rcx,4)
cmpq $0x0, 0x28(%rbp)
je 0x1df1ae
movq 0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movl -0x24(%rbp), %edx
movl (%rcx,%rdx,4), %ecx
shrl %ecx
movl %ecx, %ecx
movb $0x1, (%rax,%rcx)
jmp 0x1df1b0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1df0dd
cmpl $-0x1, -0xc(%rbp)
je 0x1df3c2
movq -0x20(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0xc(%rbp), %ecx
xorl $0x1, %ecx
movq -0x20(%rbp), %rax
movl 0xb0(%rax), %eax
leaq -0x10(%rbp), %rdx
leaq -0x30(%rbp), %r8
leaq -0x58(%rbp), %r9
movl %eax, (%rsp)
callq 0x1dc630
cmpl $0x0, %eax
je 0x1df3c0
movq -0x20(%rbp), %rdi
movl -0xc(%rbp), %esi
xorl $0x1, %esi
movl -0xc(%rbp), %ecx
movq -0x20(%rbp), %rax
movl 0xb0(%rax), %eax
leaq -0x30(%rbp), %rdx
leaq -0x10(%rbp), %r8
leaq -0x70(%rbp), %r9
movl %eax, (%rsp)
callq 0x1dc630
cmpl $0x0, %eax
je 0x1df3c0
movb $0x0, -0x46(%rbp)
movw -0x48(%rbp), %ax
andw $0x7fff, %ax            # imm = 0x7FFF
orw $0x0, %ax
movw %ax, -0x48(%rbp)
movl -0x4c(%rbp), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
orl $0x0, %eax
movl %eax, -0x4c(%rbp)
movq 0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1df2c0
movq 0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1df282
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0xa8(%rbp)
jmp 0x1df290
movl $0x2, %eax
movq %rax, -0xa8(%rbp)
jmp 0x1df290
movq -0xa8(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rax
imulq $0x18, 0x8(%rax), %rsi
callq 0x2360
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
movb $0x0, -0x5e(%rbp)
movw -0x60(%rbp), %ax
andw $0x7fff, %ax            # imm = 0x7FFF
orw $0x0, %ax
movw %ax, -0x60(%rbp)
movl -0x64(%rbp), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
orl $0x0, %eax
movl %eax, -0x64(%rbp)
movq 0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1df387
movq 0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1df349
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0xb0(%rbp)
jmp 0x1df357
movl $0x2, %eax
movq %rax, -0xb0(%rbp)
jmp 0x1df357
movq -0xb0(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rax
imulq $0x18, 0x8(%rax), %rsi
callq 0x2360
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq -0x70(%rbp), %rcx
movq %rcx, (%rax)
movq -0x68(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x60(%rbp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x1df3c0
jmp 0x1df3c2
cmpl $-0x1, -0x14(%rbp)
je 0x1df5c6
movq -0x20(%rbp), %rdi
movl -0x14(%rbp), %esi
xorl $0x1, %esi
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl 0xb0(%rax), %eax
leaq -0x30(%rbp), %rdx
leaq -0x18(%rbp), %r8
leaq -0x58(%rbp), %r9
movl %eax, (%rsp)
callq 0x1dc630
cmpl $0x0, %eax
je 0x1df5c4
movq -0x20(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x14(%rbp), %ecx
xorl $0x1, %ecx
movq -0x20(%rbp), %rax
movl 0xb0(%rax), %eax
leaq -0x18(%rbp), %rdx
leaq -0x30(%rbp), %r8
leaq -0x70(%rbp), %r9
movl %eax, (%rsp)
callq 0x1dc630
cmpl $0x0, %eax
je 0x1df5c4
movb $0x0, -0x46(%rbp)
movw -0x48(%rbp), %ax
andw $0x7fff, %ax            # imm = 0x7FFF
orw $0x0, %ax
movw %ax, -0x48(%rbp)
movl -0x4c(%rbp), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
orl $0x0, %eax
movl %eax, -0x4c(%rbp)
movq 0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1df4c4
movq 0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1df486
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0xb8(%rbp)
jmp 0x1df494
movl $0x2, %eax
movq %rax, -0xb8(%rbp)
jmp 0x1df494
movq -0xb8(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rax
imulq $0x18, 0x8(%rax), %rsi
callq 0x2360
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq -0x58(%rbp), %rcx
movq %rcx, (%rax)
movq -0x50(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
movb $0x0, -0x5e(%rbp)
movw -0x60(%rbp), %ax
andw $0x7fff, %ax            # imm = 0x7FFF
orw $0x0, %ax
movw %ax, -0x60(%rbp)
movl -0x64(%rbp), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
orl $0x0, %eax
movl %eax, -0x64(%rbp)
movq 0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x1df58b
movq 0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1df54d
movq 0x10(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0xc0(%rbp)
jmp 0x1df55b
movl $0x2, %eax
movq %rax, -0xc0(%rbp)
jmp 0x1df55b
movq -0xc0(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rbp), %rax
imulq $0x18, 0x8(%rax), %rsi
callq 0x2360
movq %rax, %rcx
movq 0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rbp), %rdx
movq (%rdx), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, (%rdx)
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq -0x70(%rbp), %rcx
movq %rcx, (%rax)
movq -0x68(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x60(%rbp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x1df5c4
jmp 0x1df5c6
cmpl $-0x1, -0xc(%rbp)
je 0x1df618
cmpl $-0x1, -0x14(%rbp)
je 0x1df618
cmpq $0x0, 0x20(%rbp)
je 0x1df618
movq 0x20(%rbp), %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0xc(%rax)
movq 0x18(%rbp), %rdi
movq 0x20(%rbp), %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq 0x20(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
movl $0x1, %ecx
callq 0x1de8a0
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)