// File: 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
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl $0x1, %edi
movl $0x12340, %esi          # imm = 0x12340
callq 0x2140
movq %rax, -0x18(%rbp)
cmpl $0x0, -0x4(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
cmpl $0x0, -0x8(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x18(%rbp), %rdi
addq $0x8, %rdi
callq 0x9850
movq -0x18(%rbp), %rdi
addq $0x28, %rdi
callq 0x9850
movq -0x18(%rbp), %rdi
addq $0x48, %rdi
callq 0x23040
movq -0x18(%rbp), %rdi
addq $0xa0, %rdi
callq 0x1e000
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x1e000
movq -0x18(%rbp), %rdi
addq $0x121a0, %rdi          # imm = 0x121A0
addq $0x38, %rdi
callq 0x1e0c0
movq -0x18(%rbp), %rdi
addq $0x121a0, %rdi          # imm = 0x121A0
addq $0x48, %rdi
xorl %esi, %esi
movl $0x30, %edx
callq 0x2100
movl $0x1, %edi
movl $0x20, %esi
callq 0x2140
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x121f8(%rax)
movq -0x18(%rbp), %rax
movq $0x1, 0x121f0(%rax)
movq -0x18(%rbp), %rax
movq $0x1, 0x121e8(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12148(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12140(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12150(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12168(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12160(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12170(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12188(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12180(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12190(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12258(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12250(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x12260(%rax)
movq -0x18(%rbp), %rdi
addq $0x12268, %rdi          # imm = 0x12268
movl $0x1f, %esi
callq 0x1bfc0
cmpl $0x0, -0xc(%rbp)
jne 0x14e76
callq 0x1a0590
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0xe0(%rax)
jmp 0x14e89
callq 0x1a0740
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0xe8(%rax)
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x14ef2
movq -0x18(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
callq 0x31ec0
movq -0x18(%rbp), %rdi
addq $0x148, %rdi            # imm = 0x148
callq 0x2c270
movq -0x18(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
callq 0x2c270
movq -0x18(%rbp), %rdi
addq $0x2c0, %rdi            # imm = 0x2C0
callq 0x31df0
movq -0x18(%rbp), %rdi
addq $0x9040, %rdi           # imm = 0x9040
callq 0x1c310
movq -0x18(%rbp), %rdi
addq $0x9330, %rdi           # imm = 0x9330
callq 0x31da0
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)