// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/Assembly.cpp
// Function: ha_ovec_init(int, int, int)
ha_ovec_buf_t *ha_ovec_init(int is_final, int save_ov, int is_ug)
{
	ha_ovec_buf_t *b;
	CALLOC(b, 1);
	b->is_final = !!is_final, b->save_ov = !!save_ov;
	init_UC_Read(&b->self_read);
	init_UC_Read(&b->ovlp_read);
	init_Candidates_list(&b->clist);
	init_overlap_region_alloc(&b->olist);
    init_overlap_region_alloc(&b->olist_hp);
    init_fake_cigar(&(b->tmp_region.f_cigar));
    memset(&(b->tmp_region.w_list), 0, sizeof(b->tmp_region.w_list));
    CALLOC(b->tmp_region.w_list.a, 1); b->tmp_region.w_list.n = b->tmp_region.w_list.m = 1;
    kv_init(b->b_buf.a);
    kv_init(b->r_buf.a);
    kv_init(b->k_flag.a);
    kv_init(b->sp);
    init_bit_extz_t(&(b->exz), 31);
	if(!is_ug) b->ab = ha_abuf_init();
    else b->abl = ha_abufl_init();
	if (!b->is_final) {
		init_Cigar_record(&b->cigar1);
		init_Graph(&b->POA_Graph);
		init_Graph(&b->DAGCon);
		init_Correct_dumy(&b->correct);
		InitHaplotypeEvdience(&b->hap);
		init_Round2_alignment(&b->round2);
	}
	return b;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, 0x4(%rsp)
movl %esi, %r14d
movl %edi, %r15d
movl $0x1, %edi
movl $0x12340, %esi          # imm = 0x12340
callq 0x2120
movq %rax, %rbx
movd %r14d, %xmm0
movd %r15d, %xmm1
punpckldq %xmm0, %xmm1    # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
pxor %xmm0, %xmm0
pcmpeqd %xmm0, %xmm1
pandn 0x1f8397(%rip), %xmm1   # 0x230bd0
movq %xmm1, (%rax)
leaq 0x8(%rax), %rdi
callq 0x32e2d
leaq 0x28(%rbx), %rdi
callq 0x32e2d
leaq 0x48(%rbx), %rdi
callq 0x3f19e
movl $0xa0, %r12d
leaq (%rbx,%r12), %rdi
callq 0x3cf92
movl $0xc0, %ebp
leaq (%rbx,%rbp), %rdi
callq 0x3cf92
leaq 0x121d8(%rbx), %rdi
callq 0x3d002
xorl %r13d, %r13d
movq %r13, 0x12210(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x12200(%rbx)
movl $0x1, %edi
movl $0x20, %esi
callq 0x2120
movq %rax, 0x121f8(%rbx)
movl $0x1, %eax
movq %rax, 0x121f0(%rbx)
movq %rax, 0x121e8(%rbx)
leaq 0x12250(%rbx), %r15
movl $0x180, %edi            # imm = 0x180
callq 0x2280
movq %rax, %r14
pxor %xmm0, %xmm0
movdqa %xmm0, 0x12140(%rbx)
movq %r13, 0x12150(%rbx)
movdqa %xmm0, 0x12160(%rbx)
movq %r13, 0x12170(%rbx)
movdqa %xmm0, 0x12180(%rbx)
movq %r13, 0x12190(%rbx)
movl $0xf0, %edx
movq %r15, %rdi
xorl %esi, %esi
callq 0x20e0
movq %r14, 0x122a8(%rbx)
movq %r14, 0x122b0(%rbx)
leaq 0x20(%r14), %rax
movq %rax, 0x122b8(%rbx)
leaq 0x40(%r14), %rax
movq %rax, 0x122c0(%rbx)
leaq 0x60(%r14), %rax
movq %rax, 0x122c8(%rbx)
leaq 0x80(%r14), %rax
movq %rax, 0x122d0(%rbx)
addq %r14, %r12
movq %r12, 0x122d8(%rbx)
addq %r14, %rbp
movq %rbp, 0x122e0(%rbx)
leaq 0xe0(%r14), %rax
movq %rax, 0x122e8(%rbx)
leaq 0x100(%r14), %rax
movq %rax, 0x122f0(%rbx)
leaq 0x120(%r14), %rax
movq %rax, 0x122f8(%rbx)
leaq 0x140(%r14), %rax
movq %rax, 0x12300(%rbx)
addq $0x160, %r14            # imm = 0x160
movq %r14, 0x12308(%rbx)
movabsq $0x3000000004, %rax     # imm = 0x3000000004
movq %rax, 0x1229c(%rbx)
movl $0x7f, 0x122a4(%rbx)
cmpl $0x0, 0x4(%rsp)
je 0x389db
callq 0x128954
movq %rax, 0xe8(%rbx)
jmp 0x389e7
callq 0x12885c
movq %rax, 0xe0(%rbx)
cmpl $0x0, (%rbx)
jne 0x38b39
leaq 0x108(%rbx), %rdi
callq 0x476d0
leaq 0x148(%rbx), %rdi
callq 0x448bf
leaq 0x200(%rbx), %rdi
callq 0x448bf
leaq 0x2c0(%rbx), %rdi
callq 0x4767f
xorl %r14d, %r14d
movl %r14d, 0x9208(%rbx)
movl %r14d, 0x9218(%rbx)
movq %r14, 0x9210(%rbx)
movl %r14d, 0x9228(%rbx)
movq %r14, 0x9220(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x9258(%rbx)
movdqu %xmm0, 0x9264(%rbx)
movdqu %xmm0, 0x9278(%rbx)
movq %r14, 0x9288(%rbx)
movdqa 0x1f816f(%rip), %xmm0   # 0x230be0
movdqu %xmm0, 0x9048(%rbx)
movl $0x64, %edi
movl $0x18, %esi
callq 0x2120
movq %rax, 0x9040(%rbx)
leaq 0x9058(%rbx), %rdi
movl $0x1ac, %edx            # imm = 0x1AC
xorl %esi, %esi
callq 0x20e0
movl %r14d, 0x9290(%rbx)
pxor %xmm0, %xmm0
movdqu %xmm0, 0x9298(%rbx)
movdqu %xmm0, 0x92a4(%rbx)
movdqu %xmm0, 0x92b8(%rbx)
movl %r14d, 0x92c8(%rbx)
movdqu %xmm0, 0x92d0(%rbx)
movq $-0x1, 0x9300(%rbx)
movq %r14, 0x9318(%rbx)
movq $0x3e8, 0x9310(%rbx) # imm = 0x3E8
movl $0xfa0, %edi            # imm = 0xFA0
callq 0x2280
movq %rax, 0x9320(%rbx)
movq %r14, 0x92f8(%rbx)
movq $0xa, 0x92f0(%rbx)
movl $0xa, %edi
movl $0x1c, %esi
callq 0x2120
movq %rax, 0x9308(%rbx)
movq %rbx, %rdi
addq $0x9330, %rdi           # imm = 0x9330
callq 0x4760f
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq