// File: chhylp123[P]hifiasm/Assembly.cpp
// Function: ha_ovec_buf_init(void*, int, int, int)
ha_ovec_buf_t *ha_ovec_buf_init(void *km, int is_final, int save_ov, int is_ug)
{
	ha_ovec_buf_t *b;
	KCALLOC(km, b, 1);
	b->is_final = !!is_final, b->save_ov = !!save_ov;
	init_UC_Read(&b->self_read);//set 0
	init_UC_Read(&b->ovlp_read);//set 0
	init_Candidates_list(&b->clist);//set 0
    memset(&b->olist, 0, sizeof(overlap_region_alloc));
    memset(&b->olist_hp, 0, sizeof(overlap_region_alloc));
    // init_overlap_region_alloc(&b->olist);
    // init_overlap_region_alloc(&b->olist_hp);
    init_fake_cigar(&(b->tmp_region.f_cigar));//set 0
    kv_init(b->b_buf.a);//set 0
    kv_init(b->r_buf.a);//set 0
    kv_init(b->k_flag.a);//set 0
    kv_init(b->sp);//set 0
	if(!is_ug) b->ab = ha_abuf_init_buf(km);
    else b->abl = ha_abufl_init_buf(km);
	if (!b->is_final) {
        init_Cigar_record_buf(&b->cigar1, km);
		// init_Graph(&b->POA_Graph);
		// init_Graph(&b->DAGCon);
		init_Correct_dumy_buf(&b->correct, km);//set 0
        InitHaplotypeEvdience_buf(&b->hap, km);
		init_Round2_alignment_buf(&b->round2, km);
	}
	return b;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
movl $0x12340, %edx          # imm = 0x12340
callq 0x30e1a0
movq %rax, -0x20(%rbp)
cmpl $0x0, -0xc(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
cmpl $0x0, -0x10(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x20(%rbp), %rdi
addq $0x8, %rdi
callq 0x9850
movq -0x20(%rbp), %rdi
addq $0x28, %rdi
callq 0x9850
movq -0x20(%rbp), %rdi
addq $0x48, %rdi
callq 0x23040
movq -0x20(%rbp), %rdi
addq $0xa0, %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x2100
movq -0x20(%rbp), %rdi
addq $0xc0, %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x2100
movq -0x20(%rbp), %rdi
addq $0x121a0, %rdi          # imm = 0x121A0
addq $0x38, %rdi
callq 0x1e0c0
movq -0x20(%rbp), %rax
movq $0x0, 0x12148(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12140(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12150(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12168(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12160(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12170(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12188(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12180(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12190(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12258(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12250(%rax)
movq -0x20(%rbp), %rax
movq $0x0, 0x12260(%rax)
cmpl $0x0, -0x14(%rbp)
jne 0x14c15
movq -0x8(%rbp), %rdi
callq 0x1a0550
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xe0(%rax)
jmp 0x14c2c
movq -0x8(%rbp), %rdi
callq 0x1a0700
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0xe8(%rax)
movq -0x20(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x14c85
movq -0x20(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
movq -0x8(%rbp), %rsi
callq 0x32020
movq -0x20(%rbp), %rdi
addq $0x2c0, %rdi            # imm = 0x2C0
movq -0x8(%rbp), %rsi
callq 0x31fb0
movq -0x20(%rbp), %rdi
addq $0x9040, %rdi           # imm = 0x9040
movq -0x8(%rbp), %rsi
callq 0x1bf50
movq -0x20(%rbp), %rdi
addq $0x9330, %rdi           # imm = 0x9330
movq -0x8(%rbp), %rsi
callq 0x31f50
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop