// File: chhylp123[P]hifiasm/inter.cpp
// Function: prt_split_ovs(overlap_region_alloc*, ma_ug_t*, unsigned long, unsigned long, char const*)
void prt_split_ovs(overlap_region_alloc* ol, ma_ug_t *ug, uint64_t ol_h, uint64_t ol_l, const char* cmd)
{
	uint64_t k; overlap_region *z;
	fprintf(stderr, "[M::%s] %s\tol->length::%lu, ol_h::%lu, ol_l::%lu\n", __func__, cmd, ol->length, ol_h, ol_l);
	// assert((ol_h+ol_l) == ol->length);
	for (k = 0; k < ol_h; k++) {
		z = &(ol->list[k]);
		fprintf(stderr, "oh->[%s]\tutg%.6u%c\t%u\t%u\t%u\t%c\tutg%.6u%c\t%u\t%u\t%u\twn::%u\taln::%u\ted::%u\n", cmd, 
				z->x_id+1, "lc"[ug->u.a[z->x_id].circ], ug->u.a[z->x_id].len, 
				z->x_pos_s, z->x_pos_e+1, "+-"[z->y_pos_strand],
				z->y_id+1, "lc"[ug->u.a[z->y_id].circ], ug->u.a[z->y_id].len, 
				z->y_pos_s, z->y_pos_e+1, (uint32_t)z->w_list.n, z->align_length, z->non_homopolymer_errors);
	}

	for (; k < ol->length; k++) {
		z = &(ol->list[k]);
		fprintf(stderr, "ol->[%s]\tutg%.6u%c\t%u\t%u\t%u\t%c\tutg%.6u%c\t%u\t%u\t%u\twn::%u\taln::%u\ted::%u\n", cmd, 
				z->x_id+1, "lc"[ug->u.a[z->x_id].circ], ug->u.a[z->x_id].len, 
				z->x_pos_s, z->x_pos_e+1, "+-"[z->y_pos_strand],
				z->y_id+1, "lc"[ug->u.a[z->y_id].circ], ug->u.a[z->y_id].len, 
				z->y_pos_s, z->y_pos_e+1, (uint32_t)z->w_list.n, z->align_length, z->non_homopolymer_errors);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdi, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq %rdx, -0x40(%rbp)
movq %rcx, -0x48(%rbp)
movq %r8, -0x50(%rbp)
movq 0x1061b1(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rax
movq 0x10(%rax), %r8
movq -0x40(%rbp), %r9
movq -0x48(%rbp), %rax
leaq 0xd49ec(%rip), %rsi     # 0x392839
leaq 0xd4a17(%rip), %rdx     # 0x39286b
movq %rax, (%rsp)
movb $0x0, %al
callq 0x22a0
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0x2bdffa
movq -0x30(%rbp), %rax
movq (%rax), %rax
imulq $0xa8, -0x58(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq 0x10614e(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x50(%rbp), %rdx
movq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rsi
movl (%rsi), %esi
imulq $0x28, %rsi, %rsi
addq %rsi, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0xc743c(%rip), %rax     # 0x385303
movsbl (%rax,%rsi), %r8d
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rsi
movl (%rsi), %esi
imulq $0x28, %rsi, %rsi
addq %rsi, %rax
movl (%rax), %r9d
andl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
movq -0x60(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x60(%rbp), %rsi
movl 0x8(%rsi), %esi
addl $0x1, %esi
movl %esi, -0x6c(%rbp)
movq -0x60(%rbp), %rsi
movl 0x1c(%rsi), %esi
movl %esi, %r10d
leaq 0xc4f8b(%rip), %rsi     # 0x382e9b
movsbl (%rsi,%r10), %esi
movl %esi, -0x68(%rbp)
movq -0x60(%rbp), %rsi
movl 0x10(%rsi), %r13d
addl $0x1, %r13d
movq -0x38(%rbp), %rsi
movq 0x10(%rsi), %rsi
movq -0x60(%rbp), %r10
movl 0x10(%r10), %r10d
imulq $0x28, %r10, %r10
addq %r10, %rsi
movl (%rsi), %esi
shrl $0x1f, %esi
movl %esi, %esi
movl %esi, %r10d
leaq 0xc73b7(%rip), %rsi     # 0x385303
movsbl (%rsi,%r10), %r12d
movq -0x38(%rbp), %rsi
movq 0x10(%rsi), %rsi
movq -0x60(%rbp), %r10
movl 0x10(%r10), %r10d
imulq $0x28, %r10, %r10
addq %r10, %rsi
movl (%rsi), %r15d
andl $0x7fffffff, %r15d      # imm = 0x7FFFFFFF
movq -0x60(%rbp), %rsi
movl 0x14(%rsi), %r14d
movq -0x60(%rbp), %rsi
movl 0x18(%rsi), %ebx
addl $0x1, %ebx
movq -0x60(%rbp), %rsi
movq 0x48(%rsi), %rsi
movl %esi, %r11d
movq -0x60(%rbp), %rsi
movl 0x28(%rsi), %r10d
movq -0x60(%rbp), %rsi
movl 0x30(%rsi), %esi
movl %esi, -0x64(%rbp)
leaq 0xd48d1(%rip), %rsi     # 0x392879
movl %eax, (%rsp)
movl -0x6c(%rbp), %eax
movl %eax, 0x8(%rsp)
movl -0x68(%rbp), %eax
movl %eax, 0x10(%rsp)
movl -0x64(%rbp), %eax
movl %r13d, 0x18(%rsp)
movl %r12d, 0x20(%rsp)
movl %r15d, 0x28(%rsp)
movl %r14d, 0x30(%rsp)
movl %ebx, 0x38(%rsp)
movl %r11d, 0x40(%rsp)
movl %r10d, 0x48(%rsp)
movl %eax, 0x50(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x2bde67
jmp 0x2bdffc
movq -0x58(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x2be193
movq -0x30(%rbp), %rax
movq (%rax), %rax
imulq $0xa8, -0x58(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq 0x105fb5(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x50(%rbp), %rdx
movq -0x60(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rsi
movl (%rsi), %esi
imulq $0x28, %rsi, %rsi
addq %rsi, %rax
movl (%rax), %eax
shrl $0x1f, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0xc72a3(%rip), %rax     # 0x385303
movsbl (%rax,%rsi), %r8d
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x60(%rbp), %rsi
movl (%rsi), %esi
imulq $0x28, %rsi, %rsi
addq %rsi, %rax
movl (%rax), %r9d
andl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
movq -0x60(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x60(%rbp), %rsi
movl 0x8(%rsi), %esi
addl $0x1, %esi
movl %esi, -0x78(%rbp)
movq -0x60(%rbp), %rsi
movl 0x1c(%rsi), %esi
movl %esi, %r10d
leaq 0xc4df2(%rip), %rsi     # 0x382e9b
movsbl (%rsi,%r10), %esi
movl %esi, -0x74(%rbp)
movq -0x60(%rbp), %rsi
movl 0x10(%rsi), %r13d
addl $0x1, %r13d
movq -0x38(%rbp), %rsi
movq 0x10(%rsi), %rsi
movq -0x60(%rbp), %r10
movl 0x10(%r10), %r10d
imulq $0x28, %r10, %r10
addq %r10, %rsi
movl (%rsi), %esi
shrl $0x1f, %esi
movl %esi, %esi
movl %esi, %r10d
leaq 0xc721e(%rip), %rsi     # 0x385303
movsbl (%rsi,%r10), %r12d
movq -0x38(%rbp), %rsi
movq 0x10(%rsi), %rsi
movq -0x60(%rbp), %r10
movl 0x10(%r10), %r10d
imulq $0x28, %r10, %r10
addq %r10, %rsi
movl (%rsi), %r15d
andl $0x7fffffff, %r15d      # imm = 0x7FFFFFFF
movq -0x60(%rbp), %rsi
movl 0x14(%rsi), %r14d
movq -0x60(%rbp), %rsi
movl 0x18(%rsi), %ebx
addl $0x1, %ebx
movq -0x60(%rbp), %rsi
movq 0x48(%rsi), %rsi
movl %esi, %r11d
movq -0x60(%rbp), %rsi
movl 0x28(%rsi), %r10d
movq -0x60(%rbp), %rsi
movl 0x30(%rsi), %esi
movl %esi, -0x70(%rbp)
leaq 0xd4781(%rip), %rsi     # 0x3928c2
movl %eax, (%rsp)
movl -0x78(%rbp), %eax
movl %eax, 0x8(%rsp)
movl -0x74(%rbp), %eax
movl %eax, 0x10(%rsp)
movl -0x70(%rbp), %eax
movl %r13d, 0x18(%rsp)
movl %r12d, 0x20(%rsp)
movl %r15d, 0x28(%rsp)
movl %r14d, 0x30(%rsp)
movl %ebx, 0x38(%rsp)
movl %r11d, 0x40(%rsp)
movl %r10d, 0x48(%rsp)
movl %eax, 0x50(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x2bdffc
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)