// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::BlastAlignment::BlastAlignment(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool)
BlastAlignment (const string &line,
                  bool targetProt_arg)
    : Alignment (line, targetProt_arg, true)
    , fromHmm (false)
    {
    	try 
    	{
        try
        {	
		      // refName	    
			    product                     =                     rfindSplit (refName, '|'); 
			    classS                      =                     rfindSplit (refName, '|'); 
			    subclass                    =                     rfindSplit (refName, '|'); 
			    reportable                  = (uchar) str2<int>  (rfindSplit (refName, '|')); 
			    resistance                  =                     rfindSplit (refName, '|'); 
			    gene                        =                     rfindSplit (refName, '|');  // Reportable_vw.class
			    famId                       =                     rfindSplit (refName, '|');  // Reportable_vw.fam
			    parts                       = (size_t) str2<int> (rfindSplit (refName, '|'));
			    part                        = (size_t) str2<int> (rfindSplit (refName, '|'));
			    refAccession                =                     rfindSplit (refName, '|');
			    str2<long> (refName);  // gi: dummy
  		    if (contains (refAccession, ':'))
  		    {
  		      QC_ASSERT (isMutationProt ());
  		      const string geneMutation =               rfindSplit (refAccession, ':');
  		      const size_t pos          = str2<size_t> (rfindSplit (refAccession, ':'));
  		      ASSERT (refMutation. empty ());
  		      refMutation = std::move (AmrMutation (pos, geneMutation));
  		      QC_ASSERT (! refMutation. empty ());
  		      refMutation. qc ();
  		    }
			  }
			  catch (const exception &e)
			  {
			  	throw runtime_error (string ("Bad AMRFinder database\n") + e. what () + "\n" + line);
			  }
		    QC_ASSERT (! refAccession. empty ());
		    refName = refAccession;
		    	    
		    replace (product,  '_', ' ');
		    replace (classS,   '_', ' ');
		    replace (subclass, '_', ' ');
		    
        // BlastRule
		    // PD-2310
        if (inFam ())
        {
  		    // PD-4856
  		    ASSERT (! brFam);
  		    // brFam
          EXEC_ASSERT (brFam = getFam ());          
          while (brFam)
          {
            if (partial ())
            {
            #if 0
              PRINT (brFam->id);
              PRINT (brFam->genesymbol);
              PRINT (brFam->partialBR);
              PRINT (pIdentity ());
              PRINT (refCoverage ());
            #endif
              if (passBlastRule (brFam->partialBR))
              {
              //cout << "match!" << endl;
            	  break;
            	}
            }
            else
              if (passBlastRule (brFam->completeBR))
              {
              #if 0
                PRINT (brFam->id);
                PRINT (brFam->genesymbol);
                PRINT (brFam->completeBR);
                PRINT (pIdentity ());
                PRINT (refCoverage ());
              #endif
            	  break;
            	}
            brFam = brFam->parent;
          }
  		  }
  		  else
  		  {
		      completeBR = defaultCompleteBR;
		      partialBR  = defaultPartialBR;
		    }
		    	
		    partialDna = false;
		    constexpr size_t mismatchTailDna = 10;  // PAR
		    if (! targetProt && targetEnd - targetStart >= 30)  // PAR, PD-671
		    {
		           if (refStart > 0      && targetTail (true)  <= mismatchTailDna)  partialDna = true;
		      else if (refEnd   < refLen && targetTail (false) <= mismatchTailDna)  partialDna = true;
		    }
	
	      setTargetAlign ();	    
		    
		    if (contains (targetSeq, "*"))  
		      stopCodon = true;
		    IMPLY (! targetProt, (targetEnd - targetStart) % 3 == 0);   // redundant ??
		  	  
		  	// PD-1280
		    if (   (! targetProt || targetStart < domain_min)  // PD-2381
		        && refStart == 0 
		        && charInSet (targetSeq [0], "LIV") 
		        && nident < targetAlign_aa
		       )
		      nident++;
		    	    
		    if (! targetProt)
		      cdss. emplace_back (0, targetName, targetStart, targetEnd, targetStrand, partialDna, 0, noString, noString);
	
  	    if (isMutationProt ())
  		    if (const Vector<AmrMutation>* refMutations = findPtr (accession2mutations, refAccession))
  		    {
  		    	if (verbose ())
  		        cout << "AmrMutation protein found: " << refAccession << endl << line << endl;
    	      setSeqChanges (*refMutations, 0);
    	      if (verbose ())
    	        cout << endl;
  		    }

		    susceptible = findPtr (accession2susceptible, refAccession);
		  }
		  catch (...)
		  {
		  	cout << line << endl;
		  	throw;
		  }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
movq %rdi, %rbx
pushq $0x1
popq %rcx
movq %rsi, 0xe8(%rsp)
callq 0x63608
leaq 0x7e0b5(%rip), %rax     # 0x953e0
movq %rax, (%rbx)
leaq 0x260(%rbx), %rax
xorps %xmm0, %xmm0
movups %xmm0, 0x238(%rbx)
andl $0x0, 0x247(%rbx)
movq %rax, 0x250(%rbx)
andq $0x0, 0x258(%rbx)
xorl %eax, %eax
movb %al, 0x260(%rbx)
pushq $0x1
popq %rcx
movq %rcx, 0x270(%rbx)
movq %rcx, 0x278(%rbx)
movups %xmm0, 0x280(%rbx)
movups %xmm0, 0x289(%rbx)
movb %al, 0x2a0(%rbx)
leaq 0x2b8(%rbx), %rcx
movq %rcx, 0x2a8(%rbx)
andq $0x0, 0x2b0(%rbx)
movb %al, 0x2b8(%rbx)
leaq 0x2d8(%rbx), %rcx
movq %rcx, 0x2c8(%rbx)
andq $0x0, 0x2d0(%rbx)
leaq 0x250(%rbx), %r8
leaq 0x2a8(%rbx), %rbp
movb %al, 0x2d8(%rbx)
leaq 0x2f8(%rbx), %rcx
movq %rcx, 0x2e8(%rbx)
andq $0x0, 0x2f0(%rbx)
leaq 0x2c8(%rbx), %rcx
movq %rcx, 0x118(%rsp)
movb %al, 0x2f8(%rbx)
movb %al, 0x308(%rbx)
leaq 0x320(%rbx), %rcx
movq %rcx, 0x310(%rbx)
andq $0x0, 0x318(%rbx)
leaq 0x2e8(%rbx), %rcx
movq %rcx, 0x120(%rsp)
movb %al, 0x320(%rbx)
leaq 0x340(%rbx), %rcx
movq %rcx, 0x330(%rbx)
andq $0x0, 0x338(%rbx)
movb %al, 0x340(%rbx)
andq $0x0, 0x350(%rbx)
leaq 0x7de21(%rip), %rcx     # 0x95270
movq %rcx, 0x358(%rbx)
andq $0x0, 0x370(%rbx)
leaq 0x310(%rbx), %rdx
movq %rdx, 0x108(%rsp)
movups %xmm0, 0x360(%rbx)
movq %rcx, 0x378(%rbx)
movups %xmm0, 0x380(%rbx)
andq $0x0, 0x390(%rbx)
leaq 0x3a8(%rbx), %rcx
movq %rcx, 0x398(%rbx)
andq $0x0, 0x3a0(%rbx)
leaq 0x330(%rbx), %rcx
movq %rcx, 0x100(%rsp)
leaq 0x398(%rbx), %r12
movb %al, 0x3a8(%rbx)
leaq 0x3b8(%rbx), %rax
movq %rax, 0x110(%rsp)
movups %xmm0, 0x3b8(%rbx)
movups %xmm0, 0x3c1(%rbx)
movups %xmm0, 0x3d8(%rbx)
leaq 0x78(%rbx), %r13
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
movq %r8, %r14
movq %r8, 0xf0(%rsp)
movq %r12, 0xf8(%rsp)
movq %rbp, 0x148(%rsp)
callq 0x314b5
leaq 0x150(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %r15
movq 0x108(%rsp), %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
movq %rbp, %r12
callq 0x314b5
leaq 0x150(%rsp), %r15
movq 0x100(%rsp), %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %rdi
callq 0x27ef8
movb %al, 0x308(%rbx)
leaq 0x150(%rsp), %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %r15
movq 0x120(%rsp), %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %r15
movq 0x118(%rsp), %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %r15
movq %r12, %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
movq 0xf8(%rsp), %rbp
callq 0x314b5
leaq 0x150(%rsp), %rdi
callq 0x27ef8
cltq
movq %rax, 0x278(%rbx)
leaq 0x150(%rsp), %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %rdi
callq 0x27ef8
cltq
movq %rax, 0x270(%rbx)
leaq 0x150(%rsp), %rdi
callq 0xbb38
leaq 0x150(%rsp), %rdi
pushq $0x7c
popq %rdx
movq %r13, %rsi
callq 0x314b5
leaq 0x150(%rsp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0xb6b0
movq %r15, %rdi
callq 0xbb38
movq %r13, %rdi
callq 0x2a533
pushq $0x3a
popq %rsi
movq %r14, %rdi
callq 0x29a9f
movl %eax, %r12d
callq 0xb060
movq %rax, %r15
testb %r12b, %r12b
je 0x177ef
andl $0x0, (%r15)
movq %rbx, %rdi
callq 0x202a8
testb %al, %al
je 0x17c4f
leaq 0x8(%rsp), %rdi
pushq $0x3a
popq %rdx
movq %r14, %rsi
callq 0x314b5
leaq 0x150(%rsp), %rdi
pushq $0x3a
popq %rdx
movq %r14, %rsi
callq 0x314b5
leaq 0x150(%rsp), %rdi
callq 0x2a66c
movq %rax, %r12
leaq 0x150(%rsp), %rdi
callq 0xbb38
andl $0x0, (%r15)
cmpq $0x0, 0xe8(%rbx)
jne 0x17d26
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rdx
movq %r12, %rsi
callq 0x2a7a6
leaq 0xd0(%rbx), %r12
leaq 0x150(%rsp), %rbp
movq %r12, %rdi
movq %rbp, %rsi
callq 0x292bc
movq %rbp, %rdi
callq 0x271bc
andl $0x0, (%r15)
cmpq $0x0, 0xe8(%rbx)
je 0x17e05
movq %r12, %rdi
movq 0xf8(%rsp), %rbp
callq 0x5f156
leaq 0x8(%rsp), %rdi
callq 0xbb38
andl $0x0, (%r15)
cmpq $0x0, 0x258(%rbx)
je 0x17b78
movq %r13, %rdi
movq %r14, %rsi
callq 0xb330
pushq $0x5f
popq %rsi
pushq $0x20
popq %rdx
movq %rbp, %rdi
callq 0x3025f
pushq $0x5f
popq %rsi
pushq $0x20
popq %rdx
movq 0x108(%rsp), %rdi
callq 0x3025f
pushq $0x5f
popq %rsi
pushq $0x20
popq %rdx
movq 0x100(%rsp), %rdi
callq 0x3025f
movq %rbx, %rdi
callq 0x202bc
testb %al, %al
je 0x178b7
andl $0x0, (%r15)
cmpq $0x0, 0x350(%rbx)
jne 0x17edf
movq %rbx, %rdi
callq 0x202da
movq %rax, %r12
movq %r12, 0x350(%rbx)
testq %r12, %r12
je 0x178ef
movq %rbx, %rdi
callq 0x2056c
testb %al, %al
je 0x17895
addq $0xc0, %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0x205dc
jmp 0x178a7
addq $0xa0, %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0x205dc
testb %al, %al
jne 0x178ef
movq 0x350(%rbx), %rax
movq (%rax), %r12
jmp 0x17869
leaq 0x360(%rbx), %rax
leaq 0x380(%rbx), %rcx
movq 0x7fcfc(%rip), %rdx     # 0x975c8
movq %rdx, 0x10(%rax)
movups 0x7fce1(%rip), %xmm0    # 0x975b8
movups %xmm0, (%rax)
movq 0x7fd07(%rip), %rax     # 0x975e8
movq %rax, 0x10(%rcx)
movups 0x7fcec(%rip), %xmm0    # 0x975d8
movups %xmm0, (%rcx)
leaq 0x248(%rbx), %r13
movb $0x0, 0x248(%rbx)
cmpb $0x0, 0x8(%rbx)
jne 0x17960
movq 0x50(%rbx), %rax
movq 0x58(%rbx), %rcx
movq %rcx, %rdx
subq %rax, %rdx
cmpq $0x1e, %rdx
jb 0x17960
cmpq $0x0, 0xb8(%rbx)
je 0x17936
movq 0x60(%rbx), %rdx
subq %rcx, %rdx
cmpb $0x0, 0x68(%rbx)
cmovneq %rax, %rdx
cmpq $0xb, %rdx
jb 0x1795b
movq 0xc0(%rbx), %rdx
cmpq 0xc8(%rbx), %rdx
jae 0x17960
movq 0x60(%rbx), %rdx
subq %rcx, %rdx
cmpb $0x0, 0x68(%rbx)
cmoveq %rax, %rdx
cmpq $0xa, %rdx
ja 0x17960
movb $0x1, (%r13)
movq %rbx, %rdi
callq 0x1ada0
leaq 0x54335(%rip), %rsi     # 0x6bca4
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x27230
leaq 0x30(%rbx), %r12
leaq 0x150(%rsp), %rbp
movq %r12, %rdi
movq %rbp, %rsi
callq 0x29ab0
movl %eax, %r14d
movq %rbp, %rdi
callq 0xbb38
testb %r14b, %r14b
je 0x179af
movb $0x1, 0x249(%rbx)
movb 0x8(%rbx), %cl
cmpb $0x1, %cl
movq 0xf0(%rsp), %r14
jne 0x179c5
movq 0x50(%rbx), %rsi
jmp 0x179e5
andl $0x0, (%r15)
movq 0x50(%rbx), %rsi
movq 0x58(%rbx), %rax
subq %rsi, %rax
pushq $0x3
popq %rdi
xorl %edx, %edx
divq %rdi
testq %rdx, %rdx
jne 0x17fb6
xorb $0x1, %cl
cmpq $0x14, %rsi
setb %al
orb %cl, %al
cmpb $0x1, %al
jne 0x17a64
cmpq $0x0, 0xb8(%rbx)
jne 0x17a64
movq (%r12), %rax
movb (%rax), %bpl
leaq 0x5280c(%rip), %rsi     # 0x6a219
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x27230
movsbl %bpl, %edi
leaq 0x150(%rsp), %r14
movq %r14, %rsi
callq 0x2a87a
movl %eax, %ebp
movq 0x200(%rbx), %r15
movq 0x240(%rbx), %r12
movq %r14, %rdi
callq 0xbb38
testb %bpl, %bpl
movq 0xf0(%rsp), %r14
je 0x17a64
cmpq %r12, %r15
jae 0x17a64
incq 0x200(%rbx)
cmpb $0x0, 0x8(%rbx)
jne 0x17aac
leaq 0x150(%rsp), %rsi
andl $0x0, (%rsi)
leaq 0x50(%rbx), %rcx
leaq 0x10(%rbx), %rdx
leaq 0x58(%rbx), %r8
leaq 0x68(%rbx), %r9
andl $0x0, 0x8(%rsp)
leaq 0x803f7(%rip), %rax     # 0x97e88
movq 0x110(%rsp), %rdi
pushq %rax
pushq %rax
leaq 0x18(%rsp), %rax
pushq %rax
pushq %r13
callq 0x2a892
addq $0x20, %rsp
movq %rbx, %rdi
callq 0x202a8
testb %al, %al
je 0x17b40
leaq 0x7ffb5(%rip), %rdi     # 0x97a78
movq %r14, %rsi
callq 0x2a918
movq %rax, %r15
testq %rax, %rax
je 0x17b40
xorl %edi, %edi
callq 0x34c33
testb %al, %al
je 0x17b1c
movq 0x7f4ab(%rip), %rdi     # 0x96f90
leaq 0x52731(%rip), %rsi     # 0x6a21d
callq 0xb550
movq %rax, %rdi
movq %r14, %rsi
callq 0xb4f0
movq %rax, %rdi
callq 0xb2d0
movq %rax, %rdi
movq 0xe8(%rsp), %rsi
callq 0xb4f0
movq %rax, %rdi
callq 0xb2d0
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x6441c
xorl %edi, %edi
callq 0x34c33
testb %al, %al
je 0x17b40
movq 0x7f455(%rip), %rdi     # 0x96f90
callq 0xb2d0
addq $0x3d8, %rbx            # imm = 0x3D8
movq %r14, %rdi
callq 0x1ff0c
leaq 0x7ff8a(%rip), %rcx     # 0x97ae0
leaq 0x40(%rax), %rdx
xorl %esi, %esi
cmpq %rcx, %rax
cmovneq %rdx, %rsi
movq %rsi, (%rbx)
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb680
testl %eax, %eax
jne 0x17e00
leaq 0x51d9b(%rip), %rsi     # 0x69927
leaq 0x68(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x27230
leaq 0xc8(%rsp), %rdi
movl $0x1ab, %esi            # imm = 0x1AB
callq 0x279bd
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x27956
leaq 0x51d71(%rip), %rdx     # 0x6993f
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x273ec
leaq 0x52575(%rip), %rsi     # 0x6a159
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0x52213(%rip), %rdx     # 0x69e10
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x273ec
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x525a5(%rip), %rdx     # 0x6a1d5
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
callq 0xb680
testl %eax, %eax
jne 0x1808d
leaq 0x51cc4(%rip), %rsi     # 0x69927
leaq 0x68(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x27230
leaq 0xc8(%rsp), %rdi
movl $0x19e, %esi            # imm = 0x19E
callq 0x279bd
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x27956
leaq 0x51c9a(%rip), %rdx     # 0x6993f
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x273ec
leaq 0x5249e(%rip), %rsi     # 0x6a159
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0x5213c(%rip), %rdx     # 0x69e10
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x273ec
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x5309e(%rip), %rdx     # 0x6ada5
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
callq 0xb680
testl %eax, %eax
jne 0x1808f
leaq 0x51bed(%rip), %rsi     # 0x69927
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0xa8(%rsp), %rdi
movl $0x1a1, %esi            # imm = 0x1A1
callq 0x279bd
leaq 0x68(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x51bc0(%rip), %rdx     # 0x6993f
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x273ec
leaq 0x523c4(%rip), %rsi     # 0x6a159
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x27230
leaq 0x52062(%rip), %rdx     # 0x69e10
leaq 0x88(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x273ec
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x27956
leaq 0x523c6(%rip), %rdx     # 0x6a1a7
leaq 0x150(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
jmp 0x18095
callq 0xb680
testl %eax, %eax
jne 0x18091
leaq 0x51b0e(%rip), %rsi     # 0x69927
leaq 0xc8(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0xa8(%rsp), %rdi
movl $0x1a3, %esi            # imm = 0x1A3
callq 0x279bd
leaq 0x68(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x51ae1(%rip), %rdx     # 0x6993f
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x273ec
leaq 0x522e5(%rip), %rsi     # 0x6a159
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x27230
leaq 0x51f83(%rip), %rdx     # 0x69e10
leaq 0x88(%rsp), %rdi
leaq 0x128(%rsp), %rsi
callq 0x273ec
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x27956
leaq 0x522e5(%rip), %rdx     # 0x6a1a5
leaq 0x150(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
callq 0xb680
testl %eax, %eax
jne 0x18093
leaq 0x51a34(%rip), %rsi     # 0x69927
leaq 0x68(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x27230
leaq 0xc8(%rsp), %rdi
movl $0x1b7, %esi            # imm = 0x1B7
callq 0x279bd
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x27956
leaq 0x51a0a(%rip), %rdx     # 0x6993f
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x273ec
leaq 0x5220e(%rip), %rsi     # 0x6a159
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0x51eac(%rip), %rdx     # 0x69e10
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x273ec
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x52257(%rip), %rdx     # 0x6a1ee
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
callq 0xb680
testl %eax, %eax
jne 0x18095
leaq 0x5195d(%rip), %rsi     # 0x69927
leaq 0x68(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x27230
leaq 0xc8(%rsp), %rdi
movl $0x1ec, %esi            # imm = 0x1EC
callq 0x279bd
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x27956
leaq 0x51933(%rip), %rdx     # 0x6993f
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x273ec
leaq 0x52137(%rip), %rsi     # 0x6a159
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x27230
leaq 0x51dd5(%rip), %rdx     # 0x69e10
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x273ec
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x27956
leaq 0x52188(%rip), %rdx     # 0x6a1f6
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
callq 0x2f08c
jmp 0x18095
jmp 0x18095
jmp 0x18095
jmp 0x18095
pushq $0x1
popq %rdi
callq 0xb690
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x180b2
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xbb38
jmp 0x1815d
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x180d6
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xbb38
jmp 0x1816f
movq %rdx, %r15
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x18100
movq %rdx, %r15
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x18184
movq %rdx, %r15
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x18127
movq %rdx, %r15
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x18199
movq %rdx, %r15
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x1814e
movq %rdx, %r15
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xbb38
jmp 0x181cf
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x181e1
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x181f3
movq %rdx, %r15
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x18208
movq %rdx, %r15
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x1821d
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x181bd
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0xbb38
jmp 0x1822f
movq %rdx, %r15
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x18244
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x18256
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x18265
movq %rdx, %r15
movq %rax, %r14
leaq 0x128(%rsp), %rdi
callq 0xbb38
jmp 0x18277
movq %rdx, %r15
movq %rax, %r14
leaq 0x128(%rsp), %rdi
callq 0xbb38
jmp 0x18289
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x18298
movq %rdx, %r15
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x182ad
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x182bc
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x182cb
movq %rdx, %r15
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x182dd
movq %rdx, %r15
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x182ef
movq %rax, %r14
leaq 0x88(%rsp), %rdi
callq 0xbb38
jmp 0x182fe
movq %rdx, %r15
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x18310
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x1831f
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x18324
movq %rdx, %r15
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xbb38
jmp 0x1833c
movq %rdx, %r15
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xbb38
jmp 0x18351
movq %rax, %r14
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x18363
movq %rdx, %r15
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x18375
movq %rax, %r14
jmp 0x18324
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0xbb38
jmp 0x183d6
movq %rdx, %r15
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x18399
movq %rdx, %r15
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb38
jmp 0x18399
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x183a6
movq %rdx, %r15
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0xbb38
jmp 0x183bb
jmp 0x18386
movq %rax, %r14
jmp 0x183d6
movq %rdx, %r15
movq %rax, %r14
jmp 0x18399
movq %rdx, %r15
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
jmp 0x1840d
movq %rax, %r14
leaq 0xc8(%rsp), %rdi
callq 0xbb38
jmp 0x183d6
movq %rdx, %r15
movq %rax, %r14
leaq 0x68(%rsp), %rdi
jmp 0x1844d
jmp 0x18575
jmp 0x18575
jmp 0x18414
jmp 0x18414
movq %rax, %r14
leaq 0x68(%rsp), %rdi
callq 0xbb38
jmp 0x18578
jmp 0x1845a
jmp 0x18575
jmp 0x18575
jmp 0x18575
jmp 0x18575
jmp 0x18414
jmp 0x18414
movq %rdx, %r15
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x1841a
movq %rdx, %r15
movq %rax, %r14
leaq 0x8(%rsp), %rdi
jmp 0x1844d
jmp 0x1845a
jmp 0x18575
jmp 0x18575
jmp 0x1845a
jmp 0x1845a
jmp 0x1843f
jmp 0x1845a
jmp 0x1843f
jmp 0x1845a
jmp 0x1845a
jmp 0x1845a
jmp 0x1845a
movq %rdx, %r15
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x18460
jmp 0x1845a
jmp 0x1845a
jmp 0x1845a
movq %rdx, %r15
movq %rax, %r14
cmpl $0x2, %r15d
jne 0x18578
movq %r14, %rdi
callq 0xb260
movq %rax, %r12
pushq $0x10
popq %rdi
callq 0xb2e0
movq %rax, %r15
leaq 0x51d36(%rip), %rsi     # 0x6a1bd
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x27230
movq (%r12), %rax
movq %r12, %rdi
callq *0x10(%rax)
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movq %rax, %rdx
callq 0x273ec
leaq 0x557ca(%rip), %rdx     # 0x6dc83
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x273ec
leaq 0x150(%rsp), %rdi
leaq 0x8(%rsp), %rsi
movq 0xe8(%rsp), %rdx
callq 0x281bb
movb $0x1, %bpl
leaq 0x150(%rsp), %rsi
movq %r15, %rdi
callq 0xb8f0
xorl %ebp, %ebp
movq 0x7eaf2(%rip), %rsi     # 0x96ff0
movq 0x7ea63(%rip), %rdx     # 0x96f68
movq %r15, %rdi
callq 0xb990
jmp 0x185a8
movq %rax, %r14
leaq 0x150(%rsp), %rdi
callq 0xbb38
jmp 0x1852a
movq %rax, %r14
movb $0x1, %bpl
leaq 0x8(%rsp), %rdi
callq 0xbb38
jmp 0x1853c
movq %rax, %r14
movb $0x1, %bpl
leaq 0x48(%rsp), %rdi
callq 0xbb38
jmp 0x1854e
movq %rax, %r14
movb $0x1, %bpl
leaq 0x28(%rsp), %rdi
callq 0xbb38
testb %bpl, %bpl
jne 0x18566
jmp 0x1856e
jmp 0x18575
jmp 0x18575
movq %rax, %r14
movq %r15, %rdi
callq 0xb440
callq 0xb920
jmp 0x18578
movq %rax, %r14
leaq 0x280(%rbx), %r15
movq %r14, %rdi
callq 0xb260
movq 0x7ea02(%rip), %rdi     # 0x96f90
movq 0xe8(%rsp), %rsi
callq 0xb4f0
movq %rax, %rdi
callq 0xb2d0
callq 0xb7e0
movq %rax, %r12
callq 0xb920
movq 0x110(%rsp), %rdi
callq 0x2a27c
movq 0xf8(%rsp), %rdi
callq 0xbb38
movq 0x100(%rsp), %rdi
callq 0xbb38
movq 0x108(%rsp), %rdi
callq 0xbb38
movq 0x120(%rsp), %rdi
callq 0xbb38
movq 0x118(%rsp), %rdi
callq 0xbb38
movq 0x148(%rsp), %rdi
callq 0xbb38
movq %r15, %rdi
callq 0x20172
movq 0xf0(%rsp), %rdi
callq 0xbb38
movq %rbx, %rdi
callq 0x2a29e
movq %r12, %rdi
callq 0xb9f0
movq %rax, %rdi
callq 0x270c5