// File: chhylp123[P]hifiasm/rcut.cpp
// Function: debug_mc_g_t(mc_g_t*)
void debug_mc_g_t(mc_g_t *mg)
{
    fprintf(stderr, "0----------[M::%s]----------\n", __func__);
	mc_edge_t *o = NULL, *s = NULL;
	uint32_t i, k, n, cnt;
	for (i = 0; i < mg->e->n_seq; ++i) 
	{
		o = pt_a(*(mg->e), i); n = pt_n(*(mg->e), i);
		for (k = 0; k < n; ++k)
		{
			if(ma_x(o[k]) != i) fprintf(stderr, "ERROR-g\n");
			s = get_mc_edge(mg->e, ma_y(o[k]), ma_x(o[k]));
			if(!s) fprintf(stderr, "ERROR-e\n");
			if(s)
			{
				if(!(ma_x(*s) == ma_y(o[k]) && ma_y(*s) == ma_x(o[k]) && s->w == o[k].w))
				{
					fprintf(stderr, "ERROR-f\n");
				}
			}
		}

		for (k = cnt = 0; k < mg->e->ma.n; ++k)
		{
			if(ma_x(mg->e->ma.a[k]) == i) cnt++;
		}

		if(cnt != n) fprintf(stderr, "ERROR-h\n");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq 0x1a8f2d(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x172961(%rip), %rsi    # 0x38da1e
leaq 0x1729e3(%rip), %rdx    # 0x38daa7
movb $0x0, %al
callq 0x22a0
movq $0x0, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
cmpl 0x38(%rcx), %eax
jae 0x21b303
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x28(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
movq 0x10(%rcx), %rcx
movl -0x1c(%rbp), %edx
movq (%rcx,%rdx,8), %rcx
shrq $0x20, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rax
movl -0x1c(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl %eax, -0x24(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x24(%rbp), %eax
jae 0x21b279
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
movl -0x1c(%rbp), %ecx
cmpq %rcx, %rax
je 0x21b182
movq 0x1a8e6f(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x172939(%rip), %rsi    # 0x38dab4
movb $0x0, %al
callq 0x22a0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movl %eax, %esi
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
movl %eax, %edx
callq 0x219240
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x21b1dc
movq 0x1a8e15(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x1728e8(%rip), %rsi    # 0x38dabd
movb $0x0, %al
callq 0x22a0
cmpq $0x0, -0x18(%rbp)
je 0x21b269
movq -0x18(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
movq (%rcx), %rcx
movl %ecx, %ecx
cmpq %rcx, %rax
jne 0x21b24f
movq -0x18(%rbp), %rax
movq (%rax), %rax
movl %eax, %eax
movq -0x10(%rbp), %rcx
movl -0x20(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
movq (%rcx), %rcx
shrq $0x20, %rcx
cmpq %rcx, %rax
jne 0x21b24f
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movl -0x20(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
ucomisd 0x8(%rax), %xmm0
jne 0x21b24f
jp 0x21b24f
jmp 0x21b267
movq 0x1a8d8a(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x172866(%rip), %rsi    # 0x38dac6
movb $0x0, %al
callq 0x22a0
jmp 0x21b269
jmp 0x21b26b
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x21b141
movl $0x0, -0x28(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jae 0x21b2d3
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x28(%rax), %rax
movl -0x20(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
shrq $0x20, %rax
movl -0x1c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x21b2c6
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x21b2c8
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x21b287
movl -0x28(%rbp), %eax
cmpl -0x24(%rbp), %eax
je 0x21b2f3
movq 0x1a8cfe(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x1727e3(%rip), %rsi    # 0x38dacf
movb $0x0, %al
callq 0x22a0
jmp 0x21b2f5
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x21b0e2
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)