// File: /workspace/github_cpp_makefile_star2_O3/afinit[P]afin/fusion.cpp
// Function: Fusion::commit_fusion(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, int)
void Fusion::commit_fusion( string fused, string fused_id, int index_i, int index_j ){ 
  contigs->append_contig( 1, contigs->get_contig(index_i) );
  Log::Inst()->log_it( "Contig moved to fused file: " + contigs->get_contig(index_i).get_contig_id() );

  contigs->append_contig( 1, contigs->get_contig(index_j) );
  Log::Inst()->log_it( "Contig moved to fused file: " + contigs->get_contig(index_j).get_contig_id() );

  Log::Inst()->log_it( "Committing: " + fused_id );
  Log::Inst()->log_it( "\t" + fused );
  contigs->append_contig( 0, Contig( reads, fused, fused_id ));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
movl %r8d, %r12d
movl %ecx, %ebx
movq %rdx, -0x30(%rbp)
movq %rsi, -0x58(%rbp)
movq %rdi, %r15
movq (%rdi), %r13
leaq -0x258(%rbp), %r14
movq %r14, %rdi
movq %r13, %rsi
movl %ecx, %edx
callq 0x13d9c
movq %r13, %rdi
movl $0x1, %esi
movq %r14, %rdx
callq 0x13e12
leaq -0x258(%rbp), %rdi
callq 0x59be
callq 0x9692
movq %rax, %r13
movq (%r15), %rsi
leaq -0x168(%rbp), %r14
movq %r14, %rdi
movl %ebx, %edx
callq 0x13d9c
leaq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0x5cc0
leaq 0xb7e6(%rip), %rcx      # 0x16164
leaq -0x50(%rbp), %rdi
movl $0x1c, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4350
leaq -0x88(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xa9be
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0xa9c5
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x98(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x98ba
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0xa9fc
callq 0x42f0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaa0e
callq 0x42f0
leaq -0x168(%rbp), %rdi
callq 0x59be
movq (%r15), %rbx
leaq -0x208(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0x13d9c
movq %rbx, %rdi
movl $0x1, %esi
movq %r14, %rdx
callq 0x13e12
leaq -0x208(%rbp), %rdi
callq 0x59be
callq 0x9692
movq %rax, %r13
movq (%r15), %rsi
leaq -0x168(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %edx
callq 0x13d9c
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x5cc0
leaq 0xb6e6(%rip), %rcx      # 0x16164
leaq -0x50(%rbp), %rdi
movl $0x1c, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x4350
leaq -0x68(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xaab5
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0xaabc
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x78(%rbp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r13, %rdi
callq 0x98ba
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
movq -0x58(%rbp), %r13
je 0xaaf1
callq 0x42f0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0xab03
callq 0x42f0
leaq -0x168(%rbp), %rdi
callq 0x59be
callq 0x9692
movq %rax, %rbx
leaq 0xb663(%rip), %rsi      # 0x16181
leaq -0x118(%rbp), %r14
movq %r14, %rdi
movq -0x30(%rbp), %rdx
callq 0xd79e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x98ba
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xab51
callq 0x42f0
callq 0x9692
movq %rax, %rbx
leaq 0xb3eb(%rip), %rsi      # 0x15f4b
leaq -0xf8(%rbp), %r14
movq %r14, %rdi
movq %r13, %rdx
callq 0xd79e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x98ba
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xab92
callq 0x42f0
movq (%r15), %r12
movq 0x8(%r15), %r15
leaq -0xc8(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
leaq -0xd8(%rbp), %rdi
callq 0x68f6
leaq -0xa8(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x30(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0xb8(%rbp), %rdi
callq 0x68f6
leaq -0x1b8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
leaq -0xb8(%rbp), %rcx
movq %r15, %rsi
callq 0x58ee
leaq -0x1b8(%rbp), %rdx
movq %r12, %rdi
xorl %esi, %esi
callq 0x13e12
leaq -0x1b8(%rbp), %rdi
callq 0x59be
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0xac2b
callq 0x42f0
movq -0xd8(%rbp), %rdi
cmpq %r14, %rdi
je 0xac3c
callq 0x42f0
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x1b8(%rbp), %rdi
callq 0x59be
jmp 0xac62
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0xac78
callq 0x42f0
jmp 0xac78
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
cmpq %r14, %rdi
jne 0xaca8
jmp 0xad19
movq %rax, %rbx
leaq -0xe8(%rbp), %rax
jmp 0xac9f
movq %rax, %rbx
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xad19
callq 0x42f0
jmp 0xad19
movq %rax, %rbx
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
je 0xacc5
callq 0x42f0
jmp 0xacc5
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
jmp 0xacfe
jmp 0xad0a
movq %rax, %rbx
leaq -0x208(%rbp), %rdi
jmp 0xad14
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0xacf6
callq 0x42f0
jmp 0xacf6
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xad0d
callq 0x42f0
jmp 0xad0d
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
callq 0x59be
movq %rbx, %rdi
callq 0x4590
movq %rax, %rbx
leaq -0x258(%rbp), %rdi
jmp 0xad14
nop