// File: /workspace/github_cpp_makefile_star2_O1/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 0x13c48
movq %r13, %rdi
movl $0x1, %esi
movq %r14, %rdx
callq 0x13cbe
leaq -0x258(%rbp), %rdi
callq 0x59a6
callq 0x9626
movq %rax, %r13
movq (%r15), %rsi
leaq -0x168(%rbp), %r14
movq %r14, %rdi
movl %ebx, %edx
callq 0x13c48
leaq -0x50(%rbp), %rdi
movq %r14, %rsi
callq 0x5ca8
leaq 0xb84e(%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 0xa956
movq %rdx, -0x98(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x88(%rbp)
jmp 0xa95d
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 0x9846
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0xa994
callq 0x42f0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa9a6
callq 0x42f0
leaq -0x168(%rbp), %rdi
callq 0x59a6
movq (%r15), %rbx
leaq -0x208(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movl %r12d, %edx
callq 0x13c48
movq %rbx, %rdi
movl $0x1, %esi
movq %r14, %rdx
callq 0x13cbe
leaq -0x208(%rbp), %rdi
callq 0x59a6
callq 0x9626
movq %rax, %r13
movq (%r15), %rsi
leaq -0x168(%rbp), %rbx
movq %rbx, %rdi
movl %r12d, %edx
callq 0x13c48
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x5ca8
leaq 0xb74e(%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 0xaa4d
movq %rdx, -0x78(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x68(%rbp)
jmp 0xaa54
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 0x9846
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
movq -0x58(%rbp), %r13
je 0xaa89
callq 0x42f0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0xaa9b
callq 0x42f0
leaq -0x168(%rbp), %rdi
callq 0x59a6
callq 0x9626
movq %rax, %rbx
leaq 0xb6cb(%rip), %rsi      # 0x16181
leaq -0x118(%rbp), %r14
movq %r14, %rdi
movq -0x30(%rbp), %rdx
callq 0xd67f
movq %rbx, %rdi
movq %r14, %rsi
callq 0x9846
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaae9
callq 0x42f0
callq 0x9626
movq %rax, %rbx
leaq 0xb453(%rip), %rsi      # 0x15f4b
leaq -0xf8(%rbp), %r14
movq %r14, %rdi
movq %r13, %rdx
callq 0xd67f
movq %rbx, %rdi
movq %r14, %rsi
callq 0x9846
leaq -0xe8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xab2a
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 0x6876
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 0x6876
leaq -0x1b8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
leaq -0xb8(%rbp), %rcx
movq %r15, %rsi
callq 0x58d6
leaq -0x1b8(%rbp), %rdx
movq %r12, %rdi
xorl %esi, %esi
callq 0x13cbe
leaq -0x1b8(%rbp), %rdi
callq 0x59a6
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0xabc3
callq 0x42f0
movq -0xd8(%rbp), %rdi
cmpq %r14, %rdi
je 0xabd4
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 0x59a6
jmp 0xabfa
movq %rax, %rbx
movq -0xb8(%rbp), %rdi
cmpq %r13, %rdi
je 0xac10
callq 0x42f0
jmp 0xac10
movq %rax, %rbx
movq -0xd8(%rbp), %rdi
cmpq %r14, %rdi
jne 0xac40
jmp 0xacb1
movq %rax, %rbx
leaq -0xe8(%rbp), %rax
jmp 0xac37
movq %rax, %rbx
leaq -0x108(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xacb1
callq 0x42f0
jmp 0xacb1
movq %rax, %rbx
movq -0x78(%rbp), %rdi
cmpq %r14, %rdi
je 0xac5d
callq 0x42f0
jmp 0xac5d
movq %rax, %rbx
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
jmp 0xac96
jmp 0xaca2
movq %rax, %rbx
leaq -0x208(%rbp), %rdi
jmp 0xacac
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0xac8e
callq 0x42f0
jmp 0xac8e
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaca5
callq 0x42f0
jmp 0xaca5
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
callq 0x59a6
movq %rbx, %rdi
callq 0x4590
movq %rax, %rbx
leaq -0x258(%rbp), %rdi
jmp 0xacac
nop