// File: chhylp123[P]hifiasm/Correct.cpp
// Function: print_core_snp(haplotype_evdience_alloc*)
void print_core_snp(haplotype_evdience_alloc* hap)
{
    uint64_t i, j;
    for (i = 0; i < hap->core_snp; i++)
    {
        fprintf(stderr, "core(i): %lu, site: %u, occ_0: %u, occ_1: %u, occ_2: %u, score: %d\n", 
    (unsigned long)i, hap->snp_stat.a[i].site, hap->snp_stat.a[i].occ_0, hap->snp_stat.a[i].occ_1,
    hap->snp_stat.a[i].occ_2,
    hap->snp_stat.a[i].score); 

        int vectorID = hap->snp_stat.a[i].id;
        int8_t* vector = Get_SNP_Vector((*hap), vectorID);

        for (j = 0; j < hap->overlap; j++)
        {
            if(vector[j] == 0)
            {
                fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
            }
        }


        for (j = 0; j < hap->overlap; j++)
        {
            if(vector[j] == 1)
            {
                fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
            }
        }


        for (j = 0; j < hap->overlap; j++)
        {
            if(vector[j] == 2)
            {
                fprintf(stderr, "type: %d, ID: %lu\n", vector[j], (unsigned long)j);
            }
        }
        
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x1c4(%rcx), %ecx
cmpq %rcx, %rax
jae 0x3e189
movq 0x38605e(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rcx
addq %rcx, %rax
movl 0x20(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rsi
addq %rsi, %rax
movl 0x8(%rax), %r8d
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rsi
addq %rsi, %rax
movl 0xc(%rax), %r9d
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rsi
addq %rsi, %rax
movl 0x10(%rax), %r10d
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rsi
addq %rsi, %rax
movl 0x1c(%rax), %eax
leaq 0x34475a(%rip), %rsi    # 0x38275b
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x8(%rbp), %rax
movq 0x218(%rax), %rax
imulq $0x28, -0x10(%rbp), %rcx
addq %rcx, %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x1d0(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x1c8(%rcx), %ecx
imull -0x1c(%rbp), %ecx
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x1c8(%rcx), %ecx
cmpq %rcx, %rax
jae 0x3e0ae
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
jne 0x3e09e
movq 0x385f63(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %edx
movq -0x18(%rbp), %rcx
leaq 0x344708(%rip), %rsi    # 0x38279f
movb $0x0, %al
callq 0x22a0
jmp 0x3e0a0
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x3e052
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x1c8(%rcx), %ecx
cmpq %rcx, %rax
jae 0x3e112
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x3e102
movq 0x385eff(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %edx
movq -0x18(%rbp), %rcx
leaq 0x3446a4(%rip), %rsi    # 0x38279f
movb $0x0, %al
callq 0x22a0
jmp 0x3e104
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x3e0b6
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movl 0x1c8(%rcx), %ecx
cmpq %rcx, %rax
jae 0x3e176
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2, %eax
jne 0x3e166
movq 0x385e9b(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rax
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %edx
movq -0x18(%rbp), %rcx
leaq 0x344640(%rip), %rsi    # 0x38279f
movb $0x0, %al
callq 0x22a0
jmp 0x3e168
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x3e11a
jmp 0x3e178
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x3df64
addq $0x40, %rsp
popq %rbp
retq
nop