// File: /workspace/github_cpp_makefile_star2_O1/chhylp123[P]hifiasm/inter.cpp
// Function: clean_contain_g(ug_opt_t const*, asg_t*, unsigned int)
uint32_t clean_contain_g(const ug_opt_t *uopt, asg_t *sg, uint32_t push_trans)
{
	mg_idxopt_t opt; uldat_t sl; int32_t cutoff, f = 0;
	init_aux_table(); ha_opt_update_cov(&asm_opt, asm_opt.hom_cov);
	cutoff = asm_opt.max_n_chain;
	init_mg_opt(&opt, !(asm_opt.flag&HA_F_NO_HPC), 19, 10, cutoff, asm_opt.max_n_chain, asm_opt.ul_error_rate, asm_opt.ul_error_rate, asm_opt.ul_error_rate_low, asm_opt.ul_error_rate_hpc, asm_opt.ul_ec_round);
	init_uldat_t(&sl, NULL, NULL, &opt, CHUNK_SIZE, asm_opt.thread_num, uopt, NULL); sl.rg = sg;
	
	if(push_trans) repush_contain_trans_archs(&sl);
	if(work_ul_gchains_consensus(&sl)) {
		free(UL_INF.ridx.idx.a); free(UL_INF.ridx.occ.a); memset(&(UL_INF.ridx), 0, sizeof(UL_INF.ridx));
		gen_ul_vec_rid_t(&UL_INF, &R_INF, NULL);
		// fprintf(stderr, "+[M::%s::]\n", __func__);
		kt_for(sl.n_thread, update_ovlp_src, &sl, R_INF.total_reads);
		// fprintf(stderr, "-[M::%s::]\n", __func__);
		kt_for(sl.n_thread, update_ovlp_src_bl, &sl, R_INF.total_reads);
		clean_contain_g0(&sl);
		f = 1;
	}
	if(push_trans) asg_arc_del_trans_ul(sg, sl.uopt->gap_fuzz);
	return f;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movl %edx, 0x4(%rsp)
movq %rsi, %rbp
movq %rdi, %r14
callq 0x3366f
leaq 0x26242b(%rip), %r15    # 0x28a758
movl 0xd0(%r15), %esi
movq %r15, %rdi
callq 0x2f59
movl (%r15), %eax
movl 0xe8(%r15), %ecx
notl %eax
andl $0x1, %eax
movsd 0x228(%r15), %xmm0
movups 0x230(%r15), %xmm1
movl 0x240(%r15), %edx
movabsq $0x130000000a, %rsi     # imm = 0x130000000A
leaq 0xf0(%rsp), %r13
movq %rsi, (%r13)
movl %ecx, 0x14(%r13)
movl %eax, 0x10(%r13)
movabsq $0x7a12000002710, %rax  # imm = 0x7A12000002710
movq %rax, 0x8(%r13)
movabsq $0x271000000014, %rax   # imm = 0x271000000014
movq %rax, 0x18(%r13)
movabsq $0x3f0000003e428f5c, %rax # imm = 0x3F0000003E428F5C
movq %rax, 0x50(%r13)
movabsq $0x271000000019, %rax   # imm = 0x271000000019
movq %rax, 0x28(%r13)
movaps 0x20b480(%rip), %xmm2   # 0x233840
movups %xmm2, 0x30(%r13)
movabsq $0xb00000005, %rax      # imm = 0xB00000005
movq %rax, 0x20(%r13)
movaps 0x20b476(%rip), %xmm2   # 0x233850
movups %xmm2, 0x40(%r13)
movl $0x3f4ccccd, 0x58(%r13) # imm = 0x3F4CCCCD
movl %ecx, 0x80(%r13)
movsd %xmm0, 0x60(%r13)
movsd %xmm0, 0x68(%r13)
movups %xmm1, 0x70(%r13)
movl %edx, 0x84(%r13)
movslq 0x7c(%r15), %rbx
leaq 0x8(%rsp), %r12
xorl %r15d, %r15d
movl $0xe8, %edx
movq %r12, %rdi
xorl %esi, %esi
callq 0x20e0
movq %r13, 0x10(%r12)
movq $0x3b9aca00, 0x50(%r12) # imm = 0x3B9ACA00
movq %rbx, 0x58(%r12)
movq %rbp, %rbx
movl 0x4(%rsp), %ebp
andq $0x0, 0x30(%r12)
movq %r14, 0x28(%r12)
movq %rbx, 0x20(%r12)
testl %ebp, %ebp
je 0x28459
leaq 0x8(%rsp), %rdi
callq 0x1dcde3
leaq 0x8(%rsp), %rdi
callq 0x25f2c
testq %rax, %rax
jne 0x28491
testl %ebp, %ebp
je 0x2847c
movq 0x30(%rsp), %rax
movl 0x50(%rax), %esi
movq %rbx, %rdi
callq 0xa8e5b
movl %r15d, %eax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x262e80(%rip), %r14    # 0x28b318
movq 0x28(%r14), %rdi
callq 0x2220
movq 0x40(%r14), %rdi
callq 0x2220
xorps %xmm0, %xmm0
movups %xmm0, 0x38(%r14)
movups %xmm0, 0x28(%r14)
movups %xmm0, 0x18(%r14)
leaq 0x262d6d(%rip), %r15    # 0x28b230
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x1d6bbe
leaq 0x8(%rsp), %r14
movl 0x58(%r14), %edi
movq 0x50(%r15), %rcx
leaq 0x1b3f7e(%rip), %rsi    # 0x1dc462
movq %r14, %rdx
callq 0x1047b4
movl 0x58(%r14), %edi
movq 0x50(%r15), %rcx
leaq 0x1b4017(%rip), %rsi    # 0x1dc512
movq %r14, %rdx
callq 0x1047b4
movq %r14, %rdi
callq 0x281be
pushq $0x1
popq %r15
jmp 0x28468