// File: /workspace/github_cpp_makefile_star2_O1/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 %r12
pushq %rbx
movl %edx, %ebp
movl %esi, %r14d
movl %edi, %r15d
movl $0x1, %r12d
movl $0x1, %edi
movl $0x12340, %esi          # imm = 0x12340
callq 0x2120
movq %rax, %rbx
xorl %eax, %eax
testl %r15d, %r15d
setne %al
movl %eax, (%rbx)
xorl %eax, %eax
testl %r14d, %r14d
setne %al
movl %eax, 0x4(%rbx)
leaq 0x8(%rbx), %rdi
callq 0x3372c
leaq 0x28(%rbx), %rdi
callq 0x3372c
leaq 0x48(%rbx), %rdi
callq 0x3fcfd
leaq 0xa0(%rbx), %rdi
callq 0x3dab1
leaq 0xc0(%rbx), %rdi
callq 0x3dab1
leaq 0x121d8(%rbx), %rdi
callq 0x3db21
xorps %xmm0, %xmm0
movups %xmm0, 0x12208(%rbx)
movups %xmm0, 0x121f8(%rbx)
movups %xmm0, 0x121e8(%rbx)
movl $0x1, %edi
movl $0x20, %esi
callq 0x2120
movq %rax, 0x121f8(%rbx)
movq %r12, 0x121f0(%rbx)
movq %r12, 0x121e8(%rbx)
leaq 0x12250(%rbx), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, 0x12140(%rbx)
xorl %eax, %eax
movq %rax, 0x12150(%rbx)
movaps %xmm0, 0x12160(%rbx)
movq %rax, 0x12170(%rbx)
movaps %xmm0, 0x12180(%rbx)
movq %rax, 0x12190(%rbx)
movl $0xf0, %edx
xorl %esi, %esi
callq 0x20e0
cmpl $0x7e, 0x122a4(%rbx)
jg 0x3945c
movl $0x30, 0x122a4(%rbx)
cmpl $0x2f, 0x122a0(%rbx)
ja 0x39452
movq 0x122a8(%rbx), %rdi
movl $0x180, %esi            # imm = 0x180
callq 0x2370
movq %rax, 0x122a8(%rbx)
movl 0x122a4(%rbx), %edx
movl $0xaaaaaaab, %ecx       # imm = 0xAAAAAAAB
imulq %rdx, %rcx
movq %rcx, %rdx
shrq $0x20, %rdx
shrq $0x23, %rcx
movl %ecx, 0x122a4(%rbx)
movq %rax, 0x122b0(%rbx)
andl $-0x8, %edx
leaq (%rax,%rdx), %rsi
movq %rsi, 0x122b8(%rbx)
leal (%rcx,%rcx), %esi
leaq (%rax,%rsi,8), %rdi
movq %rdi, 0x122c0(%rbx)
leal (%rcx,%rcx,2), %edi
leaq (%rax,%rdi,8), %rdi
movq %rdi, 0x122c8(%rbx)
leal (,%rcx,4), %edi
leaq (%rax,%rdi,8), %r8
movq %r8, 0x122d0(%rbx)
leal (%rcx,%rcx,4), %r8d
leaq (%rax,%r8,8), %r9
movq %r9, 0x122d8(%rbx)
leal (%rsi,%rsi,2), %r9d
leaq (%rax,%r9,8), %r9
movq %r9, 0x122e0(%rbx)
leal (,%rcx,8), %r9d
subl %ecx, %r9d
leaq (%rax,%r9,8), %r9
movq %r9, 0x122e8(%rbx)
leaq (%rax,%rdx,8), %rdx
movq %rdx, 0x122f0(%rbx)
leal (%rcx,%rcx,8), %edx
leaq (%rax,%rdx,8), %rdx
movq %rdx, 0x122f8(%rbx)
leal (%rsi,%rsi,4), %edx
leaq (%rax,%rdx,8), %rdx
movq %rdx, 0x12300(%rbx)
leal (%rcx,%r8,2), %edx
leaq (%rax,%rdx,8), %rax
movq %rax, 0x12308(%rbx)
leal (%rdi,%rdi,2), %eax
movl %eax, 0x122a0(%rbx)
movl %ecx, 0x1229c(%rbx)
movl $0x7f, 0x122a4(%rbx)
testl %ebp, %ebp
je 0x3946e
callq 0x122a80
movq %rax, 0xe8(%rbx)
jmp 0x3947a
callq 0x122988
movq %rax, 0xe0(%rbx)
cmpl $0x0, (%rbx)
jne 0x395c1
leaq 0x108(%rbx), %rdi
callq 0x480dc
leaq 0x148(%rbx), %rdi
callq 0x4527c
leaq 0x200(%rbx), %rdi
callq 0x4527c
leaq 0x2c0(%rbx), %rdi
callq 0x4808b
xorl %r14d, %r14d
movl %r14d, 0x9208(%rbx)
movl %r14d, 0x9218(%rbx)
movq %r14, 0x9210(%rbx)
movl %r14d, 0x9228(%rbx)
movq %r14, 0x9220(%rbx)
movaps 0x1eb6e0(%rip), %xmm0   # 0x224bc0
movups %xmm0, 0x9048(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x9258(%rbx)
movups %xmm0, 0x9264(%rbx)
movups %xmm0, 0x9278(%rbx)
movq %r14, 0x9288(%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)
xorps %xmm0, %xmm0
movups %xmm0, 0x9298(%rbx)
movups %xmm0, 0x92a4(%rbx)
movups %xmm0, 0x92b8(%rbx)
movl %r14d, 0x92c8(%rbx)
movups %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 0x4801b
movq %rbx, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq