// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/dna_mutation.cpp
// Function: (anonymous namespace)::ThisApplication::body() const
void body () const final
  {
    const string blastnFName        = getArg ("blastn");
    const string mutation_tab       = getArg ("mutation");  
    const string organism           = getArg ("organism");  
    const string mutation_all_FName = getArg ("mutation_all");
                 input_name         = getArg ("name");
                 print_node         = getFlag ("print_node");
    

    Batch batch (mutation_tab);  
  
  
    // Input 
    {
      LineInput f (blastnFName);
  	  while (f. nextLine ())
  	  {
  	    { 
  	      Unverbose unv;
  	      if (verbose ())
  	        cout << f. line << endl;  
  	    }
  	    unique_ptr<BlastnAlignment> al (new BlastnAlignment (f. line, organism));
  	    al->qc ();  
  	    if (al->good ())
  	      batch. blastAls << al. release ();
  	  }
  	}
  	if (verbose ())
  	  cout << "# Good Blasts: " << batch. blastAls. size () << endl;
  	
    
    // Output
    // Group by targetName and process each targetName separately for speed ??    
  //Common_sp::sort (batch. blastAls);
    if (verbose ())
    {
	    cout << "After process():" << endl;
		  for (const BlastnAlignment* blastAl : batch. blastAls)
		  {
		    ASSERT (blastAl);
		    blastAl->saveText (cout);
		    cout << ' ' << blastAl->seqChanges. size () << endl;
		  }
		}
		
    
    for (const BlastnAlignment* blastAl1 : batch. blastAls)
      for (const SeqChange& seqChange1 : blastAl1->seqChanges)
      {
        ASSERT (seqChange1. al == blastAl1);
      //ASSERT (seqChange1. mutation);
        for (const BlastnAlignment* blastAl2 : batch. blastAls)
          if (   blastAl2->targetName   == blastAl1->targetName
              && blastAl2->targetStrand == blastAl1->targetStrand
              && blastAl2 != blastAl1
             )  
          //for (Iter<Vector<SeqChange>> iter (var_cast (blastAl2) -> seqChanges); iter. next (); )
            for (SeqChange& seqChange2 : var_cast (blastAl2) -> seqChanges)
            {
            //SeqChange& seqChange2 = *iter;
              ASSERT (seqChange2. al == blastAl2);
            //ASSERT (seqChange2. mutation);
              if (   seqChange1. start_target == seqChange2. start_target 
                  && seqChange1. better (seqChange2)                
                 )
              //iter. erase ();
                seqChange2. replacement = & seqChange1;
            }
      }
		
		
  #if 0
  	// [UNKNOWN]
  	{
    	map<AmrMutation, const AmrMutation*> mutation2ptr;
    	for (const auto& it : accession2mutations)
    	  for (const AmrMutation& mut : it. second)
    	    mutation2ptr [mut] = & mut;
    	for (const BlastnAlignment* al : batch. blastAls)
    	  for (const SeqChange& seqChange : al->seqChanges)
    	    if (const AmrMutation* mut = seqChange. mutation)
    	      mutation2ptr. erase (*mut);
    	for (const auto& it : mutation2ptr)
    	{
    	  const auto al = new BlastnAlignment (* it. second);
    	  batch. blastAls << al;
    	}
    }
  #endif


    {
      TsvOut td (cout, 2, false);
      td. usePound = false;
      batch. report (td, false);
    }
    if (! mutation_all_FName. empty ())
    {
      OFStream f (mutation_all_FName);
      TsvOut td (f, 2, false);
      td. usePound = false;
      batch. report (td, true);
    }
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x7d8, %rsp            # imm = 0x7D8
movq %rdi, %rbx
leaq 0x3dea0(%rip), %rsi     # 0x4a07f
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
callq 0xef98
leaq 0x268(%rsp), %rdi
leaq 0x530(%rsp), %rdx
movq %rbx, %rsi
callq 0x26fb0
leaq 0x530(%rsp), %rdi
callq 0xbb18
leaq 0x3deec(%rip), %rsi     # 0x4a10c
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
callq 0xef98
leaq 0x248(%rsp), %rdi
leaq 0x530(%rsp), %rdx
movq %rbx, %rsi
callq 0x26fb0
leaq 0x530(%rsp), %rdi
callq 0xbb18
leaq 0x3dec4(%rip), %rsi     # 0x4a125
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
callq 0xef98
leaq 0x228(%rsp), %rdi
leaq 0x530(%rsp), %rdx
movq %rbx, %rsi
callq 0x26fb0
leaq 0x530(%rsp), %rdi
callq 0xbb18
leaq 0x3de9a(%rip), %rsi     # 0x4a13c
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
callq 0xef98
leaq 0x208(%rsp), %rdi
leaq 0x530(%rsp), %rdx
movq %rbx, %rsi
callq 0x26fb0
leaq 0x530(%rsp), %rdi
callq 0xbb18
leaq 0x3e3e4(%rip), %rsi     # 0x4a6c7
leaq 0x288(%rsp), %rdi
leaq 0x408(%rsp), %rdx
callq 0xef98
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
movq %rbx, %rsi
callq 0x26fb0
leaq 0x61719(%rip), %rdi     # 0x6da30
leaq 0x530(%rsp), %r14
movq %r14, %rsi
callq 0xb6a0
movq %r14, %rdi
callq 0xbb18
leaq 0x288(%rsp), %rdi
callq 0xbb18
leaq 0x3de69(%rip), %rsi     # 0x4a1ac
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rdx
callq 0xef98
leaq 0x530(%rsp), %rsi
movq %rbx, %rdi
callq 0x270bc
movb %al, 0x616e2(%rip)      # 0x6da50
leaq 0x530(%rsp), %rdi
callq 0xbb18
xorps %xmm0, %xmm0
movups %xmm0, 0x29(%rsp)
movaps %xmm0, 0x20(%rsp)
leaq 0x530(%rsp), %rdi
leaq 0x248(%rsp), %rsi
xorl %edx, %edx
callq 0xf56c
leaq 0x288(%rsp), %rdi
callq 0xf9a0
leaq 0x408(%rsp), %r12
leaq 0xd8(%rsp), %r13
xorl %r14d, %r14d
leaq 0xb8(%rsp), %rbx
leaq 0x118(%rsp), %r15
leaq 0x530(%rsp), %rdi
callq 0x12398
testb %al, %al
je 0xc5e9
movq %r12, %rdi
leaq 0x3fa3a(%rip), %rsi     # 0x4be28
movq %r13, %rdx
callq 0xef98
leaq 0x798(%rsp), %rdi
movq %r12, %rsi
callq 0xf9f2
movl %eax, %ebp
movq %r12, %rdi
callq 0xbb18
testb %bpl, %bpl
jne 0xc3cf
leaq 0x288(%rsp), %rdi
leaq 0x798(%rsp), %rsi
callq 0xfa32
leaq 0xe8(%rsp), %rax
movq %rax, 0xd8(%rsp)
andq $0x0, 0xe0(%rsp)
movb %r14b, 0xe8(%rsp)
leaq 0xa8(%rsp), %rax
movq %rax, 0x98(%rsp)
andq $0x0, 0xa0(%rsp)
movb %r14b, 0xa8(%rsp)
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
andq $0x0, 0x80(%rsp)
leaq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
andq $0x0, 0x60(%rsp)
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
andq $0x0, 0xc0(%rsp)
movb %r14b, 0x88(%rsp)
movb %r14b, 0x68(%rsp)
movb %r14b, 0xc8(%rsp)
leaq 0x128(%rsp), %rax
movq %rax, 0x118(%rsp)
andq $0x0, 0x120(%rsp)
movb %r14b, 0x128(%rsp)
leaq 0x288(%rsp), %rdi
movq %r13, %rsi
callq 0xb6d0
movq %rax, %rdi
leaq 0x4c(%rsp), %rsi
callq 0xb380
movq %rax, %rdi
leaq 0x98(%rsp), %rsi
callq 0xb6d0
movq %rax, %rdi
leaq 0x78(%rsp), %rsi
callq 0xb6d0
movq %rax, %rdi
leaq 0x58(%rsp), %rsi
callq 0xb6d0
movq %rax, %rdi
movq %rbx, %rsi
callq 0xb6d0
movq %rax, %rdi
movq %r15, %rsi
callq 0xb6d0
callq 0xb060
andl $0x0, (%rax)
cmpl $0x0, 0x4c(%rsp)
jle 0xcfd9
cmpq $0x0, 0x120(%rsp)
je 0xd0c5
leaq 0x61499(%rip), %rdi     # 0x6da00
movq %r13, %rsi
callq 0xfa5e
movq %rax, %rbp
movslq 0x4c(%rsp), %rsi
movq %r15, (%rsp)
movq %r12, %rdi
leaq 0x98(%rsp), %rdx
leaq 0x78(%rsp), %rcx
leaq 0x58(%rsp), %r8
movq %rbx, %r9
callq 0x3e8e4
movq %rbp, %rdi
movq %r12, %rsi
callq 0xfac4
movq %r12, %rdi
callq 0xef24
movq %r15, %rdi
callq 0xbb18
movq %rbx, %rdi
callq 0xbb18
leaq 0x58(%rsp), %rdi
callq 0xbb18
leaq 0x78(%rsp), %rdi
callq 0xbb18
leaq 0x98(%rsp), %rdi
callq 0xbb18
movq %r13, %rdi
callq 0xbb18
jmp 0xc3cf
leaq 0x288(%rsp), %rdi
callq 0xfaee
leaq 0x530(%rsp), %rdi
callq 0xf5c2
movq 0x6140e(%rip), %r14     # 0x6da18
leaq 0x613f7(%rip), %r12     # 0x6da08
pushq $0x1
popq %rbx
cmpq %r12, %r14
je 0xc644
leaq 0x40(%r14), %r15
movq %r15, %rdi
callq 0xfb0c
movq %r15, %rdi
movl %ebx, %esi
callq 0xfb22
testb %al, %al
je 0xce9a
movq %r14, %rdi
callq 0xb400
movq %rax, %r14
jmp 0xc614
leaq 0x530(%rsp), %rdi
leaq 0x268(%rsp), %rsi
xorl %edx, %edx
callq 0xf56c
movq 0x20(%rsp), %r13
leaq 0x288(%rsp), %rbx
leaq 0x530(%rsp), %rdi
callq 0x12398
testb %al, %al
movq %r13, 0x8(%rsp)
je 0xc9c7
movq %rbx, %rdi
callq 0x18ace
xorl %edi, %edi
callq 0x18a67
testb %al, %al
je 0xc6b1
movq 0x608f4(%rip), %rdi     # 0x6cf90
leaq 0x798(%rsp), %rsi
callq 0xb4e0
movq %rax, %rdi
callq 0xb2d0
movq %rbx, %rdi
callq 0x18ae0
movl $0x2b8, %edi            # imm = 0x2B8
callq 0xb550
movq %rax, %r13
movq %rax, %rdi
leaq 0x798(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x44444
leaq 0x5ed6f(%rip), %rax     # 0x6b450
movq %rax, (%r13)
leaq 0x238(%r13), %r15
movq %r15, %rdi
leaq 0x228(%rsp), %rsi
callq 0xb740
leaq 0x268(%r13), %rax
movq %rax, 0x258(%r13)
andq $0x0, 0x260(%r13)
leaq 0x258(%r13), %rax
movq %rax, 0x18(%rsp)
xorl %ecx, %ecx
movb %cl, 0x268(%r13)
leaq 0x278(%r13), %r14
leaq 0x288(%r13), %rax
movq %rax, 0x278(%r13)
andq $0x0, 0x280(%r13)
movb %cl, 0x288(%r13)
leaq 0x298(%r13), %rax
movq %rax, 0x50(%rsp)
leaq 0x2a8(%r13), %rax
movq %rax, 0x298(%r13)
andq $0x0, 0x2a0(%r13)
movb %cl, 0x2a8(%r13)
movq %r15, 0x40(%rsp)
movq %r15, %rdi
pushq $0x5f
popq %rsi
pushq $0x20
popq %rdx
callq 0x14093
callq 0xb060
andl $0x0, (%rax)
cmpq $0x0, 0x80(%r13)
je 0xceeb
movq %r13, %r15
addq $0x78, %r15
movq %rbx, %rdi
movq %r15, %rsi
callq 0xb740
leaq 0x408(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
pushq $0x40
popq %rbp
movl %ebp, %edx
callq 0x15275
movq 0x18(%rsp), %rdi
movq %r12, %rsi
callq 0xb6a0
movq %r12, %rdi
callq 0xbb18
movq %r12, %rdi
movq %rbx, %rsi
movl %ebp, %edx
callq 0x15275
movq %r14, %rdi
movq %r12, %rsi
callq 0xb6a0
movq %r12, %rdi
callq 0xbb18
movq %r12, %rdi
movq %rbx, %rsi
pushq $0x3a
popq %rdx
callq 0x15275
movq 0x50(%rsp), %rdi
movq %r12, %rsi
callq 0xb6a0
movq %r12, %rdi
callq 0xbb18
movq %r12, %rdi
leaq 0x3dac6(%rip), %rsi     # 0x4a2ef
movq %rbx, %rdx
callq 0xfb31
movq 0x18(%rsp), %rdi
movq %r12, %rsi
callq 0xbaa0
movq %r12, %rdi
callq 0xbb18
movq %rbx, %rdi
callq 0xbb18
movq %r14, %rdi
pushq $0x5f
popq %rsi
pushq $0x20
popq %rdx
callq 0x14093
movq %r13, %rdi
callq 0xd84e
movq %rbx, %r12
leaq 0x61192(%rip), %rdi     # 0x6da00
movq %r15, %rsi
callq 0x1113a
testq %rax, %rax
je 0xc88b
movl $0xc8, %edx
movq %r13, %rdi
movq %rax, %rsi
callq 0x45258
movq %r13, 0xf8(%rsp)
movq %r13, %rdi
callq 0xd84e
movq 0xc8(%r13), %rax
movl $0x191, %ecx            # imm = 0x191
cmpq %rcx, %rax
jb 0xc8b1
movl $0x191, %eax            # imm = 0x191
cmpq %rax, 0x38(%r13)
movq %r12, %rbx
jae 0xc8c4
movq 0x8(%rsp), %r14
jmp 0xc9b2
andq $0x0, 0xf8(%rsp)
movq 0x28(%rsp), %r15
cmpq 0x30(%rsp), %r15
je 0xc8ef
movq %r13, (%r15)
addq $0x8, %r15
movq %r15, 0x28(%rsp)
movq 0x8(%rsp), %r14
jmp 0xc9a4
movq %r15, %rbx
movq 0x8(%rsp), %rcx
subq %rcx, %rbx
movabsq $0x7ffffffffffffff8, %rax # imm = 0x7FFFFFFFFFFFFFF8
cmpq %rax, %rbx
je 0xd29f
movq %rbx, %rbp
sarq $0x3, %rbp
pushq $0x1
popq %rax
cmpq %rcx, %r15
movabsq $0xfffffffffffffff, %rdx # imm = 0xFFFFFFFFFFFFFFF
je 0xc929
movq %rbp, %rax
leaq (%rax,%rbp), %rcx
cmpq %rdx, %rcx
jb 0xc935
movq %rdx, %rcx
movq %rdx, %r15
addq %rbp, %rax
jb 0xc940
movq %rcx, %r15
testq %r15, %r15
je 0xc957
leaq (,%r15,8), %rdi
callq 0xb550
movq %rax, %r14
jmp 0xc95a
xorl %r14d, %r14d
movq %r15, 0x18(%rsp)
movq %r13, (%r14,%rbp,8)
testq %rbx, %rbx
movq 0x8(%rsp), %r13
jle 0xc97b
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0xb8e0
leaq (%r14,%rbx), %r15
addq $0x8, %r15
movq %r13, %rdi
movq %rbp, %rsi
callq 0xed52
movq %r15, 0x28(%rsp)
movq 0x18(%rsp), %rax
leaq (%r14,%rax,8), %rax
movq %rax, 0x30(%rsp)
movq %r12, %rbx
subq %r14, %r15
cmpq $0x9, %r15
jb 0xc9b2
movb $0x0, 0x38(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0xdcc4
movq %r14, %r13
jmp 0xc668
movq %r13, 0x20(%rsp)
leaq 0x530(%rsp), %rdi
callq 0xf5c2
xorl %edi, %edi
callq 0x18a67
testb %al, %al
je 0xca13
movq 0x605a5(%rip), %rdi     # 0x6cf90
leaq 0x3d8de(%rip), %rsi     # 0x4a2d0
callq 0xb540
movq 0x28(%rsp), %rsi
subq %r13, %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0xb3e0
movq %rax, %rdi
callq 0xb2d0
xorl %edi, %edi
callq 0x18a67
testb %al, %al
je 0xcab6
movq 0x60567(%rip), %rdi     # 0x6cf90
leaq 0x3d8b0(%rip), %rsi     # 0x4a2e0
callq 0xb540
movq %rax, %rdi
callq 0xb2d0
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x60542(%rip), %rbx     # 0x6cf90
pushq $0x20
popq %r14
movl $0xb0, %r12d
cmpq 0x18(%rsp), %r13
je 0xcac2
movq (%r13), %r15
callq 0xb060
andl $0x0, (%rax)
testq %r15, %r15
je 0xd1b1
movq %r15, %rdi
movq %rbx, %rsi
callq 0xf6b2
movq %rbx, %rdi
movl %r14d, %esi
callq 0xb630
movq %rax, %rdi
movq 0x220(%r15), %rax
subq 0x218(%r15), %rax
cqto
idivq %r12
movq %rax, %rsi
callq 0xb3e0
movq %rax, %rdi
callq 0xb2d0
addq $0x8, %r13
jmp 0xca58
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0xcac7
movq 0x8(%rsp), %r13
movq %r13, %rax
cmpq 0x18(%rsp), %rax
je 0xcbd3
movq %rax, 0x138(%rsp)
movq (%rax), %rax
movq 0x218(%rax), %rbx
movq 0x220(%rax), %rcx
movq %rcx, 0x140(%rsp)
movq %rax, 0x40(%rsp)
addq $0x10, %rax
movq %rax, 0x50(%rsp)
cmpq 0x140(%rsp), %rbx
je 0xcbc2
callq 0xb060
movq %rax, %r12
andl $0x0, (%rax)
movq 0x40(%rsp), %rax
cmpq %rax, 0x8(%rbx)
jne 0xcdb4
cmpq 0x18(%rsp), %r13
je 0xcbb1
movq (%r13), %rbp
leaq 0x10(%rbp), %rdi
movq 0x50(%rsp), %rsi
callq 0xf84e
testb %al, %al
je 0xcba8
cmpq 0x40(%rsp), %rbp
je 0xcba8
movq 0x40(%rsp), %rax
movb 0x68(%rax), %al
cmpb %al, 0x68(%rbp)
jne 0xcba8
movq 0x218(%rbp), %r14
movq 0x220(%rbp), %r15
cmpq %r15, %r14
je 0xcba8
andl $0x0, (%r12)
cmpq %rbp, 0x8(%r14)
jne 0xccce
movq 0x78(%rbx), %rax
cmpq 0x78(%r14), %rax
jne 0xcb9f
movq %rbx, %rdi
movq %r14, %rsi
callq 0x41f06
testb %al, %al
je 0xcb9f
movq %rbx, 0xa8(%r14)
addq $0xb0, %r14
jmp 0xcb6b
addq $0x8, %r13
jmp 0xcb2c
addq $0xb0, %rbx
movq 0x8(%rsp), %r13
jmp 0xcb04
movq 0x138(%rsp), %rax
addq $0x8, %rax
jmp 0xcaca
movq 0x603b6(%rip), %rsi     # 0x6cf90
leaq 0x530(%rsp), %rdi
pushq $0x2
popq %rdx
xorl %ecx, %ecx
callq 0x11274
leaq 0x530(%rsp), %rsi
movb $0x0, 0x28(%rsi)
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0xdcf4
leaq 0x530(%rsp), %rdi
callq 0xf878
cmpq $0x0, 0x210(%rsp)
je 0xcc7e
leaq 0x530(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0xf8fc
leaq 0x288(%rsp), %rdi
leaq 0x530(%rsp), %rsi
pushq $0x2
popq %rdx
xorl %ecx, %ecx
callq 0x11274
leaq 0x288(%rsp), %rsi
movb $0x0, 0x28(%rsi)
leaq 0x20(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0xdcf4
leaq 0x288(%rsp), %rdi
callq 0xf878
leaq 0x530(%rsp), %rdi
callq 0xf980
leaq 0x20(%rsp), %rdi
callq 0xecb4
leaq 0x208(%rsp), %rdi
callq 0xbb18
leaq 0x228(%rsp), %rdi
callq 0xbb18
leaq 0x248(%rsp), %rdi
callq 0xbb18
leaq 0x268(%rsp), %rdi
callq 0xbb18
addq $0x7d8, %rsp            # imm = 0x7D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d60f(%rip), %rsi     # 0x4a2f1
leaq 0x98(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xef98
leaq 0x78(%rsp), %rdi
movl $0x172, %esi            # imm = 0x172
callq 0xf658
leaq 0xd8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0xf5f1
leaq 0x3d5e4(%rip), %rdx     # 0x4a30b
leaq 0x408(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xf154
leaq 0x3d5ce(%rip), %rsi     # 0x4a311
leaq 0xb8(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xef98
leaq 0x3e0bd(%rip), %rdx     # 0x4ae1c
leaq 0x58(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xf154
leaq 0x288(%rsp), %rdi
leaq 0x408(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xf5f1
leaq 0x3d5e4(%rip), %rdx     # 0x4a376
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0xf154
leaq 0x530(%rsp), %rdi
callq 0x12ec0
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d529(%rip), %rsi     # 0x4a2f1
leaq 0x98(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xef98
leaq 0x78(%rsp), %rdi
movl $0x167, %esi            # imm = 0x167
callq 0xf658
leaq 0xd8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0xf5f1
leaq 0x3d4fe(%rip), %rdx     # 0x4a30b
leaq 0x408(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xf154
leaq 0x3d4e8(%rip), %rsi     # 0x4a311
leaq 0xb8(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xef98
leaq 0x3dfd7(%rip), %rdx     # 0x4ae1c
leaq 0x58(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xf154
leaq 0x288(%rsp), %rdi
leaq 0x408(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xf5f1
leaq 0x3d4e3(%rip), %rdx     # 0x4a35b
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0xf154
leaq 0x530(%rsp), %rdi
callq 0x12ec0
addq $0x20, %r14
pushq $0x10
popq %rdi
callq 0xb2e0
movq %rax, %rbx
leaq 0x3d52e(%rip), %rsi     # 0x4a3de
leaq 0x530(%rsp), %rdi
movq %r14, %rdx
callq 0xfb31
movb $0x1, %bpl
leaq 0x530(%rsp), %rsi
movq %rbx, %rdi
callq 0xb8d0
xorl %ebp, %ebp
movq 0x60114(%rip), %rsi     # 0x6cff0
movq 0x60085(%rip), %rdx     # 0x6cf68
movq %rbx, %rdi
callq 0xb970
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d3e8(%rip), %rsi     # 0x4a2f1
leaq 0x78(%rsp), %rdi
leaq 0x168(%rsp), %rdx
callq 0xef98
leaq 0x58(%rsp), %rdi
pushq $0x4f
popq %rsi
callq 0xf658
leaq 0x98(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xf5f1
leaq 0x3d3c5(%rip), %rdx     # 0x4a30b
leaq 0xd8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xf154
leaq 0x3d508(%rip), %rsi     # 0x4a46a
leaq 0x118(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0xef98
leaq 0x3de9e(%rip), %rdx     # 0x4ae1c
leaq 0xb8(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0xf154
leaq 0x408(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0xf5f1
leaq 0x3d50b(%rip), %rdx     # 0x4a4c2
leaq 0x288(%rsp), %rdi
leaq 0x408(%rsp), %rsi
callq 0xf154
leaq 0x288(%rsp), %rdi
callq 0x12ec0
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d304(%rip), %rsi     # 0x4a2f1
leaq 0x1e8(%rsp), %rdi
leaq 0x17(%rsp), %rdx
callq 0xef98
leaq 0x1c8(%rsp), %rdi
movl $0xdf, %esi
callq 0xf658
leaq 0x148(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
callq 0xf5f1
leaq 0x3d2d6(%rip), %rdx     # 0x4a30b
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xf154
leaq 0x3d340(%rip), %rsi     # 0x4a391
leaq 0x188(%rsp), %rdi
leaq 0x16(%rsp), %rdx
callq 0xef98
leaq 0x3ddb2(%rip), %rdx     # 0x4ae1c
leaq 0x1a8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xf154
leaq 0xf8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0xf5f1
leaq 0x3d322(%rip), %rdx     # 0x4a3c5
leaq 0x408(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xf154
leaq 0x408(%rsp), %rdi
callq 0x12ec0
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d218(%rip), %rsi     # 0x4a2f1
leaq 0x1e8(%rsp), %rdi
leaq 0x17(%rsp), %rdx
callq 0xef98
leaq 0x1c8(%rsp), %rdi
movl $0xe0, %esi
callq 0xf658
leaq 0x148(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
leaq 0x1c8(%rsp), %rdx
callq 0xf5f1
leaq 0x3d1ea(%rip), %rdx     # 0x4a30b
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0xf154
leaq 0x3d254(%rip), %rsi     # 0x4a391
leaq 0x188(%rsp), %rdi
leaq 0x16(%rsp), %rdx
callq 0xef98
leaq 0x3dcc6(%rip), %rdx     # 0x4ae1c
leaq 0x1a8(%rsp), %rdi
leaq 0x188(%rsp), %rsi
callq 0xf154
leaq 0xf8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0xf5f1
leaq 0x3d23e(%rip), %rdx     # 0x4a3cd
leaq 0x408(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0xf154
leaq 0x408(%rsp), %rdi
callq 0x12ec0
callq 0xb670
testl %eax, %eax
jne 0xd297
leaq 0x3d12c(%rip), %rsi     # 0x4a2f1
leaq 0x98(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0xef98
leaq 0x78(%rsp), %rdi
movl $0x15d, %esi            # imm = 0x15D
callq 0xf658
leaq 0xd8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0xf5f1
leaq 0x3d101(%rip), %rdx     # 0x4a30b
leaq 0x408(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xf154
leaq 0x3d0eb(%rip), %rsi     # 0x4a311
leaq 0xb8(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0xef98
leaq 0x3dbda(%rip), %rdx     # 0x4ae1c
leaq 0x58(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xf154
leaq 0x288(%rsp), %rdi
leaq 0x408(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xf5f1
leaq 0x3d0de(%rip), %rdx     # 0x4a353
leaq 0x530(%rsp), %rdi
leaq 0x288(%rsp), %rsi
callq 0xf154
leaq 0x530(%rsp), %rdi
callq 0x12ec0
pushq $0x1
popq %rdi
callq 0xb680
movq %rcx, 0x20(%rsp)
leaq 0x3d156(%rip), %rdi     # 0x4a401
callq 0xb320
jmp 0xd778
jmp 0xd78a
jmp 0xd2be
jmp 0xd2d0
movq %rax, %r15
leaq 0x408(%rsp), %rdi
callq 0xbb18
jmp 0xd2d3
movq %rax, %r15
leaq 0xf8(%rsp), %rdi
callq 0xbb18
jmp 0xd310
jmp 0xd79c
movq %rax, %rbx
leaq 0x288(%rsp), %rdi
callq 0xbb18
jmp 0xd2fc
movq %rax, %rbx
leaq 0x408(%rsp), %rdi
callq 0xbb18
jmp 0xd327
jmp 0xd30d
movq %rax, %r15
leaq 0x1a8(%rsp), %rdi
callq 0xbb18
jmp 0xd33b
jmp 0xd7ab
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xbb18
jmp 0xd352
jmp 0xd338
movq %rax, %r15
leaq 0x188(%rsp), %rdi
callq 0xbb18
jmp 0xd366
jmp 0xd7bd
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0xbb18
jmp 0xd3a9
jmp 0xd363
movq %rax, %r15
leaq 0x168(%rsp), %rdi
callq 0xbb18
jmp 0xd3bd
movq %rax, %r15
leaq 0x288(%rsp), %rdi
callq 0xf878
jmp 0xd38a
movq %rax, %r15
leaq 0x530(%rsp), %rdi
callq 0xf980
jmp 0xd807
jmp 0xd804
jmp 0xd7cf
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0xbb18
jmp 0xd3ee
jmp 0xd3ba
movq %rax, %r15
leaq 0x148(%rsp), %rdi
callq 0xbb18
jmp 0xd405
movq %rax, %r15
leaq 0x530(%rsp), %rdi
callq 0xf878
jmp 0xd807
jmp 0xd804
jmp 0xd7e1
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0xbb18
jmp 0xd4c7
jmp 0xd402
movq %rax, %r15
leaq 0x1c8(%rsp), %rdi
callq 0xbb18
jmp 0xd4d8
jmp 0xd804
movq %rax, %r15
jmp 0xd75e
jmp 0xd804
movq %rax, %r15
leaq 0x530(%rsp), %rdi
jmp 0xd443
jmp 0xd44d
movq %rax, %r15
leaq 0x288(%rsp), %rdi
callq 0xbb18
jmp 0xd811
movq %rax, %r15
jmp 0xd811
movq %rax, %r15
leaq 0x530(%rsp), %rdi
jmp 0xd819
movq %rax, %r15
jmp 0xd81e
movq %rax, %r15
leaq 0x530(%rsp), %rdi
jmp 0xd826
movq %rax, %r15
jmp 0xd82b
movq %rax, %r15
leaq 0x530(%rsp), %rdi
jmp 0xd833
movq %rax, %r15
jmp 0xd838
movq %rax, %r15
leaq 0x530(%rsp), %rdi
jmp 0xd840
movq %rax, %r15
jmp 0xd845
jmp 0xd778
jmp 0xd78a
jmp 0xd7f0
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xbb18
jmp 0xd4f7
jmp 0xd4d5
movq %rax, %r15
leaq 0x1e8(%rsp), %rdi
callq 0xbb18
jmp 0xd6bc
jmp 0xd79c
jmp 0xd804
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
jmp 0xd5aa
jmp 0xd6b9
jmp 0xd6b9
jmp 0xd804
jmp 0xd7ab
movq %rax, %r15
jmp 0xd634
movq %rax, %rbx
jmp 0xd667
jmp 0xd7bd
movq %rax, %r15
leaq 0x530(%rsp), %rdi
callq 0xbb18
testb %bpl, %bpl
jne 0xd547
jmp 0xd807
movq %rax, %r15
movq %rbx, %rdi
callq 0xb430
jmp 0xd807
movq %rax, %r15
leaq 0x408(%rsp), %rdi
callq 0xef24
jmp 0xd6bc
jmp 0xd6b9
jmp 0xd7cf
movq %rax, %rbx
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x408(%rsp), %rdi
callq 0xbb18
jmp 0xd5a2
jmp 0xd595
jmp 0xd595
jmp 0xd595
movq %rax, %rbx
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x288(%rsp), %rdi
callq 0xbb18
jmp 0xd667
jmp 0xd65a
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rbx
jmp 0xd725
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0xd749
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0xd751
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0xd75e
jmp 0xd61a
movq %rax, %r15
leaq 0x408(%rsp), %rdi
jmp 0xd6ff
jmp 0xd64b
movq %rax, %r15
movq %r13, 0x20(%rsp)
jmp 0xd75e
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0xf8(%rsp), %rdi
callq 0xdcc4
jmp 0xd75e
jmp 0xd7e1
movq %rax, %r15
jmp 0xd704
jmp 0xd65a
jmp 0xd804
movq %rax, %rbx
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq %rbx, %rdi
callq 0xb260
movq 0x5f91a(%rip), %rdi     # 0x6cf90
leaq 0x798(%rsp), %rsi
callq 0xb4e0
movq %rax, %rdi
callq 0xb2d0
callq 0xb7c0
movq %rax, %r15
movq 0x8(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x288(%rsp), %rdi
callq 0x18ae0
jmp 0xd75e
jmp 0xd804
jmp 0xd7f0
movq %rax, %r15
leaq 0x118(%rsp), %rdi
callq 0xbb18
leaq 0xb8(%rsp), %rdi
callq 0xbb18
leaq 0x58(%rsp), %rdi
callq 0xbb18
leaq 0x78(%rsp), %rdi
callq 0xbb18
leaq 0x98(%rsp), %rdi
callq 0xbb18
leaq 0xd8(%rsp), %rdi
callq 0xbb18
leaq 0x288(%rsp), %rdi
callq 0xfaee
jmp 0xd75e
jmp 0xd804
movq %rax, %r15
callq 0xb900
movq 0x40(%rsp), %rbx
movq 0x50(%rsp), %rdi
callq 0xbb18
movq %r14, %rdi
callq 0xbb18
movq 0x18(%rsp), %rdi
callq 0xbb18
movq %rbx, %rdi
callq 0xbb18
movq %r13, %rdi
callq 0x10efe
movl $0x2b8, %esi            # imm = 0x2B8
movq %r13, %rdi
callq 0xb560
leaq 0x530(%rsp), %rdi
callq 0xf5c2
jmp 0xd807
movq %rax, %rdi
callq 0xee2c
movq %rax, %r15
leaq 0x530(%rsp), %rdi
callq 0xbb18
jmp 0xd78d
movq %rax, %r15
leaq 0x288(%rsp), %rdi
callq 0xbb18
jmp 0xd79f
movq %rax, %r15
leaq 0x58(%rsp), %rdi
callq 0xbb18
jmp 0xd7ae
movq %rax, %r15
leaq 0xb8(%rsp), %rdi
callq 0xbb18
jmp 0xd7c0
movq %rax, %r15
leaq 0x408(%rsp), %rdi
callq 0xbb18
jmp 0xd7d2
movq %rax, %r15
leaq 0xd8(%rsp), %rdi
callq 0xbb18
jmp 0xd7e4
movq %rax, %r15
leaq 0x78(%rsp), %rdi
callq 0xbb18
jmp 0xd7f3
movq %rax, %r15
leaq 0x98(%rsp), %rdi
callq 0xbb18
jmp 0xd807
jmp 0xd804
movq %rax, %r15
leaq 0x20(%rsp), %rdi
callq 0xecb4
leaq 0x208(%rsp), %rdi
callq 0xbb18
leaq 0x228(%rsp), %rdi
callq 0xbb18
leaq 0x248(%rsp), %rdi
callq 0xbb18
leaq 0x268(%rsp), %rdi
callq 0xbb18
movq %r15, %rdi
callq 0xb9d0
nop