// File: 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:
subq $0xb88, %rsp            # imm = 0xB88
movq %rdi, 0xb80(%rsp)
movq 0xb80(%rsp), %rax
movq %rax, 0xc8(%rsp)
leaq 0xb3f(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0xcc80
movq 0xd0(%rsp), %rdx
leaq 0xa2504(%rip), %rsi     # 0xb0077
leaq 0xb40(%rsp), %rdi
callq 0x14240
jmp 0xdb82
movq 0xc8(%rsp), %rsi
leaq 0xb60(%rsp), %rdi
leaq 0xb40(%rsp), %rdx
callq 0x49840
jmp 0xdba1
leaq 0xb40(%rsp), %rdi
callq 0xce38
leaq 0xb3f(%rsp), %rdi
callq 0xc740
leaq 0xae7(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xcc80
movq 0xc0(%rsp), %rdx
leaq 0xa2525(%rip), %rsi     # 0xb0104
leaq 0xae8(%rsp), %rdi
callq 0x14240
jmp 0xdbee
movq 0xc8(%rsp), %rsi
leaq 0xb08(%rsp), %rdi
leaq 0xae8(%rsp), %rdx
callq 0x49840
jmp 0xdc0d
leaq 0xae8(%rsp), %rdi
callq 0xce38
leaq 0xae7(%rsp), %rdi
callq 0xc740
leaq 0xa9f(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0xcc80
movq 0xb8(%rsp), %rdx
leaq 0xa24d2(%rip), %rsi     # 0xb011d
leaq 0xaa0(%rsp), %rdi
callq 0x14240
jmp 0xdc5a
movq 0xc8(%rsp), %rsi
leaq 0xac0(%rsp), %rdi
leaq 0xaa0(%rsp), %rdx
callq 0x49840
jmp 0xdc79
leaq 0xaa0(%rsp), %rdi
callq 0xce38
leaq 0xa9f(%rsp), %rdi
callq 0xc740
leaq 0xa57(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0xcc80
movq 0xb0(%rsp), %rdx
leaq 0xa247d(%rip), %rsi     # 0xb0134
leaq 0xa58(%rsp), %rdi
callq 0x14240
jmp 0xdcc6
movq 0xc8(%rsp), %rsi
leaq 0xa78(%rsp), %rdi
leaq 0xa58(%rsp), %rdx
callq 0x49840
jmp 0xdce5
leaq 0xa58(%rsp), %rdi
callq 0xce38
leaq 0xa57(%rsp), %rdi
callq 0xc740
leaq 0xa0f(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0xcc80
movq 0xa8(%rsp), %rdx
leaq 0xa299c(%rip), %rsi     # 0xb06bf
leaq 0xa10(%rsp), %rdi
callq 0x14240
jmp 0xdd32
movq 0xc8(%rsp), %rsi
leaq 0xa30(%rsp), %rdi
leaq 0xa10(%rsp), %rdx
callq 0x49840
jmp 0xdd51
leaq 0xd5e68(%rip), %rdi     # 0xe3bc0
leaq 0xa30(%rsp), %rsi
movq %rsi, 0x98(%rsp)
callq 0xc890
movq 0x98(%rsp), %rdi
callq 0xce38
leaq 0xa10(%rsp), %rdi
callq 0xce38
leaq 0xa0f(%rsp), %rdi
callq 0xc740
leaq 0x9e7(%rsp), %rdi
movq %rdi, 0xa0(%rsp)
callq 0xcc80
movq 0xa0(%rsp), %rdx
leaq 0xa23ec(%rip), %rsi     # 0xb01a4
leaq 0x9e8(%rsp), %rdi
callq 0x14240
jmp 0xddc7
movq 0xc8(%rsp), %rdi
leaq 0x9e8(%rsp), %rsi
callq 0x499d0
movb %al, 0x97(%rsp)
jmp 0xdde5
movb 0x97(%rsp), %al
andb $0x1, %al
movb %al, 0xd5dec(%rip)      # 0xe3be0
leaq 0x9e8(%rsp), %rdi
callq 0xce38
leaq 0x9e7(%rsp), %rdi
callq 0xc740
leaq 0x9c0(%rsp), %rdi
leaq 0xb08(%rsp), %rsi
callq 0xf080
jmp 0xde25
leaq 0x718(%rsp), %rdi
leaq 0xb60(%rsp), %rsi
xorl %edx, %edx
callq 0x15ac0
jmp 0xde3e
jmp 0xde40
leaq 0x718(%rsp), %rdi
callq 0x1e5d0
movb %al, 0x96(%rsp)
jmp 0xde56
movb 0x96(%rsp), %al
testb $0x1, %al
jne 0xde66
jmp 0xe20c
leaq 0x717(%rsp), %rdi
callq 0x2bb30
jmp 0xde75
xorl %edi, %edi
callq 0x2ba40
movb %al, 0x95(%rsp)
jmp 0xde85
movb 0x95(%rsp), %al
testb $0x1, %al
jne 0xde95
jmp 0xe0f5
leaq 0x980(%rsp), %rsi
movq 0xd50ec(%rip), %rdi     # 0xe2f90
callq 0xc620
movq %rax, 0x88(%rsp)
jmp 0xdeb3
movq 0x88(%rsp), %rdi
movq 0xd508e(%rip), %rsi     # 0xe2f50
callq 0xc700
jmp 0xdec9
jmp 0xe0f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xdf05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xb40(%rsp), %rdi
callq 0xce38
leaq 0xb3f(%rsp), %rdi
callq 0xc740
jmp 0xf070
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xdf4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xae8(%rsp), %rdi
callq 0xce38
leaq 0xae7(%rsp), %rdi
callq 0xc740
jmp 0xf063
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xdf97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xaa0(%rsp), %rdi
callq 0xce38
leaq 0xa9f(%rsp), %rdi
callq 0xc740
jmp 0xf056
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xdfe0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xa58(%rsp), %rdi
callq 0xce38
leaq 0xa57(%rsp), %rdi
callq 0xc740
jmp 0xf049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe029
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xa10(%rsp), %rdi
callq 0xce38
leaq 0xa0f(%rsp), %rdi
callq 0xc740
jmp 0xf03c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe072
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x9e8(%rsp), %rdi
callq 0xce38
leaq 0x9e7(%rsp), %rdi
callq 0xc740
jmp 0xf03c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xf03c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xf02f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x717(%rsp), %rdi
callq 0x2bb60
jmp 0xe280
leaq 0x717(%rsp), %rdi
callq 0x2bb60
movl $0x2b8, %edi            # imm = 0x2B8
callq 0xc6a0
movq %rax, 0x80(%rsp)
jmp 0xe116
movq 0x80(%rsp), %rdi
leaq 0x980(%rsp), %rsi
leaq 0xac0(%rsp), %rdx
callq 0xfbb0
jmp 0xe135
movq 0x80(%rsp), %rsi
leaq 0x708(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0x10200
movq 0x78(%rsp), %rdi
callq 0x10230
movq %rax, %rdi
callq 0x10240
jmp 0xe163
leaq 0x708(%rsp), %rdi
callq 0x10230
movq %rax, %rdi
callq 0x10d30
movb %al, 0x77(%rsp)
jmp 0xe17e
movb 0x77(%rsp), %al
testb $0x1, %al
jne 0xe188
jmp 0xe1fa
leaq 0x708(%rsp), %rdi
callq 0x10dc0
movq %rax, %rsi
leaq 0x9c0(%rsp), %rdi
callq 0x10d90
jmp 0xe1a7
jmp 0xe1fa
movq 0x80(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
movl $0x2b8, %esi            # imm = 0x2B8
callq 0xc6b0
jmp 0xe280
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x708(%rsp), %rdi
callq 0x10dd0
jmp 0xe280
leaq 0x708(%rsp), %rdi
callq 0x10dd0
jmp 0xde40
leaq 0x718(%rsp), %rdi
callq 0x15b30
xorl %edi, %edi
callq 0x2ba40
movb %al, 0x76(%rsp)
jmp 0xe226
movb 0x76(%rsp), %al
testb $0x1, %al
jne 0xe230
jmp 0xe292
movq 0xd4d59(%rip), %rdi     # 0xe2f90
leaq 0xa208a(%rip), %rsi     # 0xb02c8
callq 0xc690
movq %rax, 0x68(%rsp)
jmp 0xe24a
leaq 0x9c0(%rsp), %rdi
callq 0x10e30
movq 0x68(%rsp), %rdi
movq %rax, %rsi
callq 0xc150
movq %rax, 0x60(%rsp)
jmp 0xe26b
movq 0x60(%rsp), %rdi
movq 0xd4cd9(%rip), %rsi     # 0xe2f50
callq 0xc700
jmp 0xe27e
jmp 0xe292
leaq 0x718(%rsp), %rdi
callq 0x15b30
jmp 0xf02f
xorl %edi, %edi
callq 0x2ba40
movb %al, 0x5f(%rsp)
jmp 0xe29f
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0xe2ac
jmp 0xe669
movq 0xd4cdd(%rip), %rdi     # 0xe2f90
leaq 0xa201e(%rip), %rsi     # 0xb02d8
callq 0xc690
movq %rax, 0x50(%rsp)
jmp 0xe2c6
movq 0x50(%rsp), %rdi
movq 0xd4c7e(%rip), %rsi     # 0xe2f50
callq 0xc700
jmp 0xe2d9
leaq 0x9c0(%rsp), %rax
movq %rax, 0x700(%rsp)
movq 0x700(%rsp), %rdi
callq 0x10e50
movq %rax, 0x6f8(%rsp)
movq 0x700(%rsp), %rdi
callq 0x10e80
movq %rax, 0x6f0(%rsp)
leaq 0x6f8(%rsp), %rdi
leaq 0x6f0(%rsp), %rsi
callq 0x10eb0
testb $0x1, %al
jne 0xe331
jmp 0xe667
leaq 0x6f8(%rsp), %rdi
callq 0x10ef0
movq (%rax), %rax
movq %rax, 0x6e8(%rsp)
callq 0xc090
movl $0x0, (%rax)
cmpq $0x0, 0x6e8(%rsp)
jne 0xe5ea
callq 0xc860
cmpl $0x0, %eax
jne 0xe5e0
leaq 0x647(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0xcc80
movq 0x48(%rsp), %rdx
leaq 0xa1f5a(%rip), %rsi     # 0xb02e9
leaq 0x648(%rsp), %rdi
callq 0x14240
jmp 0xe39e
leaq 0x620(%rsp), %rdi
movl $0x15d, %esi            # imm = 0x15D
callq 0x15c70
jmp 0xe3b2
leaq 0x668(%rsp), %rdi
leaq 0x648(%rsp), %rsi
leaq 0x620(%rsp), %rdx
callq 0x15b80
jmp 0xe3d1
leaq 0xa1f2b(%rip), %rdx     # 0xb0303
leaq 0x688(%rsp), %rdi
leaq 0x668(%rsp), %rsi
callq 0x144a0
jmp 0xe3ef
leaq 0x5df(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xcc80
movq 0x40(%rsp), %rdx
leaq 0xa1efc(%rip), %rsi     # 0xb0309
leaq 0x5e0(%rsp), %rdi
callq 0x14240
jmp 0xe41c
leaq 0xa2ad1(%rip), %rdx     # 0xb0ef4
leaq 0x600(%rsp), %rdi
leaq 0x5e0(%rsp), %rsi
callq 0x144a0
jmp 0xe43a
leaq 0x6a8(%rsp), %rdi
leaq 0x688(%rsp), %rsi
leaq 0x600(%rsp), %rdx
callq 0x15b80
jmp 0xe459
leaq 0xa1eeb(%rip), %rdx     # 0xb034b
leaq 0x6c8(%rsp), %rdi
leaq 0x6a8(%rsp), %rsi
callq 0x144a0
jmp 0xe477
leaq 0x6c8(%rsp), %rdi
callq 0x1fbf0
jmp 0xe486
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe5c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe5b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe5a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe58d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe580
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe573
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe566
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x6c8(%rsp), %rdi
callq 0xce38
leaq 0x6a8(%rsp), %rdi
callq 0xce38
leaq 0x600(%rsp), %rdi
callq 0xce38
leaq 0x5e0(%rsp), %rdi
callq 0xce38
leaq 0x5df(%rsp), %rdi
callq 0xc740
leaq 0x688(%rsp), %rdi
callq 0xce38
leaq 0x668(%rsp), %rdi
callq 0xce38
leaq 0x620(%rsp), %rdi
callq 0xce38
leaq 0x648(%rsp), %rdi
callq 0xce38
leaq 0x647(%rsp), %rdi
callq 0xc740
jmp 0xf02f
movl $0x1, %edi
callq 0xc870
movq 0x6e8(%rsp), %rdi
movq 0xd4997(%rip), %rsi     # 0xe2f90
callq 0x15db0
jmp 0xe600
movq 0xd4989(%rip), %rdi     # 0xe2f90
movl $0x20, %esi
callq 0xc810
movq %rax, 0x38(%rsp)
jmp 0xe618
movq 0x6e8(%rsp), %rdi
addq $0x218, %rdi            # imm = 0x218
callq 0x15ff0
movq 0x38(%rsp), %rdi
movq %rax, %rsi
callq 0xc150
movq %rax, 0x30(%rsp)
jmp 0xe640
movq 0x30(%rsp), %rdi
movq 0xd4904(%rip), %rsi     # 0xe2f50
callq 0xc700
jmp 0xe653
jmp 0xe655
leaq 0x6f8(%rsp), %rdi
callq 0x10f00
jmp 0xe313
jmp 0xe669
leaq 0x9c0(%rsp), %rax
movq %rax, 0x5d0(%rsp)
movq 0x5d0(%rsp), %rdi
callq 0x10e50
movq %rax, 0x5c8(%rsp)
movq 0x5d0(%rsp), %rdi
callq 0x10e80
movq %rax, 0x5c0(%rsp)
leaq 0x5c8(%rsp), %rdi
leaq 0x5c0(%rsp), %rsi
callq 0x10eb0
testb $0x1, %al
jne 0xe6c1
jmp 0xeea5
leaq 0x5c8(%rsp), %rdi
callq 0x10ef0
movq (%rax), %rax
movq %rax, 0x5b8(%rsp)
movq 0x5b8(%rsp), %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x5b0(%rsp)
movq 0x5b0(%rsp), %rdi
callq 0x16010
movq %rax, 0x5a8(%rsp)
movq 0x5b0(%rsp), %rdi
callq 0x16040
movq %rax, 0x5a0(%rsp)
leaq 0x5a8(%rsp), %rdi
leaq 0x5a0(%rsp), %rsi
callq 0x16070
testb $0x1, %al
jne 0xe737
jmp 0xee91
leaq 0x5a8(%rsp), %rdi
callq 0x160b0
movq %rax, 0x598(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x598(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x5b8(%rsp), %rax
je 0xe9f8
callq 0xc860
cmpl $0x0, %eax
jne 0xe9ee
leaq 0x4f7(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xcc80
movq 0x28(%rsp), %rdx
leaq 0xa1b4c(%rip), %rsi     # 0xb02e9
leaq 0x4f8(%rsp), %rdi
callq 0x14240
jmp 0xe7ac
leaq 0x4d0(%rsp), %rdi
movl $0x167, %esi            # imm = 0x167
callq 0x15c70
jmp 0xe7c0
leaq 0x518(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
leaq 0x4d0(%rsp), %rdx
callq 0x15b80
jmp 0xe7df
leaq 0xa1b1d(%rip), %rdx     # 0xb0303
leaq 0x538(%rsp), %rdi
leaq 0x518(%rsp), %rsi
callq 0x144a0
jmp 0xe7fd
leaq 0x48f(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcc80
movq 0x20(%rsp), %rdx
leaq 0xa1aee(%rip), %rsi     # 0xb0309
leaq 0x490(%rsp), %rdi
callq 0x14240
jmp 0xe82a
leaq 0xa26c3(%rip), %rdx     # 0xb0ef4
leaq 0x4b0(%rsp), %rdi
leaq 0x490(%rsp), %rsi
callq 0x144a0
jmp 0xe848
leaq 0x558(%rsp), %rdi
leaq 0x538(%rsp), %rsi
leaq 0x4b0(%rsp), %rdx
callq 0x15b80
jmp 0xe867
leaq 0xa1ae5(%rip), %rdx     # 0xb0353
leaq 0x578(%rsp), %rdi
leaq 0x558(%rsp), %rsi
callq 0x144a0
jmp 0xe885
leaq 0x578(%rsp), %rdi
callq 0x1fbf0
jmp 0xe894
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe9dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe9cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe9c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe9b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe99b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe98e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe981
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xe974
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x578(%rsp), %rdi
callq 0xce38
leaq 0x558(%rsp), %rdi
callq 0xce38
leaq 0x4b0(%rsp), %rdi
callq 0xce38
leaq 0x490(%rsp), %rdi
callq 0xce38
leaq 0x48f(%rsp), %rdi
callq 0xc740
leaq 0x538(%rsp), %rdi
callq 0xce38
leaq 0x518(%rsp), %rdi
callq 0xce38
leaq 0x4d0(%rsp), %rdi
callq 0xce38
leaq 0x4f8(%rsp), %rdi
callq 0xce38
leaq 0x4f7(%rsp), %rdi
callq 0xc740
jmp 0xf02f
movl $0x1, %edi
callq 0xc870
leaq 0x9c0(%rsp), %rax
movq %rax, 0x480(%rsp)
movq 0x480(%rsp), %rdi
callq 0x10e50
movq %rax, 0x478(%rsp)
movq 0x480(%rsp), %rdi
callq 0x10e80
movq %rax, 0x470(%rsp)
leaq 0x478(%rsp), %rdi
leaq 0x470(%rsp), %rsi
callq 0x10eb0
testb $0x1, %al
jne 0xea50
jmp 0xee7d
leaq 0x478(%rsp), %rdi
callq 0x10ef0
movq (%rax), %rax
movq %rax, 0x468(%rsp)
movq 0x468(%rsp), %rdi
addq $0x10, %rdi
movq 0x5b8(%rsp), %rsi
addq $0x10, %rsi
callq 0x160c0
testb $0x1, %al
jne 0xea8e
jmp 0xee69
movq 0x468(%rsp), %rax
movb 0x68(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movq 0x5b8(%rsp), %rcx
movb 0x68(%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
jne 0xee69
movq 0x468(%rsp), %rax
cmpq 0x5b8(%rsp), %rax
je 0xee69
movq 0x468(%rsp), %rdi
callq 0x10f20
movq %rax, 0x18(%rsp)
jmp 0xeae1
movq 0x18(%rsp), %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, 0x460(%rsp)
movq 0x460(%rsp), %rdi
callq 0x16160
movq %rax, 0x458(%rsp)
movq 0x460(%rsp), %rdi
callq 0x16190
movq %rax, 0x450(%rsp)
leaq 0x458(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x161c0
testb $0x1, %al
jne 0xeb3c
jmp 0xee67
leaq 0x458(%rsp), %rdi
callq 0x16200
movq %rax, 0x448(%rsp)
callq 0xc090
movl $0x0, (%rax)
movq 0x448(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x468(%rsp), %rax
je 0xedfd
callq 0xc860
cmpl $0x0, %eax
jne 0xedf3
leaq 0x3a7(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xcc80
movq 0x10(%rsp), %rdx
leaq 0xa1747(%rip), %rsi     # 0xb02e9
leaq 0x3a8(%rsp), %rdi
callq 0x14240
jmp 0xebb1
leaq 0x380(%rsp), %rdi
movl $0x172, %esi            # imm = 0x172
callq 0x15c70
jmp 0xebc5
leaq 0x3c8(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
leaq 0x380(%rsp), %rdx
callq 0x15b80
jmp 0xebe4
leaq 0xa1718(%rip), %rdx     # 0xb0303
leaq 0x3e8(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x144a0
jmp 0xec02
leaq 0x33f(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xcc80
movq 0x8(%rsp), %rdx
leaq 0xa16e9(%rip), %rsi     # 0xb0309
leaq 0x340(%rsp), %rdi
callq 0x14240
jmp 0xec2f
leaq 0xa22be(%rip), %rdx     # 0xb0ef4
leaq 0x360(%rsp), %rdi
leaq 0x340(%rsp), %rsi
callq 0x144a0
jmp 0xec4d
leaq 0x408(%rsp), %rdi
leaq 0x3e8(%rsp), %rsi
leaq 0x360(%rsp), %rdx
callq 0x15b80
jmp 0xec6c
leaq 0xa16fb(%rip), %rdx     # 0xb036e
leaq 0x428(%rsp), %rdi
leaq 0x408(%rsp), %rsi
callq 0x144a0
jmp 0xec8a
leaq 0x428(%rsp), %rdi
callq 0x1fbf0
jmp 0xec99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xede1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xedd4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xedc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xedba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xeda0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xed93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xed86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xed79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x428(%rsp), %rdi
callq 0xce38
leaq 0x408(%rsp), %rdi
callq 0xce38
leaq 0x360(%rsp), %rdi
callq 0xce38
leaq 0x340(%rsp), %rdi
callq 0xce38
leaq 0x33f(%rsp), %rdi
callq 0xc740
leaq 0x3e8(%rsp), %rdi
callq 0xce38
leaq 0x3c8(%rsp), %rdi
callq 0xce38
leaq 0x380(%rsp), %rdi
callq 0xce38
leaq 0x3a8(%rsp), %rdi
callq 0xce38
leaq 0x3a7(%rsp), %rdi
callq 0xc740
jmp 0xf02f
movl $0x1, %edi
callq 0xc870
movq 0x598(%rsp), %rax
movq 0x78(%rax), %rax
movq 0x448(%rsp), %rcx
cmpq 0x78(%rcx), %rax
jne 0xee53
movq 0x598(%rsp), %rdi
movq 0x448(%rsp), %rsi
callq 0x9c4d0
movb %al, 0x7(%rsp)
jmp 0xee32
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0xee3c
jmp 0xee53
movq 0x598(%rsp), %rcx
movq 0x448(%rsp), %rax
movq %rcx, 0xa8(%rax)
jmp 0xee55
leaq 0x458(%rsp), %rdi
callq 0x16210
jmp 0xeb1e
jmp 0xee69
jmp 0xee6b
leaq 0x478(%rsp), %rdi
callq 0x10f00
jmp 0xea32
jmp 0xee7f
leaq 0x5a8(%rsp), %rdi
callq 0x16230
jmp 0xe719
jmp 0xee93
leaq 0x5c8(%rsp), %rdi
callq 0x10f00
jmp 0xe6a3
movq 0xd40e4(%rip), %rsi     # 0xe2f90
leaq 0x308(%rsp), %rdi
movl $0x2, %edx
xorl %ecx, %ecx
callq 0x16250
jmp 0xeec2
movb $0x0, 0x330(%rsp)
leaq 0x9c0(%rsp), %rdi
leaq 0x308(%rsp), %rsi
xorl %edx, %edx
callq 0x10f30
jmp 0xeee3
leaq 0x308(%rsp), %rdi
callq 0x16290
leaq 0xa78(%rsp), %rdi
callq 0xcb90
testb $0x1, %al
jne 0xefe6
leaq 0x108(%rsp), %rdi
leaq 0xa78(%rsp), %rsi
callq 0x16340
jmp 0xef1c
leaq 0xd8(%rsp), %rdi
leaq 0x108(%rsp), %rsi
movl $0x2, %edx
xorl %ecx, %ecx
callq 0x16250
jmp 0xef3a
movb $0x0, 0x100(%rsp)
leaq 0x9c0(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
movl $0x1, %edx
callq 0x10f30
jmp 0xef5e
leaq 0xd8(%rsp), %rdi
callq 0x16290
leaq 0x108(%rsp), %rdi
callq 0x16400
jmp 0xefe6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0x308(%rsp), %rdi
callq 0x16290
jmp 0xf02f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
jmp 0xefd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb30(%rsp)
movl %eax, 0xb2c(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0x16290
leaq 0x108(%rsp), %rdi
callq 0x16400
jmp 0xf02f
leaq 0x9c0(%rsp), %rdi
callq 0x116f0
leaq 0xa78(%rsp), %rdi
callq 0xce38
leaq 0xac0(%rsp), %rdi
callq 0xce38
leaq 0xb08(%rsp), %rdi
callq 0xce38
leaq 0xb60(%rsp), %rdi
callq 0xce38
addq $0xb88, %rsp            # imm = 0xB88
retq
leaq 0x9c0(%rsp), %rdi
callq 0x116f0
leaq 0xa78(%rsp), %rdi
callq 0xce38
leaq 0xac0(%rsp), %rdi
callq 0xce38
leaq 0xb08(%rsp), %rdi
callq 0xce38
leaq 0xb60(%rsp), %rdi
callq 0xce38
movq 0xb30(%rsp), %rdi
callq 0xcc70
nopl (%rax)