// File: chhylp123[P]hifiasm/Overlaps.cpp
// Function: renew_phase_bubble(rd_hamming_fly_simp_t*, unsigned long, buf_t*, ma_ug_t*, unsigned long, unsigned int, unsigned int, hap_cov_t*, utg_trans_t*, unsigned int)
uint64_t renew_phase_bubble(rd_hamming_fly_simp_t *pf, uint64_t v0, buf_t *b, ma_ug_t *ug, uint64_t max_dist, 
uint32_t positive_flag, uint32_t negative_flag, hap_cov_t *cov, utg_trans_t *o, uint32_t is_update_chain)
{
    uint64_t v, k, i, v1 = b->S.a[0], is_update, is_pop = 0; ma_ug_t *fg = pf->fg;
    uint8_t *s = pf->vs; asg32_v *bc = pf->srt; uint8_t sn = 1, se = 2; uint64_t max_dist0 = max_dist;
    bc->n = 0; kv_resize(uint32_t, (*bc), b->b.n);
    assert((fg->u.a[v0>>1].len == ug->u.a[v0>>1].len) && (fg->u.a[v0>>1].n == ug->u.a[v0>>1].n));
    assert((fg->u.a[v1>>1].len == ug->u.a[v1>>1].len) && (fg->u.a[v1>>1].n == ug->u.a[v1>>1].n));


    // if(((v0>>1) == 7536) && ((v1>>1) == 99223)) {
    //     print_simple_dbg_gfa(ug->g, "ug0");
    // }

    ///b->S.a[0] is the sink of this bubble
    for (i = 0; i < b->b.n; i++) {
        v = b->b.a[i];
        if((v == v0) || (v == v1)) continue;
        s[v] = sn;
        kv_push(uint32_t, *bc, v);
        assert((fg->u.a[v>>1].len == ug->u.a[v>>1].len) && (fg->u.a[v>>1].n == ug->u.a[v>>1].n));
    }
    
    asg_arc_t *av, *za, *ra; uint32_t an, zn, rn, ri;
    v = v0;
    av = asg_arc_a(fg->g, v); 
    an = asg_arc_n(fg->g, v); 
    for (k = 0; k < an; k++) {
        av[k].del = 1; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 1);
    }
    fg->g->seq[v>>1].c = ug->g->seq[v>>1].c;


    v = v1^1; 
    av = asg_arc_a(fg->g, v); 
    an = asg_arc_n(fg->g, v); 
    for (k = 0; k < an; k++) {
        av[k].del = 1; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 1);
    }
    fg->g->seq[v>>1].c = ug->g->seq[v>>1].c;


    for (i = 0; i < bc->n; i++) {
        v = bc->a[i];
        av = asg_arc_a(fg->g, v); an = asg_arc_n(fg->g, v); 
        for (k = 0; k < an; k++) {
            // av[k].del = 1;
            av[k].del = 1; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 1);
        }

        v ^= 1;
        av = asg_arc_a(fg->g, v); an = asg_arc_n(fg->g, v); 
        for (k = 0; k < an; k++) {
            // av[k].del = 1;
            av[k].del = 1; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 1);
        }

        fg->g->seq[v>>1].c = ug->g->seq[v>>1].c;
    }


    for (i = 0; i < bc->n; i++) {
        v = bc->a[i];
        za = asg_arc_a(ug->g, v); zn = asg_arc_n(ug->g, v); 
        av = asg_arc_a(fg->g, v); an = asg_arc_n(fg->g, v); 

        ///set
        for (k = 0; k < zn; k++) {
            if((za[k].del) || (!s[za[k].v])) continue;
            s[za[k].v] |= se;
        }

        
        for (k = 0; k < an; k++) {
            ///s[av[k].v]&se:: in the existing graph
            if((!s[av[k].v]) || (s[av[k].v]&se)) continue; ///in the existing graph
            // if((av[k].v) == (v>>1)) continue;///looks like a bug
            if((av[k].v>>1) == (v>>1)) continue;
            av[k].del = 0;

            ra = asg_arc_a(fg->g, (av[k].v^1)); rn = asg_arc_n(fg->g, (av[k].v^1));
            for (ri = 0; ri < rn; ri++) {
                if(ra[ri].v == ((av[k].ul>>32)^1)) {
                    ra[ri].del = 0; break;
                }
            }
            assert(ri < rn);
        }

        ///reset
        for (k = 0; k < zn; k++) {
            if((za[k].del) || (!s[za[k].v])) continue;
            if(s[za[k].v]&se) s[za[k].v] -= se;
        }
    }


    is_update = rd_hamming_symm_simple0(b, ug->g, fg->g, v0, v1^1, max_dist, &max_dist);

    // if(((v0>>1) == 7536) && ((v1>>1) == 99223)) {
    //     fprintf(stderr, "v0::utg%.6lul(%c)\tv1::utg%.6lul(%c)\n", (v0>>1) + 1, "+-"[(v0&1)], (v1>>1) + 1, "+-"[(v1&1)]);
    //     for (i = 0; i < bc->n; i++) fprintf(stderr, "w::utg%.6ul(%c)\n", (bc->a[i]>>1) + 1, "+-"[(bc->a[i]&1)]);
    //     print_simple_dbg_gfa(ug->g, "ug1");
    //     print_simple_dbg_gfa(fg->g, "fg0");
    // }

    // fprintf(stderr, "[M::%s] is_update::%lu\n", __func__, is_update);
    if(is_update) {
        for (i = 0; i < bc->n; i++) {
            append_node_arcs(fg->g, ug->g, s, se, bc->a[i]);
            append_node_arcs(fg->g, ug->g, s, se, bc->a[i]^1);
        }
        append_node_arcs(fg->g, ug->g, s, se, v0);
        append_node_arcs(fg->g, ug->g, s, se, v1^1);
        is_pop = bub_pop_merge(ug, fg, v0, v1, max_dist, b, positive_flag, negative_flag, cov, is_update_chain, o, pf->ae, pf->src, pf->cov, pf->max_hang, pf->min_ovlp, pf->gap_fuzz, &(pf->n_insert));
    } else {
        max_dist = max_dist0;
        is_pop = asg_bub_pop1_primary_trio(ug->g, ug, v0, max_dist, b, positive_flag, negative_flag, 1, NULL, NULL, cov, is_update_chain, 0, o);
    }



    for (i = 0; i < bc->n; i++) s[bc->a[i]] = 0;
    ///reset
    v = v0;
    av = asg_arc_a(fg->g, v); 
    an = asg_arc_n(fg->g, v); 
    for (k = 0; k < an; k++) {
        av[k].del = 0; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 0);
    }
    fg->g->seq[v>>1].c = PRIMARY_LABLE;


    v = v1^1; 
    av = asg_arc_a(fg->g, v); 
    an = asg_arc_n(fg->g, v); 
    for (k = 0; k < an; k++) {
        av[k].del = 0; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 0);
    }
    fg->g->seq[v>>1].c = PRIMARY_LABLE;


    for (i = 0; i < bc->n; i++) {
        v = bc->a[i];
        av = asg_arc_a(fg->g, v); 
        an = asg_arc_n(fg->g, v); 
        for (k = 0; k < an; k++) {
            av[k].del = 0; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 0);
        }

        v ^= 1;
        av = asg_arc_a(fg->g, v); 
        an = asg_arc_n(fg->g, v); 
        for (k = 0; k < an; k++) {
            av[k].del = 0; asg_arc_del(fg->g, av[k].v^1, (av[k].ul>>32)^1, 0);
        }

        fg->g->seq[v>>1].c = PRIMARY_LABLE;
    }
    return is_pop;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movl 0x28(%rbp), %eax
