// File: chhylp123[P]hifiasm/Overlaps.cpp
// Function: merge_scaf_res(scaf_res_t*, scaf_res_t*)
scaf_res_t *merge_scaf_res(scaf_res_t *in0, scaf_res_t *in1)
{
    uint64_t k; ul_vec_t *m; ul_vec_t *s;
    scaf_res_t *p = NULL; CALLOC(p, 1);
    p->n = p->m = in0->n + in1->n; 
    CALLOC(p->a, p->n);
    for(k = 0; k < in0->n; k++) {
        m = &(p->a[k]); s = &(in0->a[k]);
        *m = *s;

        m->r_base.a = NULL; 
        if(m->r_base.m) {
            MALLOC(m->r_base.a, m->r_base.m);
            memcpy(m->r_base.a, s->r_base.a, sizeof((*(m->r_base.a)))*m->r_base.m);
        }

        m->bb.a = NULL; 
        if(m->bb.m) {
            MALLOC(m->bb.a, m->bb.m);
            memcpy(m->bb.a, s->bb.a, sizeof((*(m->bb.a)))*m->bb.m);
        }

        m->N_site.a = NULL; 
        if(m->N_site.m) {
            MALLOC(m->N_site.a, m->N_site.m);
            memcpy(m->N_site.a, s->N_site.a, sizeof((*(m->N_site.a)))*m->N_site.m);
        }
    }

    for(k = 0; k < in1->n; k++) {
        m = &(p->a[k + in0->n]); s = &(in1->a[k]);
        *m = *s;

        m->r_base.a = NULL; 
        if(m->r_base.m) {
            MALLOC(m->r_base.a, m->r_base.m);
            memcpy(m->r_base.a, s->r_base.a, sizeof((*(m->r_base.a)))*m->r_base.m);
        }

        m->bb.a = NULL; 
        if(m->bb.m) {
            MALLOC(m->bb.a, m->bb.m);
            memcpy(m->bb.a, s->bb.a, sizeof((*(m->bb.a)))*m->bb.m);
        }

        m->N_site.a = NULL; 
        if(m->N_site.m) {
            MALLOC(m->N_site.a, m->N_site.m);
            memcpy(m->N_site.a, s->N_site.a, sizeof((*(m->N_site.a)))*m->N_site.m);
        }
    }

    return p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x30(%rbp)
movl $0x1, %edi
movl $0x20, %esi
callq 0x2140
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x10(%rbp), %rax
addq 0x8(%rax), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x58, %esi
callq 0x2140
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x130262
movq -0x30(%rbp), %rax
movq (%rax), %rax
imulq $0x58, -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
imulq $0x58, -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdi
movl $0x58, %edx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1301ad
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
shlq $0x0, %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdx
shlq $0x0, %rdx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x1301fb
movq -0x20(%rbp), %rax
imulq $0x24, 0x28(%rax), %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x20(%rbp), %rax
imulq $0x24, 0x28(%rax), %rdx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x13024f
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rdi
shlq $0x2, %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rdx
shlq $0x2, %rdx
callq 0x2180
jmp 0x130251
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x13010f
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x1303c8
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rdx
addq 0x8(%rdx), %rcx
imulq $0x58, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
imulq $0x58, -0x18(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdi
movl $0x58, %edx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x130313
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
shlq $0x0, %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdx
shlq $0x0, %rdx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x130361
movq -0x20(%rbp), %rax
imulq $0x24, 0x28(%rax), %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x20(%rbp), %rax
imulq $0x24, 0x28(%rax), %rdx
callq 0x2180
movq -0x20(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x1303b5
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rdi
shlq $0x2, %rdi
callq 0x2270
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rdx
shlq $0x2, %rdx
callq 0x2180
jmp 0x1303b7
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x13026a
movq -0x30(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)