// File: chhylp123[P]hifiasm/gfa_ut.cpp
// Function: integer_sg_gen(ul_resolve_t*, unsigned long)
asg_t *integer_sg_gen(ul_resolve_t *uidx, uint64_t min_ovlp)
{
    ul2ul_idx_t *ul2 = &(uidx->uovl); ma_ug_t *ug = uidx->l1_ug; asg_t *raw_g = ug->g; ///uc_block_t *xi; 
    uint64_t i, k, is_del, v, w, nv, z; ul2ul_item_t *o, *ow; int32_t r; asg_arc_t t, *p; asg_arc_t *av;
    // ul_str_t *str;
    asg_t *g = asg_init();
    for (i = 0; i < ul2->tot; i++) {
        is_del = 0;
        o = get_ul_ovlp(ul2, ulg_id(*ul2, i), ulg_type(*ul2, i));
        if((!o) || (o->is_del)) is_del = 1;
        asg_seq_set(g, i, ulg_len(*uidx, i), is_del);
        g->seq[i].c = 0;
    }
    // CALLOC(g->seq_vis, g->n_seq*2);

    for (i = 0; i < ul2->tot; ++i) {
        o = get_ul_ovlp(ul2, ulg_id(*ul2, i), ulg_type(*ul2, i));
        if((!o) || (o->is_del)) continue;
        for (k = 0; k < o->n; k++) {
            if(o->a[k].is_del || o->a[k].is_ct) continue;
            r = integer_hit2arc(&(o->a[k]), ulg_len(*uidx, i), ulg_len(*uidx, o->a[k].hid), 
            ulg_occ(*uidx, i), ulg_occ(*uidx, o->a[k].hid), i, o->a[k].hid, min_ovlp, &t);
            if (r >= 0) {
                p = asg_arc_pushp(g);
                *p = t;
            }
        }
        if(i >= ul2->uln) {///is a node of ug
            v = (i-ul2->uln)<<1;
            nv = asg_arc_n(raw_g, v); av = asg_arc_a(raw_g, v);
            for (z = 0; z < nv; z++) {
                if(av[z].del) continue;
                w = av[z].v + (ul2->uln<<1);
                ow = get_ul_ovlp(ul2, ulg_id(*ul2, (w>>1)), ulg_type(*ul2, (w>>1)));
                if((!ow) || (ow->is_del)) continue;
                p = asg_arc_pushp(g);
                *p = av[z]; p->ul += (((uint64_t)ul2->uln)<<33); p->v += (ul2->uln<<1);
            }

            v = ((i-ul2->uln)<<1)+1;
            nv = asg_arc_n(raw_g, v); av = asg_arc_a(raw_g, v);
            for (z = 0; z < nv; z++) {
                if(av[z].del) continue;
                w = av[z].v + (ul2->uln<<1);
                ow = get_ul_ovlp(ul2, ulg_id(*ul2, (w>>1)), ulg_type(*ul2, (w>>1)));
                if((!ow) || (ow->is_del)) continue;
                p = asg_arc_pushp(g);
                *p = av[z]; p->ul += (((uint64_t)ul2->uln)<<33); p->v += (ul2->uln<<1);
            }
        } 
        // else { ///is a node of ug
        //     str = &(uidx->pstr.str.a[i]);
        //     if(str->cn > 0) {
        //         xi = &(uidx->idx->a[i].bb.a[str->a[0]>>32]); v = ((uint32_t)str->a[0])^1;
        //         ow = get_ul_ovlp(ul2, ulg_id(*ul2, (v>>1)), ulg_type(*ul2, (v>>1)));
        //         if((!ow) || (ow->is_del)) {
        //             nv = asg_arc_n(raw_g, v); av = asg_arc_a(raw_g, v);
        //         }

        //         xi = &(uidx->idx->a[i].bb.a[str->a[str->cn-1]>>32]); v = ((uint32_t)str->a[str->cn-1]);
        //         ow = get_ul_ovlp(ul2, ulg_id(*ul2, (v>>1)), ulg_type(*ul2, (v>>1)));
        //         if((!ow) || (ow->is_del)) {

        //         }
        //     }
        // }
    }
    asg_cleanup(g);
    g->r_seq = g->n_seq;
    // fprintf(stderr, "[M::%s::] # ig nodes::%u, # ig archs::%u\n", __func__, g->n_seq, g->n_arc);
    return g;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
addq $0x1f0, %rax            # imm = 0x1F0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
callq 0xcd150
movq %rax, -0xa8(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jae 0x33f60d
movq $0x0, -0x40(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x33f465
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
movq %rax, -0xb8(%rbp)
jmp 0x33f470
movq -0x30(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb0(%rbp), %rdi
movq -0xb8(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rax
movq 0x18(%rax), %r8
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %r8, %rdx
cmovael %ecx, %eax
movslq %eax, %rdx
callq 0x3370e0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
je 0x33f4b9
movq -0x68(%rbp), %rax
movl 0x18(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33f4c1
movq $0x1, -0x40(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x30(%rbp), %rax
movl %eax, -0xbc(%rbp)
movq -0x30(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
cmpl $0x0, %eax
je 0x33f561
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x48(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f536
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0xd8(%rbp)
jmp 0x33f541
movq -0x30(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rax
movq -0xd8(%rbp), %rcx
imulq $0x58, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0xdc(%rbp)
jmp 0x33f5ca
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xe8(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f59d
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0xf0(%rbp)
jmp 0x33f5a8
movq -0x30(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0xe8(%rbp), %rax
movq -0xf0(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0xdc(%rbp)
movl -0xbc(%rbp), %esi
movq -0xc8(%rbp), %rdi
movl -0xdc(%rbp), %edx
movq -0x40(%rbp), %rax
movl %eax, %ecx
callq 0xcd8f0
movq -0xa8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x30(%rbp), %rcx
movb $0x0, 0x4(%rax,%rcx,8)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x33f41d
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jae 0x33ff4f
movq -0x18(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x33f655
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
movq %rax, -0x100(%rbp)
jmp 0x33f660
movq -0x30(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0xf8(%rbp), %rdi
movq -0x100(%rbp), %rsi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rax
movq 0x18(%rax), %r8
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %r8, %rdx
cmovael %ecx, %eax
movslq %eax, %rdx
callq 0x3370e0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
je 0x33f6a9
movq -0x68(%rbp), %rax
movl 0x18(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33f6ae
jmp 0x33ff3e
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x68(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x33fba4
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movb 0x24(%rax), %al
shrb $0x6, %al
andb $0x1, %al
cmpb $0x0, %al
jne 0x33f6fc
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movb 0x24(%rax), %al
shrb $0x7, %al
cmpb $0x0, %al
je 0x33f701
jmp 0x33fb93
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x108(%rbp)
movq -0x30(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
cmpl $0x0, %eax
je 0x33f79f
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x48(%rax), %rax
movq %rax, -0x110(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f774
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x118(%rbp)
jmp 0x33f77f
movq -0x30(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x110(%rbp), %rax
movq -0x118(%rbp), %rcx
imulq $0x58, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0x11c(%rbp)
jmp 0x33f808
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x128(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f7db
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x130(%rbp)
jmp 0x33f7e6
movq -0x30(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x128(%rbp), %rax
movq -0x130(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x11c(%rbp)
movl -0x11c(%rbp), %eax
movl %eax, %eax
movq %rax, -0x138(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, %edx
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
cmpl $0x0, %eax
je 0x33f8dc
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq 0x48(%rax), %rax
movq %rax, -0x140(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f8a1
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x148(%rbp)
jmp 0x33f8b9
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rax
movq -0x148(%rbp), %rcx
imulq $0x58, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0x14c(%rbp)
jmp 0x33f96c
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x158(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f932
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x160(%rbp)
jmp 0x33f94a
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq %rax, -0x160(%rbp)
movq -0x158(%rbp), %rax
movq -0x160(%rbp), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl (%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x14c(%rbp)
movl -0x14c(%rbp), %eax
movl %eax, %eax
movq %rax, -0x168(%rbp)
movq -0x30(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
cmpl $0x0, %eax
je 0x33fa07
movq -0x8(%rbp), %rax
movq 0x1d0(%rax), %rax
movq %rax, -0x170(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33f9d7
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x178(%rbp)
jmp 0x33f9e2
movq -0x30(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x170(%rbp), %rax
movq -0x178(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x17c(%rbp)
jmp 0x33fa14
movl $0x1, %eax
movl %eax, -0x17c(%rbp)
jmp 0x33fa14
movl -0x17c(%rbp), %eax
cltq
movq %rax, -0x188(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, %edx
movq -0x8(%rbp), %rax
movq 0x208(%rax), %rsi
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %rsi, %rdx
cmovael %ecx, %eax
cmpl $0x0, %eax
je 0x33fae9
movq -0x8(%rbp), %rax
movq 0x1d0(%rax), %rax
movq %rax, -0x190(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
cmpq 0x208(%rcx), %rax
jb 0x33faac
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq -0x8(%rbp), %rcx
subq 0x208(%rcx), %rax
movq %rax, -0x198(%rbp)
jmp 0x33fac4
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movq %rax, -0x198(%rbp)
movq -0x190(%rbp), %rax
movq -0x198(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x18(%rax), %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, -0x19c(%rbp)
jmp 0x33faf6
movl $0x1, %eax
movl %eax, -0x19c(%rbp)
jmp 0x33faf6
movq -0x188(%rbp), %rcx
movq -0x168(%rbp), %rdx
movq -0x138(%rbp), %rsi
movq -0x108(%rbp), %rdi
movl -0x19c(%rbp), %eax
movslq %eax, %r8
movq -0x30(%rbp), %r9
movq -0x68(%rbp), %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %r10
addq %r10, %rax
movl (%rax), %eax
movl %eax, %r11d
movq -0x10(%rbp), %r10
leaq -0x90(%rbp), %rax
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x338a20
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jl 0x33fb91
movq -0xa8(%rbp), %rdi
callq 0x31b110
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq -0x90(%rbp), %rcx
movq %rcx, (%rax)
movq -0x88(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x80(%rbp), %rcx
movq %rcx, 0x10(%rax)
jmp 0x33fb93
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x33f6b6
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x33ff3c
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
shlq %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, %eax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x28(%rcx), %rcx
movq -0x48(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x33fd76
movq -0xa0(%rbp), %rax
imulq $0x18, -0x60(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33fc3e
jmp 0x33fd65
movq -0xa0(%rbp), %rax
imulq $0x18, -0x60(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shlq %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1a8(%rbp)
movq -0x50(%rbp), %rax
shrq %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x33fc96
movq -0x50(%rbp), %rax
shrq %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
movq %rax, -0x1b0(%rbp)
jmp 0x33fca4
movq -0x50(%rbp), %rax
shrq %rax
movq %rax, -0x1b0(%rbp)
movq -0x1a8(%rbp), %rdi
movq -0x1b0(%rbp), %rsi
movq -0x50(%rbp), %rdx
shrq %rdx
movq -0x18(%rbp), %rax
movq 0x18(%rax), %r8
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %r8, %rdx
cmovael %ecx, %eax
movslq %eax, %rdx
callq 0x3370e0
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x33fcf0
movq -0x70(%rbp), %rax
movl 0x18(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33fcf2
jmp 0x33fd65
movq -0xa8(%rbp), %rdi
callq 0x31b110
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rcx
imulq $0x18, -0x60(%rbp), %rax
addq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rcx
shlq $0x21, %rcx
movq -0x98(%rbp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
shlq %rdx
movq -0x98(%rbp), %rax
movl 0x8(%rax), %ecx
addq %rdx, %rcx
movl %ecx, 0x8(%rax)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
jmp 0x33fc11
movq -0x30(%rbp), %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x48(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, %eax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x28(%rbp), %rcx
movq 0x28(%rcx), %rcx
movq -0x48(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0xa0(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x33ff3a
movq -0xa0(%rbp), %rax
imulq $0x18, -0x60(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33fe02
jmp 0x33ff29
movq -0xa0(%rbp), %rax
imulq $0x18, -0x60(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
shlq %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x50(%rbp), %rax
shrq %rax
movq -0x18(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x33fe5a
movq -0x50(%rbp), %rax
shrq %rax
movq -0x18(%rbp), %rcx
subq 0x18(%rcx), %rax
movq %rax, -0x1c0(%rbp)
jmp 0x33fe68
movq -0x50(%rbp), %rax
shrq %rax
movq %rax, -0x1c0(%rbp)
movq -0x1b8(%rbp), %rdi
movq -0x1c0(%rbp), %rsi
movq -0x50(%rbp), %rdx
shrq %rdx
movq -0x18(%rbp), %rax
movq 0x18(%rax), %r8
movl $0x1, %eax
xorl %ecx, %ecx
cmpq %r8, %rdx
cmovael %ecx, %eax
movslq %eax, %rdx
callq 0x3370e0
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
je 0x33feb4
movq -0x70(%rbp), %rax
movl 0x18(%rax), %eax
shrl $0x1f, %eax
cmpl $0x0, %eax
je 0x33feb6
jmp 0x33ff29
movq -0xa8(%rbp), %rdi
callq 0x31b110
movq %rax, -0x98(%rbp)
movq -0xa0(%rbp), %rcx
imulq $0x18, -0x60(%rbp), %rax
addq %rax, %rcx
movq -0x98(%rbp), %rax
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rcx
shlq $0x21, %rcx
movq -0x98(%rbp), %rax
addq (%rax), %rcx
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdx
shlq %rdx
movq -0x98(%rbp), %rax
movl 0x8(%rax), %ecx
addq %rdx, %rcx
movl %ecx, 0x8(%rax)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
jmp 0x33fdd5
jmp 0x33ff3c
jmp 0x33ff3e
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x33f615
movq -0xa8(%rbp), %rdi
callq 0xcdd10
movq -0xa8(%rbp), %rax
movl 0x14(%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0xa8(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0xa8(%rbp), %rax
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
nopw %cs:(%rax,%rax)