movq 0x20(%rbp), %rax
movq 0x18(%rbp), %rax
movl 0x10(%rbp), %eax
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movq %rcx, -0x48(%rbp)
movq %r8, -0x50(%rbp)
movl %r9d, -0x54(%rbp)
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movl (%rax), %eax
movq %rax, -0x78(%rbp)
movq $0x0, -0x88(%rbp)
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x30(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xa0(%rbp)
movb $0x1, -0xa1(%rbp)
movb $0x2, -0xa2(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xa0(%rbp), %rax
movq $0x0, (%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jae 0x13db2b
movq -0x40(%rbp), %rax
movq 0x38(%rax), %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
shrq %rcx
movq -0xa0(%rbp), %rax
orq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x2, %rcx
movq -0xa0(%rbp), %rax
orq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x4, %rcx
movq -0xa0(%rbp), %rax
orq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x8, %rcx
movq -0xa0(%rbp), %rax
orq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
shrq $0x10, %rcx
movq -0xa0(%rbp), %rax
orq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x10(%rax)
jmp 0x13db2d
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0xd9(%rbp)
jne 0x13dbb6
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movq -0x48(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x38(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x10(%rcx), %eax
sete %al
movb %al, -0xd9(%rbp)
movb -0xd9(%rbp), %al
testb $0x1, %al
jne 0x13dbc2
jmp 0x13dbc4
jmp 0x13dbe3
leaq 0x24b1f9(%rip), %rdi    # 0x388dc4
leaq 0x248ceb(%rip), %rsi    # 0x3868bd
movl $0x67ff, %edx           # imm = 0x67FF
leaq 0x24b23b(%rip), %rcx    # 0x388e19
callq 0x2130
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x78(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x78(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0xda(%rbp)
jne 0x13dc6c
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x78(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movq -0x48(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x78(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x10(%rcx), %eax
sete %al
movb %al, -0xda(%rbp)
movb -0xda(%rbp), %al
testb $0x1, %al
jne 0x13dc78
jmp 0x13dc7a
jmp 0x13dc99
leaq 0x24b22f(%rip), %rdi    # 0x388eb0
leaq 0x248c35(%rip), %rsi    # 0x3868bd
movl $0x6800, %edx           # imm = 0x6800
leaq 0x24b185(%rip), %rcx    # 0x388e19
callq 0x2130
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0x40(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jae 0x13de6d
movq -0x40(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x38(%rbp), %rax
je 0x13dcda
movq -0x60(%rbp), %rax
cmpq -0x78(%rbp), %rax
jne 0x13dcdf
jmp 0x13de5c
movb -0xa1(%rbp), %dl
movq -0x98(%rbp), %rax
movq -0x60(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0xa0(%rbp), %rax
movq (%rax), %rax
movq -0xa0(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x13dd7c
movq -0xa0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x13dd2f
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rax
shlq %rax
movq %rax, -0xe8(%rbp)
jmp 0x13dd3d
movl $0x2, %eax
movq %rax, -0xe8(%rbp)
jmp 0x13dd3d
movq -0xe8(%rbp), %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0xa0(%rbp), %rax
movq 0x8(%rax), %rsi
shlq $0x2, %rsi
callq 0x2360
movq %rax, %rcx
movq -0xa0(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
movl %eax, %edx
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rax
movq -0xa0(%rbp), %rsi
movq (%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, (%rsi)
movl %edx, (%rax,%rcx,4)
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x48(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %edx
andl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0xe9(%rbp)
jne 0x13de2d
movq -0x90(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x10(%rax), %eax
movq -0x48(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x60(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x10(%rcx), %eax
sete %al
movb %al, -0xe9(%rbp)
movb -0xe9(%rbp), %al
testb $0x1, %al
jne 0x13de39
jmp 0x13de3b
jmp 0x13de5a
leaq 0x24b0c3(%rip), %rdi    # 0x388f05
leaq 0x248a74(%rip), %rsi    # 0x3868bd
movl $0x680d, %edx           # imm = 0x680D
leaq 0x24afc4(%rip), %rcx    # 0x388e19
callq 0x2130
jmp 0x13de5c
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13dca1
movq -0x38(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13df59
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
movl $0x1, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13ded2
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb 0x4(%rax,%rcx,8), %dl
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb %dl, 0x4(%rax,%rcx,8)
movq -0x78(%rbp), %rax
xorq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e07a
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
movl $0x1, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13dff3
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb 0x4(%rax,%rcx,8), %dl
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb %dl, 0x4(%rax,%rcx,8)
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x13e2f3
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e1c1
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
movl $0x1, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13e13a
movq -0x60(%rbp), %rax
xorq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e2b1
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
movl $0x1, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13e22a
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb 0x4(%rax,%rcx,8), %dl
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb %dl, 0x4(%rax,%rcx,8)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13e0b3
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x13e714
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, -0x60(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x48(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xc0(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xd0(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xd0(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e452
movq -0xc0(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
jne 0x13e416
movq -0x98(%rbp), %rax
movq -0xc0(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
cmpb $0x0, (%rax,%rcx)
jne 0x13e418
jmp 0x13e441
movzbl -0xa2(%rbp), %esi
movq -0x98(%rbp), %rax
movq -0xc0(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
movzbl (%rax,%rcx), %edx
orl %esi, %edx
movb %dl, (%rax,%rcx)
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13e3ce
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e644
movq -0x98(%rbp), %rax
movq -0xb8(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
cmpb $0x0, (%rax,%rcx)
je 0x13e4b7
movq -0x98(%rbp), %rax
movq -0xb8(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
movzbl (%rax,%rcx), %eax
movzbl -0xa2(%rbp), %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x13e4bc
jmp 0x13e633
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
shrl %eax
movl %eax, %eax
movq -0x60(%rbp), %rcx
shrq %rcx
cmpq %rcx, %rax
jne 0x13e4e3
jmp 0x13e633
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0xb8(%rbp), %rdx
imulq $0x18, -0x68(%rbp), %rsi
addq %rsi, %rdx
movl 0x8(%rdx), %edx
xorl $0x1, %edx
movl %edx, %edx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xc8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0xb8(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
xorl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
movl %eax, -0xd4(%rbp)
movl $0x0, -0xd8(%rbp)
movl -0xd8(%rbp), %eax
cmpl -0xd4(%rbp), %eax
jae 0x13e602
movq -0xc8(%rbp), %rax
movl -0xd8(%rbp), %ecx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0xb8(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movq (%rcx), %rcx
shrq $0x20, %rcx
xorq $0x1, %rcx
cmpq %rcx, %rax
jne 0x13e5ef
movq -0xc8(%rbp), %rax
movl -0xd8(%rbp), %ecx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
jmp 0x13e602
jmp 0x13e5f1
movl -0xd8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd8(%rbp)
jmp 0x13e586
movl -0xd8(%rbp), %eax
cmpl -0xd4(%rbp), %eax
jae 0x13e612
jmp 0x13e631
leaq 0x24a93d(%rip), %rdi    # 0x388f56
leaq 0x24829d(%rip), %rsi    # 0x3868bd
movl $0x684f, %edx           # imm = 0x684F
leaq 0x24a7ed(%rip), %rcx    # 0x388e19
callq 0x2130
jmp 0x13e633
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13e45a
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xd0(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13e701
movq -0xc0(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
jne 0x13e698
movq -0x98(%rbp), %rax
movq -0xc0(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
cmpb $0x0, (%rax,%rcx)
jne 0x13e69a
jmp 0x13e6f0
movq -0x98(%rbp), %rax
movq -0xc0(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
movzbl (%rax,%rcx), %eax
movzbl -0xa2(%rbp), %ecx
andl %ecx, %eax
cmpl $0x0, %eax
je 0x13e6ee
movzbl -0xa2(%rbp), %esi
movq -0x98(%rbp), %rax
movq -0xc0(%rbp), %rcx
imulq $0x18, -0x68(%rbp), %rdx
addq %rdx, %rcx
movl 0x8(%rcx), %ecx
movzbl (%rax,%rcx), %edx
subl %esi, %edx
movb %dl, (%rax,%rcx)
jmp 0x13e6f0
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13e64c
jmp 0x13e703
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13e2fb
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x38(%rbp), %rax
movl %eax, %ecx
movq -0x78(%rbp), %rax
xorq $0x1, %rax
movl %eax, %r8d
movq -0x50(%rbp), %r9
leaq -0x50(%rbp), %rax
movq %rax, (%rsp)
callq 0x1399c0
movl %eax, %eax
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
je 0x13e954
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x13e805
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x98(%rbp), %rdx
movb -0xa2(%rbp), %al
movq -0xa0(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x70(%rbp), %r8
movl (%rcx,%r8,4), %r8d
movzbl %al, %ecx
callq 0x13caa0
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x98(%rbp), %rdx
movb -0xa2(%rbp), %al
movq -0xa0(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x70(%rbp), %r8
movl (%rcx,%r8,4), %r8d
xorl $0x1, %r8d
movzbl %al, %ecx
callq 0x13caa0
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13e766
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x98(%rbp), %rdx
movb -0xa2(%rbp), %al
movq -0x38(%rbp), %rcx
movl %ecx, %r8d
movzbl %al, %ecx
callq 0x13caa0
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x98(%rbp), %rdx
movb -0xa2(%rbp), %al
movq -0x78(%rbp), %rcx
xorq $0x1, %rcx
movl %ecx, %r8d
movzbl %al, %ecx
callq 0x13caa0
movq -0x48(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq -0x38(%rbp), %rax
movl %eax, %edx
movq -0x78(%rbp), %rax
movl %eax, %ecx
movq -0x50(%rbp), %r8
movq -0x40(%rbp), %r9
movl -0x54(%rbp), %eax
movl %eax, -0x110(%rbp)
movl 0x10(%rbp), %eax
movl %eax, -0x10c(%rbp)
movq 0x18(%rbp), %rax
movq %rax, -0x108(%rbp)
movl 0x28(%rbp), %eax
movl %eax, -0xfc(%rbp)
movq 0x20(%rbp), %r13
movq -0x30(%rbp), %rax
movq 0x38(%rax), %r12
movq -0x30(%rbp), %rax
movq (%rax), %r15
movq -0x30(%rbp), %rax
movq 0x8(%rax), %r14
movq -0x30(%rbp), %rax
movl 0x10(%rax), %ebx
movq -0x30(%rbp), %rax
movl 0x14(%rax), %r11d
movq -0x30(%rbp), %rax
movl 0x18(%rax), %r10d
movq -0x30(%rbp), %rax
addq $0x40, %rax
movq %rax, -0xf8(%rbp)
movl -0x110(%rbp), %eax
movl %eax, (%rsp)
movl -0x10c(%rbp), %eax
movl %eax, 0x8(%rsp)
movq -0x108(%rbp), %rax
movq %rax, 0x10(%rsp)
movl -0xfc(%rbp), %eax
movl %eax, 0x18(%rsp)
movq -0xf8(%rbp), %rax
movq %r13, 0x20(%rsp)
movq %r12, 0x28(%rsp)
movq %r15, 0x30(%rsp)
movq %r14, 0x38(%rsp)
movl %ebx, 0x40(%rsp)
movl %r11d, 0x48(%rsp)
movl %r10d, 0x50(%rsp)
movq %rax, 0x58(%rsp)
callq 0x13cd20
movl %eax, %eax
movq %rax, -0x88(%rbp)
jmp 0x13e9d2
movq -0xb0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x48(%rbp), %rsi
movq -0x38(%rbp), %rax
movl %eax, %edx
movq -0x50(%rbp), %rcx
movq -0x40(%rbp), %r8
movl -0x54(%rbp), %r9d
movl 0x10(%rbp), %ebx
movq 0x18(%rbp), %r11
movl 0x28(%rbp), %r10d
movq 0x20(%rbp), %rax
xorl %r14d, %r14d
xorl %r14d, %r14d
movl %ebx, (%rsp)
movl $0x1, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movl %r10d, 0x28(%rsp)
movl $0x0, 0x30(%rsp)
movq %rax, 0x38(%rsp)
callq 0xfe040
movq %rax, -0x88(%rbp)
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x13ea15
movq -0x98(%rbp), %rax
movq -0xa0(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq -0x70(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
movb $0x0, (%rax,%rcx)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13e9da
movq -0x38(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13eaf8
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
xorl %ecx, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13ea7a
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb $0x0, 0x4(%rax,%rcx,8)
movq -0x78(%rbp), %rax
xorq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13ebfa
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
xorl %ecx, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13eb7c
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb $0x0, 0x4(%rax,%rcx,8)
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x13ee35
movq -0xa0(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x70(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13ed22
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
xorl %ecx, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13eca4
movq -0x60(%rbp), %rax
xorq $0x1, %rax
movq %rax, -0x60(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq -0x90(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x28(%rcx), %rcx
movq -0x60(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xb8(%rbp)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq -0x60(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, -0xcc(%rbp)
movq $0x0, -0x68(%rbp)
movq -0x68(%rbp), %rax
movl -0xcc(%rbp), %ecx
cmpq %rcx, %rax
jae 0x13ee09
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
orl $0x0, %ecx
movl %ecx, 0xc(%rax)
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %esi
xorl $0x1, %esi
movq -0xb8(%rbp), %rax
imulq $0x18, -0x68(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
xorq $0x1, %rax
movl %eax, %edx
xorl %ecx, %ecx
callq 0xd6530
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x13ed8b
movq -0x90(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq -0x60(%rbp), %rcx
shrq %rcx
movb $0x0, 0x4(%rax,%rcx,8)
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x13ec1d
movq -0x88(%rbp), %rax
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop