// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/inter.cpp
// Function: gen_contig_trans(ug_opt_t const*, asg_t*, ma_ug_t*, scaf_res_t*, ma_ug_t*, scaf_res_t*, ma_ug_t*, kv_u_trans_t*, unsigned int, unsigned int, bubble_type*, kv_u_trans_t*)
void gen_contig_trans(const ug_opt_t *uopt, asg_t *sg, ma_ug_t *qry, scaf_res_t *qry_sc, ma_ug_t *ref, scaf_res_t *ref_sc, ma_ug_t *gfa, kv_u_trans_t *ta, uint32_t qoff, uint32_t toff, bubble_type *bu, kv_u_trans_t *res)
{
	mg_idxopt_t opt; uldat_t sl; int32_t cutoff; 
	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);
	ul_idx_t *uu = gen_ul_idx_t_sc(ref, sg, ref_sc, gfa->u.n);
	init_uldat_t(&sl, NULL, NULL, &opt, CHUNK_SIZE, asm_opt.thread_num, uopt, uu); sl.rg = sg; sl.ug = qry;

	work_ctg_path_trans(&sl, sg, qry, qry_sc, ref, ref_sc, gfa, ta, qoff, toff, bu, res); uu->ug = NULL;
	destroy_ul_idx_t(uu);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %r9, %r14
movq %r8, %r12
movq %r8, 0x30(%rsp)
movq %rcx, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq %rsi, %rbp
movq %rdi, 0x38(%rsp)
movq 0x200(%rsp), %r13
callq 0x32d70
leaq 0x26d8f1(%rip), %r15    # 0x295758
movl 0xd0(%r15), %esi
movq %r15, %rdi
callq 0x2f59
movl (%r15), %eax
movl 0xe8(%r15), %ecx
notl %eax
andl $0x1, %eax
movsd 0x238(%r15), %xmm0
movl 0x240(%r15), %edx
leaq 0x140(%rsp), %rbx
movl %ecx, 0x14(%rbx)
movl %eax, 0x10(%rbx)
movaps 0x217c66(%rip), %xmm1   # 0x23fb10
movaps %xmm1, (%rbx)
movaps 0x217bdc(%rip), %xmm1   # 0x23fa90
movups %xmm1, 0x28(%rbx)
movsd 0x217be0(%rip), %xmm1   # 0x23faa0
movsd %xmm1, 0x50(%rbx)
movaps 0x217be4(%rip), %xmm1   # 0x23fab0
movups %xmm1, 0x18(%rbx)
movaps 0x217be9(%rip), %xmm1   # 0x23fac0
movups %xmm1, 0x38(%rbx)
movabsq $0x500000006, %rax      # imm = 0x500000006
movq %rax, 0x48(%rbx)
movl $0x3f4ccccd, 0x58(%rbx) # imm = 0x3F4CCCCD
movl %ecx, 0x80(%rbx)
movups 0x228(%r15), %xmm1
movlps %xmm1, 0x60(%rbx)
movups %xmm1, 0x68(%rbx)
movsd %xmm0, 0x78(%rbx)
movl %edx, 0x84(%rbx)
movq (%r13), %rcx
movq %r12, %rdi
movq %rbp, %rsi
movq %rbp, %r13
movq %r14, %rdx
movq %r14, %r12
callq 0x1e61e9
movq %rax, %rbp
movslq 0x7c(%r15), %r14
leaq 0x88(%rsp), %r15
movl $0xb0, %edx
movq %r15, %rdi
xorl %esi, %esi
callq 0x20e0
xorps %xmm0, %xmm0
movaps %xmm0, -0x38(%r15)
movq %rbx, -0x28(%r15)
movq $0x3b9aca00, 0x18(%r15) # imm = 0x3B9ACA00
movq %r14, 0x20(%r15)
movq %rbp, -0x8(%r15)
movq 0x38(%rsp), %rax
movq %rax, -0x10(%r15)
movq %r13, -0x18(%r15)
movq 0x40(%rsp), %rdx
movq %rdx, -0x20(%r15)
movaps 0x220(%rsp), %xmm0
movups %xmm0, 0x20(%rsp)
movl 0x218(%rsp), %eax
movl %eax, 0x18(%rsp)
movl 0x210(%rsp), %eax
movl %eax, 0x10(%rsp)
movq 0x208(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x200(%rsp), %rax
movq %rax, (%rsp)
leaq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rcx
movq 0x30(%rsp), %r8
movq %r12, %r9
callq 0x24a91
andq $0x0, (%rbp)
movq %rbp, %rdi
callq 0x1e623f
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq