// File: chhylp123[P]hifiasm/gfa_ut.cpp
// Function: print_integer_g(poa_g_t*, ma_ug_t*, unsigned long)
void print_integer_g(poa_g_t *g, ma_ug_t *ug, uint64_t is_gfa)
{
    uint64_t i, v, w;
    if(!is_gfa) {
        for (i = 0; i < g->seq.n; i++) {
            fprintf(stderr, "Node::[M::%s::i->%lu] utg%.6d%c(%c)\n", __func__, i, (int32_t)(g->seq.a[i].nid>>1)+1, 
            "lc"[ug->u.a[g->seq.a[i].nid>>1].circ], "+-"[g->seq.a[i].nid&1]);
        }
        for (i = 0; i < g->arc.n; i++) {
            v = g->arc.a[i].ul>>32; w = g->arc.a[i].v;
            if(v&1) continue;
            v = g->seq.a[v>>1].nid; w = g->seq.a[w>>1].nid;
            fprintf(stderr, "Arch::[M::%s::w->%u] utg%.6d%c(%c)<nid::%lu> -> utg%.6d%c(%c)<nid::%u>\n", __func__, (uint32_t)g->arc.a[i].ul, 
            (int32_t)(v>>1)+1, "lc"[ug->u.a[v>>1].circ], "+-"[v&1], g->arc.a[i].ul>>33, 
            (int32_t)(w>>1)+1, "lc"[ug->u.a[w>>1].circ], "+-"[w&1], g->arc.a[i].v>>1);
        }
        for (i = 0; i < g->seq.n; i++) {
            fprintf(stderr, "Srt::[M::%s::i->%lu] utg%.6d%c(%c)<nid::%u>\n", __func__, i, 
            (int32_t)(g->seq.a[g->srt_b.res.a[i]].nid>>1)+1, 
            "lc"[ug->u.a[g->seq.a[g->srt_b.res.a[i]].nid>>1].circ], "+-"[g->seq.a[g->srt_b.res.a[i]].nid&1], g->srt_b.res.a[i]);
        }
    } else {
        char name[32];
        for (i = 0; i < g->seq.n; i++) {
            sprintf(name, "dtg%.6d", (int)i);
            fprintf(stderr, "S\t%s\t*\tLN:i:%u\trd:i:utg%.6d%c(%c)\n", name, g->srt_b.res2nid.a[i],
            (int32_t)(g->seq.a[i].nid>>1)+1, "lc"[ug->u.a[g->seq.a[i].nid>>1].circ], "+-"[g->seq.a[i].nid&1]);
        }
        uint32_t u, nu, j; poa_arc_t *au;
        for (i = 0; i < g->seq.n; ++i) {
            u = i<<1;
            au = poa_arc_a(g, u); nu = poa_arc_n(g, u);
            for (j = 0; j < nu; j++) {
                v = au[j].v;
                fprintf(stderr, "L\tdtg%.6d\t%c\tdtg%.6d\t%c\t%dM\n", 
                (int)(u>>1), "+-"[u&1], (int)(v>>1), "+-"[v&1], asg_arc_len(au[j]));
            }

            u = (i<<1) + 1;
            au = poa_arc_a(g, u); nu = poa_arc_n(g, u);
            for (j = 0; j < nu; j++) {
                v = au[j].v;
                fprintf(stderr, "L\tdtg%.6d\t%c\tdtg%.6d\t%c\t%dM\n", 
                (int)(u>>1), "+-"[u&1], (int)(v>>1), "+-"[v&1], asg_arc_len(au[j]));
            }
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xa8, %rsp
movq %rdi, -0x20(%rbp)
movq %rsi, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x32ad63
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x32aa99
movq 0x995e9(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rdx
movl 0x4(%rax,%rdx,8), %r8d
shrl %r8d
addl $0x1, %r8d
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rdx
movq 0x10(%rdx), %rdx
movq -0x38(%rbp), %rsi
movl 0x4(%rdx,%rsi,8), %edx
shrl %edx
movl %edx, %edx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x5a8ba(%rip), %rax     # 0x385303
movsbl (%rax,%rdx), %r9d
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rdx
movl 0x4(%rax,%rdx,8), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x5842f(%rip), %rax     # 0x382e9b
movsbl (%rax,%rdx), %eax
leaq 0x6c722(%rip), %rsi     # 0x397199
leaq 0x6c740(%rip), %rdx     # 0x3971be
movl %eax, (%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x32a9df
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x32ac59
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x32aafe
jmp 0x32ac48
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x40(%rbp), %rcx
shrq %rcx
movl 0x4(%rax,%rcx,8), %eax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x48(%rbp), %rcx
shrq %rcx
movl 0x4(%rax,%rcx,8), %eax
movq %rax, -0x48(%rbp)
movq 0x994ad(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl %eax, %ecx
movq -0x40(%rbp), %rax
shrq %rax
movl %eax, %r8d
addl $0x1, %r8d
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x40(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x5a781(%rip), %rax     # 0x385303
movsbl (%rax,%rdx), %r9d
movq -0x40(%rbp), %rdx
andq $0x1, %rdx
leaq 0x58305(%rip), %rax     # 0x382e9b
movsbl (%rax,%rdx), %r15d
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %r14
shrq $0x21, %r14
movq -0x48(%rbp), %rax
shrq %rax
movl %eax, %ebx
addl $0x1, %ebx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x48(%rbp), %rdx
shrq %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x5a71c(%rip), %rax     # 0x385303
movsbl (%rax,%rdx), %r11d
movq -0x48(%rbp), %rdx
andq $0x1, %rdx
leaq 0x582a0(%rip), %rax     # 0x382e9b
movsbl (%rax,%rdx), %r10d
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x38(%rbp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movl 0x8(%rax), %eax
shrl %eax
leaq 0x6c5af(%rip), %rsi     # 0x3971ce
leaq 0x6c598(%rip), %rdx     # 0x3971be
movl %r15d, (%rsp)
movq %r14, 0x8(%rsp)
movl %ebx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x32aaa1
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x32ad5e
movq 0x99367(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rdx
movq 0x90(%rdx), %rdx
movq -0x38(%rbp), %rsi
movl (%rdx,%rsi,4), %edx
movl 0x4(%rax,%rdx,8), %r8d
shrl %r8d
addl $0x1, %r8d
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rdx
movq 0x10(%rdx), %rdx
movq -0x20(%rbp), %rsi
movq 0x90(%rsi), %rsi
movq -0x38(%rbp), %r9
movl (%rsi,%r9,4), %esi
movl 0x4(%rdx,%rsi,8), %edx
shrl %edx
movl %edx, %edx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x5a61b(%rip), %rax     # 0x385303
movsbl (%rax,%rdx), %r9d
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rdx
movq 0x90(%rdx), %rdx
movq -0x38(%rbp), %rsi
movl (%rdx,%rsi,4), %edx
movl 0x4(%rax,%rdx,8), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
leaq 0x58182(%rip), %rax     # 0x382e9b
movsbl (%rax,%rdx), %r10d
movq -0x20(%rbp), %rax
movq 0x90(%rax), %rax
movq -0x38(%rbp), %rdx
movl (%rax,%rdx,4), %eax
leaq 0x6c4df(%rip), %rsi     # 0x397216
leaq 0x6c480(%rip), %rdx     # 0x3971be
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x32ac61
jmp 0x32b045
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x32ae49
leaq -0x70(%rbp), %rdi
movq -0x38(%rbp), %rax
movl %eax, %edx
leaq 0x6c4b6(%rip), %rsi     # 0x397243
movb $0x0, %al
callq 0x2050
movq 0x99245(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
leaq -0x70(%rbp), %rdx
movq -0x20(%rbp), %rax
movq 0xa8(%rax), %rax
movq -0x38(%rbp), %rcx
movl (%rax,%rcx,4), %ecx
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rsi
movl 0x4(%rax,%rsi,8), %r8d
shrl %r8d
addl $0x1, %r8d
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x20(%rbp), %rsi
movq 0x10(%rsi), %rsi
movq -0x38(%rbp), %r9
movl 0x4(%rsi,%r9,8), %esi
shrl %esi
movl %esi, %esi
imulq $0x28, %rsi, %rsi
addq %rsi, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0x5a503(%rip), %rax     # 0x385303
movsbl (%rax,%rsi), %r9d
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rsi
movl 0x4(%rax,%rsi,8), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0x58078(%rip), %rax     # 0x382e9b
movsbl (%rax,%rsi), %eax
leaq 0x6c41d(%rip), %rsi     # 0x39724b
movl %eax, (%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x32ad6b
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x32b043
movq -0x38(%rbp), %rax
shlq %rax
movl %eax, -0x74(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x40(%rcx), %rcx
movl -0x74(%rbp), %edx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x88(%rbp)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x74(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl %eax, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
cmpl -0x78(%rbp), %eax
jae 0x32af47
movq -0x88(%rbp), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq %rax, -0x40(%rbp)
movq 0x99107(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
movl -0x74(%rbp), %edx
shrl %edx
movl -0x74(%rbp), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x57fa9(%rip), %rax     # 0x382e9b
movsbl (%rax,%rcx), %ecx
movq -0x40(%rbp), %rax
shrq %rax
movl %eax, %r8d
movq -0x40(%rbp), %rsi
andq $0x1, %rsi
leaq 0x57f8c(%rip), %rax     # 0x382e9b
movsbl (%rax,%rsi), %r9d
movq -0x88(%rbp), %rax
movl -0x7c(%rbp), %esi
shlq $0x4, %rsi
addq %rsi, %rax
movq (%rax), %rax
leaq 0x6c33f(%rip), %rsi     # 0x39726e
movl %eax, (%rsp)
movb $0x0, %al
callq 0x22a0
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x32aeae
movq -0x38(%rbp), %rax
shlq %rax
addq $0x1, %rax
movl %eax, -0x74(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x20(%rbp), %rcx
movq 0x40(%rcx), %rcx
movl -0x74(%rbp), %edx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x88(%rbp)
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movl -0x74(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl %eax, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
cmpl -0x78(%rbp), %eax
jae 0x32b030
movq -0x88(%rbp), %rax
movl -0x7c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq %rax, -0x40(%rbp)
movq 0x9901e(%rip), %rax     # 0x3c3fe0
movq (%rax), %rdi
movl -0x74(%rbp), %edx
shrl %edx
movl -0x74(%rbp), %eax
andl $0x1, %eax
movl %eax, %eax
movl %eax, %ecx
leaq 0x57ec0(%rip), %rax     # 0x382e9b
movsbl (%rax,%rcx), %ecx
movq -0x40(%rbp), %rax
shrq %rax
movl %eax, %r8d
movq -0x40(%rbp), %rsi
andq $0x1, %rsi
leaq 0x57ea3(%rip), %rax     # 0x382e9b
movsbl (%rax,%rsi), %r9d
movq -0x88(%rbp), %rax
movl -0x7c(%rbp), %esi
shlq $0x4, %rsi
addq %rsi, %rax
movq (%rax), %rax
leaq 0x6c256(%rip), %rsi     # 0x39726e
movl %eax, (%rsp)
movb $0x0, %al
callq 0x22a0
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x32af97
jmp 0x32b032
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x32ae51
jmp 0x32b045
addq $0xa8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)