// File: afinit[P]afin/process.cpp
// Function: Process::start_run()
void Process::start_run(){
  // initialize logfile if logging enabled
  if( log_output || screen_output ){
    logfile_init();
  }

  // prevent printing of 
  if( no_fusion )
    print_fused = 0;

  // log output file
  Log::Inst()->log_it( string("output file: ") + outfile );
  
  // initialize objects
  reads = new Readlist( readsfiles ); 
  contigs = new Contiglist( reads, contigsfiles, outfile );
  fuse = new Fusion( contigs, reads );

  Log::Inst()->log_it( "End initialization phase" );
  
  // make initial attempt to fuse contigs  
  if( ! no_fusion )
    fuse->run_fusion( true );
  
  if( test_run )
    contigs->output_contigs( 0, outfile + ".fus", "mid" );

  run_manager();

  contigs->create_final_fasta();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x148(%rbp)
cmpl $0x0, 0x34253(%rip)     # 0x3e6f4
jne 0xa4ac
cmpl $0x0, 0x34246(%rip)     # 0x3e6f0
je 0xa4b8
movq -0x148(%rbp), %rdi
callq 0x9d00
cmpl $0x0, 0x3423d(%rip)     # 0x3e6fc
je 0xa4cb
movl $0x0, 0x34221(%rip)     # 0x3e6ec
callq 0x100d0
movq %rax, -0x158(%rbp)
leaq -0x49(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x46e0
movq -0x150(%rbp), %rdx
leaq 0x21946(%rip), %rsi     # 0x2be3b
leaq -0x48(%rbp), %rdi
callq 0x4530
jmp 0xa500
movq -0x148(%rbp), %rdx
addq $0x18, %rdx
leaq -0x28(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x6a10
jmp 0xa51a
movq -0x158(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x10460
jmp 0xa52c
leaq -0x28(%rbp), %rdi
callq 0x4270
leaq -0x48(%rbp), %rdi
callq 0x4270
leaq -0x49(%rbp), %rdi
callq 0x4420
movl $0x38, %edi
callq 0x43d0
movq -0x148(%rbp), %rsi
movq %rax, -0x160(%rbp)
movb $0x1, -0x81(%rbp)
addq $0x38, %rsi
leaq -0x80(%rbp), %rdi
callq 0x41b0
jmp 0xa575
movq -0x160(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x18d60
jmp 0xa587
movq -0x148(%rbp), %rax
movq -0x160(%rbp), %rcx
movb $0x0, -0x81(%rbp)
movq %rcx, (%rax)
leaq -0x80(%rbp), %rdi
callq 0x4270
movl $0x58, %edi
callq 0x43d0
movq -0x148(%rbp), %rsi
movq %rax, -0x170(%rbp)
movb $0x1, -0xc9(%rbp)
movq (%rsi), %rax
movq %rax, -0x168(%rbp)
addq $0x58, %rsi
leaq -0xa8(%rbp), %rdi
callq 0x41b0
jmp 0xa5e3
movq -0x148(%rbp), %rsi
addq $0x18, %rsi
leaq -0xc8(%rbp), %rdi
callq 0x41b0
jmp 0xa5fc
movq -0x168(%rbp), %rsi
movq -0x170(%rbp), %rdi
leaq -0xa8(%rbp), %rdx
leaq -0xc8(%rbp), %rcx
callq 0x27540
jmp 0xa61f
movq -0x148(%rbp), %rax
movq -0x170(%rbp), %rcx
movb $0x0, -0xc9(%rbp)
movq %rcx, 0x8(%rax)
leaq -0xc8(%rbp), %rdi
callq 0x4270
leaq -0xa8(%rbp), %rdi
callq 0x4270
movl $0x40, %edi
callq 0x43d0
movq %rax, %rdi
movq -0x148(%rbp), %rax
movq %rdi, %rcx
movq %rcx, -0x178(%rbp)
movq (%rax), %rdx
movq 0x8(%rax), %rsi
callq 0x113a0
jmp 0xa67c
movq -0x148(%rbp), %rax
movq -0x178(%rbp), %rcx
movq %rcx, 0x10(%rax)
callq 0x100d0
movq %rax, -0x188(%rbp)
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x46e0
movq -0x180(%rbp), %rdx
leaq 0x2178e(%rip), %rsi     # 0x2be49
leaq -0xf0(%rbp), %rdi
callq 0x4530
jmp 0xa6c9
movq -0x188(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x10460
jmp 0xa6de
leaq -0xf0(%rbp), %rdi
callq 0x4270
leaq -0xf1(%rbp), %rdi
callq 0x4420
cmpl $0x0, 0x33fff(%rip)     # 0x3e6fc
jne 0xa854
movq -0x148(%rbp), %rax
movq 0x10(%rax), %rdi
movl $0x1, %esi
callq 0x14eb0
jmp 0xa854
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa757
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa74e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4270
leaq -0x48(%rbp), %rdi
callq 0x4270
leaq -0x49(%rbp), %rdi
callq 0x4420
jmp 0xa962
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa788
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x4270
testb $0x1, -0x81(%rbp)
jne 0xa793
jmp 0xa79f
movq -0x160(%rbp), %rdi
callq 0x43a0
jmp 0xa962
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa7e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa7d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4270
leaq -0xa8(%rbp), %rdi
callq 0x4270
testb $0x1, -0xc9(%rbp)
jne 0xa7ef
jmp 0xa7fb
movq -0x170(%rbp), %rdi
callq 0x43a0
jmp 0xa962
movq -0x178(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
callq 0x43a0
jmp 0xa962
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa843
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4270
leaq -0xf1(%rbp), %rdi
callq 0x4420
jmp 0xa962
testb $0x1, 0x33e8d(%rip)     # 0x3e6e8
je 0xa93d
movq -0x148(%rbp), %rsi
movq 0x8(%rsi), %rax
movq %rax, -0x198(%rbp)
addq $0x18, %rsi
leaq 0x215e4(%rip), %rdx     # 0x2be62
leaq -0x118(%rbp), %rdi
callq 0xb230
leaq -0x139(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x46e0
movq -0x190(%rbp), %rdx
leaq 0x215bc(%rip), %rsi     # 0x2be67
leaq -0x138(%rbp), %rdi
callq 0x4530
jmp 0xa8b9
movq -0x198(%rbp), %rdi
xorl %esi, %esi
leaq -0x118(%rbp), %rdx
leaq -0x138(%rbp), %rcx
callq 0x283a0
jmp 0xa8d7
leaq -0x138(%rbp), %rdi
callq 0x4270
leaq -0x139(%rbp), %rdi
callq 0x4420
leaq -0x118(%rbp), %rdi
callq 0x4270
jmp 0xa93d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0xa923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x4270
leaq -0x139(%rbp), %rdi
callq 0x4420
leaq -0x118(%rbp), %rdi
callq 0x4270
jmp 0xa962
movq -0x148(%rbp), %rdi
callq 0xa970
movq -0x148(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x286a0
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x46c0
nopl (%rax,%rax)