// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/fasta_check.cpp
// Function: (anonymous namespace)::ThisApplication::body() const
void body () const final
  {
    const string fName     = getArg ("in");
    const bool aa          = getFlag ("aa");
    const bool hyphen      = getFlag ("hyphen");
    const bool ambig       = getFlag ("ambig");
    const size_t ambig_max = str2<size_t> (getArg ("ambig_max"));
    const bool stop_codon  = getFlag ("stop_codon");
    const string lenFName  = getArg ("len");
    const string outFName  = getArg ("out");
    
    QC_IMPLY (stop_codon, aa);
    

    unique_ptr<OFStream> lenF;
    if (! lenFName. empty ())
      lenF. reset (new OFStream (lenFName));
    unique_ptr<OFStream> outF;
    if (! outFName. empty ())
      outF. reset (new OFStream (outFName));
    size_t lines = 0;
    StringVector ids;  ids. reserve (100000);  // PAR
    size_t seqSize_max = 0;
    size_t seqSize_sum = 0;
  //string errorS;
    // One sequence
    size_t xs = 0;
    string header;
    string seq;
    
    auto processSeq = [&] () 
  	  {
  	    if (! lines)
  	      return;
 	  		ASSERT (! header. empty ());
 	  		ASSERT (! ids. empty ());
 	  		const string id (ids. back ());
  	    if (aa && ! stop_codon)
  	    {  	    
    	    while (! seq. empty () && seq. back () == '*')
   	  		  if (outF)
   	  		    seq. erase (seq. size () - 1);
   	  		  else
    		      throw runtime_error (id + ": '*' at the sequence end");
    		}
  	    if (seq. empty ())
 	  		  throw runtime_error (id + ": Empty sequence");
 	  		bool skip = false;
  	    if (! ambig && xs > ambig_max)
  	    {
 	  		  if (outF)
 	  		    skip = true;
 	  		  else
  		      throw runtime_error (id + ": Too many ambiguities");
  		  }
  		  if (skip)
  		    { LOG ("Skipping " + id); }
  		  else
  		  {
     	  	if (lenF. get ())
     	  	  *lenF << id << '\t' << seq. size () << endl;
  	      if (outF)
  	        *outF << header << endl << seq << endl;
   	  	  maximize (seqSize_max, seq. size ());
   	  	  seqSize_sum += seq. size ();
   	  	}
    	  xs = 0;
    	  header. clear ();
    	  seq. clear ();
 	    };
    
    size_t nuc = 0;   
    {
      LineInput f (fName); 
      string id;
      while (f. nextLine ())
      {
        trimTrailing (f. line);
        if (f. line. empty ())
        	continue;
      	const string errorS ("File " + fName + ", " + f. lineStr (false) + ": ");
      	if (f. line [0] == '>')
      	{
      		size_t pos = 1;
      		while (pos < f. line. size () && ! isspace (f. line [pos]))
      		  pos++;
      		id = f. line. substr (1, pos - 1);
      		if (id. empty ())
      			throw runtime_error (errorS + "Empty sequence identifier");
        #if 0
      		if (id. size () > 1000)  // PAR
      			throw runtime_error (errorS + "Too long sequence identifier");
        #endif
      	  for (const char c : id)
      	  	if (! printable (c))
      	  		throw runtime_error (errorS + "Non-printable character in the sequence identifier: " + to_string ((int) c));
      	  // BLAST: PD-4548
      	  if (! aa)
      	  {
        	  if (id. front () == '?')
       	  		throw runtime_error (errorS + "Sequence identifier starts with '?'");
       	  	for (const char c : {',', ';', '.', '~'})
          	  if (id. back () == c)
         	  		throw runtime_error (errorS + "Sequence identifier ends with " + strQuote (string (1, c)));
        	  if (contains (id, "\\t"))
       	  		throw runtime_error (errorS + "Sequence identifier contains '\\t'");
        	  if (contains (id, ",,"))
       	  		throw runtime_error (errorS + "Sequence identifier contains ',,'");
       	  }
     	    processSeq ();
      	  header = f. line;
      	  ids << id;
      	}
      	else 
      	{
      		if (! lines)
      			throw runtime_error (errorS + "FASTA should start with '>'");
      	  for (const char c : f. line)
      	  {
      	    bool skip = false;
      	  	if (c == '-')
      	  		if (hyphen)
      	  			;
      	  		else
      	  		{
      	  		  if (outF)
      	  		    skip = true;
      	  		  else
  	    	  		  throw runtime_error (errorS + "Hyphen in the sequence");  	    	  		  
  	    	    }
  	    	  else
  	    	  {
  	    	  	const char c1 = toLower (c);
  	    	  	if (aa)
  	    	  	{
  		    	  	if (! charInSet (c1, "acdefghiklmnpqrstvwyxbzjuoacdefghiklmnpqrstvwyxbzjuo*"))
  		    	  		throw runtime_error (errorS + "Wrong amino acid character: (code = " + to_string ((int) c) + ") '" + c + "'");
  		    	    if (charInSet (c1, "acgt"))
  		    	    	nuc++;
  		    	    if (charInSet (c1, "xbzjuo"))
  		    	      xs++;
  		    	  }
  	    	  	else
  	    	  	{
  		    	  	if (! charInSet (c1, "acgtbdhkmnrsvwyacgtbdhkmnrsvwy"))
  		    	  		throw runtime_error (errorS + "Wrong nucleotide character: (code = " + to_string ((int) c) + ") '" + c + "'");
  		    	    if (charInSet (c1, "bdhkmnrsvwy"))
  		    	      xs++;
  		    	  }
  		    	}
  		    	if (! skip)
  		    	  seq += c;
  		    }
      	}
      	lines++;
  	  }
  	}
    processSeq ();	// Last sequence
	  if (! lines)
	  	throw runtime_error ("Empty file"); 
  	if (aa && (double) nuc / (double) seqSize_sum > 0.9)  // PAR
  		throw runtime_error ("Protein sequences looks like a nucleotide sequences");
  		
	  ids. sort ();
	  const size_t index = ids. findDuplicate ();
	  if (index != no_index)
	  	throw runtime_error ("Duplicate identifier: " + ids [index]);
	  	
	  cout << ids. size () << endl
	       << seqSize_max << endl
	       << seqSize_sum << endl;
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x538, %rsp            # imm = 0x538
movq %rdi, %r14
leaq 0x2a0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x49ac3(%rip), %rsi     # 0x540d4
leaq 0x49abe(%rip), %rdx     # 0x540d6
leaq 0x290(%rsp), %rdi
callq 0xd2ea
leaq 0x270(%rsp), %rdi
leaq 0x290(%rsp), %rdx
movq %r14, %rsi
callq 0x3599c
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xa65a
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x290(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x49a76(%rip), %rsi     # 0x540e2
leaq 0x49a71(%rip), %rdx     # 0x540e4
callq 0xd2ea
leaq 0x290(%rsp), %rsi
movq %r14, %rdi
callq 0x35b34
movl %eax, %ebx
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xa6a7
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
movb %bl, 0x7(%rsp)
leaq 0x290(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x49a52(%rip), %rsi     # 0x5410f
leaq 0x49a51(%rip), %rdx     # 0x54115
callq 0xd2ea
leaq 0x290(%rsp), %rsi
movq %r14, %rdi
callq 0x35b34
movb %al, 0x36(%rsp)
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xa6fa
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x290(%rsp), %rdi
movq %r15, (%rdi)
leaq 0x49a1e(%rip), %rsi     # 0x5412a
leaq 0x49a1c(%rip), %rdx     # 0x5412f
callq 0xd2ea
leaq 0x290(%rsp), %rsi
movq %r14, %rdi
callq 0x35b34
movl %eax, %ebp
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xa747
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
movb %bpl, 0x37(%rsp)
leaq 0x1c8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x499f1(%rip), %rsi     # 0x54151
leaq 0x499f3(%rip), %rdx     # 0x5415a
leaq 0x1b8(%rsp), %rdi
callq 0xd2ea
leaq 0x290(%rsp), %rdi
leaq 0x1b8(%rsp), %rdx
movq %r14, %rsi
callq 0x3599c
leaq 0x290(%rsp), %rdi
callq 0xd6ed
movq %rax, %r15
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xa7c1
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0xa7de
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x9530
movq %r15, 0x228(%rsp)
leaq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4998c(%rip), %rsi     # 0x5418c
leaq 0x4998f(%rip), %rdx     # 0x54196
callq 0xd2ea
leaq 0x290(%rsp), %rsi
movq %r14, %rdi
callq 0x35b34
movl %eax, %ebp
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xa843
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
movb %bpl, 0x2f(%rsp)
leaq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4996b(%rip), %rsi     # 0x541cd
leaq 0x49967(%rip), %rdx     # 0x541d0
callq 0xd2ea
leaq 0x250(%rsp), %rdi
leaq 0x290(%rsp), %rdx
movq %r14, %rsi
callq 0x3599c
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xa8ab
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
movq %rax, (%rdi)
leaq 0x4c09c(%rip), %rsi     # 0x56961
leaq 0x4c098(%rip), %rdx     # 0x56964
callq 0xd2ea
leaq 0x230(%rsp), %rdi
leaq 0x290(%rsp), %rdx
movq %r14, %rsi
callq 0x3599c
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xa90e
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
cmpb $0x1, 0x2f(%rsp)
jne 0xa92b
callq 0x9070
movl $0x0, (%rax)
cmpb $0x0, 0x7(%rsp)
je 0xb907
movq $0x0, 0xc0(%rsp)
cmpq $0x0, 0x258(%rsp)
je 0xa97a
movl $0x200, %edi            # imm = 0x200
callq 0x9520
movq %rax, %r14
leaq 0x250(%rsp), %rsi
movq %rax, %rdi
callq 0xda12
movq 0xc0(%rsp), %rdi
movq %r14, 0xc0(%rsp)
testq %rdi, %rdi
je 0xa97a
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0xb8(%rsp)
cmpq $0x0, 0x238(%rsp)
je 0xa9c9
movl $0x200, %edi            # imm = 0x200
callq 0x9520
movq %rax, %r14
leaq 0x230(%rsp), %rsi
movq %rax, %rdi
callq 0xda12
movq 0xb8(%rsp), %rdi
movq %r14, 0xb8(%rsp)
testq %rdi, %rdi
je 0xa9c9
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0xc8(%rsp)
xorpd %xmm0, %xmm0
leaq 0xd0(%rsp), %r14
movupd %xmm0, 0x9(%r14)
movapd %xmm0, (%r14)
movl $0x186a0, %esi          # imm = 0x186A0
movq %r14, %rdi
callq 0xdae4
xorl %edx, %edx
leaq 0x220(%rsp), %rax
movq %rdx, (%rax)
leaq 0x170(%rsp), %rcx
movq %rdx, (%rcx)
leaq 0x168(%rsp), %rsi
movq %rdx, (%rsi)
leaq 0x148(%rsp), %r15
movq %r15, -0x10(%r15)
movq %rdx, -0x8(%r15)
movb %dl, (%r15)
leaq 0x128(%rsp), %r12
movq %r12, -0x10(%r12)
movq %rdx, -0x8(%r12)
movb %dl, (%r12)
leaq 0xc8(%rsp), %rdx
movq %rdx, 0x1b8(%rsp)
leaq 0x138(%rsp), %rdx
movq %rdx, 0x1c0(%rsp)
movq %r14, 0x1c8(%rsp)
leaq 0x7(%rsp), %rdx
movq %rdx, 0x1d0(%rsp)
leaq 0x2f(%rsp), %rdx
movq %rdx, 0x1d8(%rsp)
leaq 0x118(%rsp), %rdx
movq %rdx, 0x1e0(%rsp)
leaq 0xb8(%rsp), %rdx
movq %rdx, 0x1e8(%rsp)
leaq 0x37(%rsp), %rdx
movq %rdx, 0x1f0(%rsp)
movq %rsi, 0x1f8(%rsp)
leaq 0x228(%rsp), %rdx
movq %rdx, 0x200(%rsp)
leaq 0xc0(%rsp), %rdx
movq %rdx, 0x208(%rsp)
movq %rax, 0x210(%rsp)
movq %rcx, 0x218(%rsp)
leaq 0x290(%rsp), %rdi
leaq 0x270(%rsp), %rsi
xorl %edx, %edx
callq 0xe2e0
leaq 0x60fde(%rip), %rax     # 0x6bae8
leaq 0x4f8(%rsp), %rcx
movq %rax, -0x268(%rcx)
movl $0x0, -0x8(%rcx)
leaq 0x508(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x528(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x100(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rax, -0x8(%r14)
movq $0x0, 0x158(%rsp)
movb %al, (%r14)
leaq 0x18(%rsp), %rbx
leaq 0xa8(%rsp), %rbp
leaq 0x118(%rsp), %r13
leaq 0x290(%rsp), %rdi
callq 0xfa92
testb %al, %al
je 0xb2c9
leaq 0x4f8(%rsp), %rdi
callq 0x1314e
cmpq $0x0, 0x500(%rsp)
je 0xab7a
leaq 0x58(%rsp), %r14
movq %r14, %rdi
leaq 0x497e7(%rip), %rsi     # 0x5439d
leaq 0x270(%rsp), %rdx
callq 0xdbcb
movq %r14, %rdi
leaq 0x497d6(%rip), %rsi     # 0x543a3
callq 0x9a00
leaq 0x48(%rsp), %rsi
movq %rsi, 0x38(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xabfa
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0xac02
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %rdi
leaq 0x290(%rsp), %rsi
xorl %edx, %edx
callq 0xdc54
movq 0x38(%rsp), %rcx
movl $0xf, %esi
leaq 0x48(%rsp), %rax
cmpq %rax, %rcx
je 0xac47
movq 0x48(%rsp), %rsi
movq 0x40(%rsp), %r8
movq 0x80(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0xac7e
movl $0xf, %esi
leaq 0x88(%rsp), %rdi
cmpq %rdi, 0x78(%rsp)
je 0xac79
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xac8f
movq 0x78(%rsp), %rsi
leaq 0x38(%rsp), %rdi
callq 0x9180
jmp 0xac9d
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x95b0
movq %rbx, 0x8(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xacbd
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0xacc5
movupd (%rcx), %xmm0
movupd %xmm0, (%rbx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x8(%rsp), %rdi
leaq 0x4a005(%rip), %rsi     # 0x54cf3
callq 0x9a00
movq %rbp, 0x98(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xad1f
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0xad28
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xad5a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xad7c
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xad98
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0xadb4
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x4f8(%rsp), %r15
cmpb $0x3e, (%r15)
jne 0xadfb
movq 0x500(%rsp), %rbx
cmpq $0x2, %rbx
jb 0xb0a8
movl $0x1, %r13d
movsbl (%r15,%r13), %edi
callq 0x90a0
testl %eax, %eax
jne 0xadf3
incq %r13
cmpq %r13, %rbx
jne 0xadda
movq %rbx, %r13
decq %r13
jmp 0xb0ab
cmpq $0x0, 0xc8(%rsp)
je 0xb9dd
movq 0x500(%rsp), %r12
testq %r12, %r12
je 0xb287
xorl %r14d, %r14d
movq %r15, 0x110(%rsp)
movq %r12, 0x160(%rsp)
movsbl (%r15,%r14), %esi
cmpl $0x2d, %esi
jne 0xae4a
cmpb $0x0, 0x36(%rsp)
je 0xafa2
xorl %eax, %eax
jmp 0xb08b
movl %esi, 0x30(%rsp)
movl %esi, %edi
callq 0x9770
movl %eax, %ebp
cmpb $0x1, 0x7(%rsp)
jne 0xafb8
movq %rbx, 0x8(%rsp)
leaq 0x8(%rsp), %r12
movq %r12, %rdi
leaq 0x4963f(%rip), %rsi     # 0x544b5
leaq 0x4966d(%rip), %rdx     # 0x544ea
callq 0xd2ea
movq %rbx, %r15
movsbl %bpl, %ebp
movq %r12, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x96c0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xaeaf
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
cmpq $-0x1, %rbx
je 0xb707
leaq 0x18(%rsp), %r15
movq %r15, 0x8(%rsp)
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x49642(%rip), %rsi     # 0x54514
leaq 0x4963f(%rip), %rdx     # 0x54518
callq 0xd2ea
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x96c0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xaf04
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
xorl %r15d, %r15d
cmpq $-0x1, %rbx
setne %bl
leaq 0x18(%rsp), %r12
movq %r12, 0x8(%rsp)
leaq 0x8(%rsp), %r13
movq %r13, %rdi
leaq 0x495f2(%rip), %rsi     # 0x54519
leaq 0x495f1(%rip), %rdx     # 0x5451f
callq 0xd2ea
movq %r13, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x96c0
movq %rax, %rbp
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0xaf59
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
movb %bl, %r15b
addq %r15, 0x158(%rsp)
cmpq $-0x1, %rbp
leaq 0x118(%rsp), %r13
movq 0x160(%rsp), %r12
je 0xaf82
incq 0x168(%rsp)
xorl %eax, %eax
leaq 0xa8(%rsp), %rbp
leaq 0x18(%rsp), %rbx
movl 0x30(%rsp), %esi
movq 0x110(%rsp), %r15
jmp 0xb08b
movb $0x1, %al
cmpq $0x0, 0xb8(%rsp)
jne 0xb08b
jmp 0xb79b
movq %rbx, 0x8(%rsp)
leaq 0x8(%rsp), %r12
movq %r12, %rdi
leaq 0x49554(%rip), %rsi     # 0x54520
leaq 0x4956b(%rip), %rdx     # 0x5453e
callq 0xd2ea
movq %rbx, %r15
movsbl %bpl, %ebp
movq %r12, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x96c0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xb005
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
cmpq $-0x1, %rbx
movq 0x160(%rsp), %r12
je 0xb7ee
leaq 0x18(%rsp), %r15
movq %r15, 0x8(%rsp)
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x49503(%rip), %rsi     # 0x54533
leaq 0x49507(%rip), %rdx     # 0x5453e
callq 0xd2ea
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x96c0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0xb062
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
cmpq $-0x1, %rbx
leaq 0xa8(%rsp), %rbp
movq 0x110(%rsp), %r15
je 0xb080
incq 0x168(%rsp)
xorl %eax, %eax
leaq 0x18(%rsp), %rbx
movl 0x30(%rsp), %esi
testb %al, %al
jne 0xb097
movq %r13, %rdi
callq 0x9480
incq %r14
cmpq %r14, %r12
jne 0xae2e
jmp 0xb287
xorl %r13d, %r13d
leaq 0x18(%rsp), %rbx
movl $0x1, %edx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
leaq 0x4f8(%rsp), %rsi
movq %r13, %rcx
callq 0x9560
leaq 0xf0(%rsp), %rdi
movq %r14, %rsi
callq 0x9670
movq 0x8(%rsp), %rdi
cmpq %rbx, %rdi
je 0xb0f4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0xf8(%rsp), %rax
testq %rax, %rax
je 0xba30
movq 0xf0(%rsp), %rcx
xorl %edx, %edx
movsbl (%rcx,%rdx), %r13d
leal -0x20(%r13), %esi
cmpb $0x5f, %sil
jae 0xb5fb
incq %rdx
cmpq %rdx, %rax
jne 0xb10f
cmpb $0x0, 0x7(%rsp)
leaq 0x118(%rsp), %r13
jne 0xb232
cmpb $0x3f, (%rcx)
je 0xbae0
movl $0x7e2e3b2c, 0x178(%rsp) # imm = 0x7E2E3B2C
movb -0x1(%rcx,%rax), %al
xorl %ecx, %ecx
movb 0x178(%rsp,%rcx), %bl
cmpb %bl, %al
je 0xb66f
incq %rcx
cmpq $0x4, %rcx
jne 0xb157
leaq 0x18(%rsp), %r14
movq %r14, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x492b3(%rip), %rsi     # 0x54438
leaq 0x492ae(%rip), %rdx     # 0x5443a
callq 0xd2ea
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rcx
leaq 0xf0(%rsp), %rdi
xorl %edx, %edx
callq 0x9920
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xb1c4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
cmpq $-0x1, %rbx
jne 0xba8d
leaq 0x18(%rsp), %r14
movq %r14, 0x8(%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x49279(%rip), %rsi     # 0x5445d
leaq 0x49274(%rip), %rdx     # 0x5445f
callq 0xd2ea
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rcx
leaq 0xf0(%rsp), %rdi
xorl %edx, %edx
callq 0x9920
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0xb223
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
cmpq $-0x1, %rbx
leaq 0x18(%rsp), %rbx
jne 0xbb33
leaq 0x1b8(%rsp), %rdi
callq 0xc548
leaq 0x138(%rsp), %rdi
leaq 0x4f8(%rsp), %rsi
callq 0x9300
leaq 0xd0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xe55c
movq 0xd8(%rsp), %rax
subq 0xd0(%rsp), %rax
cmpq $0x21, %rax
jb 0xb287
movb $0x0, 0xe8(%rsp)
incq 0xc8(%rsp)
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0xb2ac
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x148(%rsp), %r15
leaq 0x128(%rsp), %r12
leaq 0x100(%rsp), %r14
jmp 0xab7a
movq 0xf0(%rsp), %rdi
cmpq %r14, %rdi
je 0xb2e6
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x607fb(%rip), %rax     # 0x6bae8
movq %rax, 0x290(%rsp)
movq 0x518(%rsp), %rdi
leaq 0x528(%rsp), %rax
cmpq %rax, %rdi
je 0xb31a
movq 0x528(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x4f8(%rsp), %rdi
leaq 0x508(%rsp), %rax
cmpq %rax, %rdi
je 0xb33f
movq 0x508(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x6085a(%rip), %rax     # 0x6bba0
leaq 0x4b0(%rsp), %rbx
movq %rax, -0x220(%rbx)
movq %rbx, %rdi
callq 0x1f802
leaq 0x6089c(%rip), %rax     # 0x6bc00
movq %rax, -0x218(%rbx)
leaq 0x398(%rsp), %rbx
leaq 0x608ae(%rip), %rax     # 0x6bc28
movq %rax, (%rbx)
leaq 0x2a8(%rsp), %r14
movq %r14, %rdi
callq 0x9460
leaq 0x608bc(%rip), %rax     # 0x6bc50
movq %rax, -0x10(%r14)
leaq 0x608d9(%rip), %rax     # 0x6bc78
movq %rax, (%rbx)
movq $0x0, -0x8(%r14)
movq %rbx, %rdi
callq 0x91b0
leaq 0x1b8(%rsp), %rdi
callq 0xc548
cmpq $0x0, 0xc8(%rsp)
je 0xb882
cmpb $0x1, 0x7(%rsp)
jne 0xb42f
movsd 0x158(%rsp), %xmm0
movsd 0x48c2a(%rip), %xmm1    # 0x54010
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x48c2f(%rip), %xmm2    # 0x54020
subpd %xmm2, %xmm0
movapd %xmm0, %xmm3
unpckhpd %xmm0, %xmm3            # xmm3 = xmm3[1],xmm0[1]
addsd %xmm0, %xmm3
movsd 0x170(%rsp), %xmm0
unpcklps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
subpd %xmm2, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
divsd %xmm1, %xmm3
ucomisd 0x48c07(%rip), %xmm3    # 0x54030
ja 0xb9ab
leaq 0xd0(%rsp), %rdi
callq 0xdef2
leaq 0xd0(%rsp), %rdi
movl $0x1, %esi
callq 0xdf44
movq %rax, %rbx
cmpq $-0x1, %rax
jne 0xb8a3
movq 0xd8(%rsp), %rsi
subq 0xd0(%rsp), %rsi
sarq $0x5, %rsi
movq 0x61b2a(%rip), %rdi     # 0x6cfa0
callq 0x93b0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9500
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9040
movq %rax, %rdi
callq 0x93c0
movq 0x220(%rsp), %rsi
movq %rax, %rdi
callq 0x93b0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9500
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9040
movq %rax, %rdi
callq 0x93c0
movq 0x170(%rsp), %rsi
movq %rax, %rdi
callq 0x93b0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9500
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9040
movq %rax, %rdi
callq 0x93c0
movq 0x118(%rsp), %rdi
cmpq %r12, %rdi
je 0xb536
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x138(%rsp), %rdi
cmpq %r15, %rdi
je 0xb553
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0xd0(%rsp), %rdi
callq 0xe078
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0xb573
movq (%rdi), %rax
callq *0x8(%rax)
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0xb586
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x240(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb5a7
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb5c8
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x280(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb5e9
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x9530
addq $0x538, %rsp            # imm = 0x538
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48db1(%rip), %rdx     # 0x543c0
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
leaq 0x58(%rsp), %rdi
movl %r13d, %esi
callq 0xd96f
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xd8c7
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x61995(%rip), %rsi     # 0x6cff0
movq 0x6190e(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48d96(%rip), %rdx     # 0x54419
leaq 0x38(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
leaq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
movq %rax, (%rdi)
movsbl %bl, %edx
movl $0x1, %esi
callq 0x9600
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
movl $0x22, %edx
callq 0x14993
leaq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x58(%rsp), %rdx
callq 0xd8c7
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x618fd(%rip), %rsi     # 0x6cff0
movq 0x61876(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48dd0(%rip), %rdx     # 0x544eb
leaq 0x178(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
leaq 0x198(%rsp), %rdi
movl 0x30(%rsp), %esi
callq 0xd96f
leaq 0x78(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0xd8c7
leaq 0x48dae(%rip), %rsi     # 0x54510
leaq 0x78(%rsp), %rdi
callq 0x9a00
leaq 0x68(%rsp), %rcx
movq %rcx, 0x58(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbb86
movupd (%rcx), %xmm0
leaq 0x68(%rsp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbb93
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48cef(%rip), %rdx     # 0x5449e
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x61816(%rip), %rsi     # 0x6cff0
movq 0x6178f(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48d3d(%rip), %rdx     # 0x5453f
leaq 0x178(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
leaq 0x198(%rsp), %rdi
movl 0x30(%rsp), %esi
callq 0xd96f
leaq 0x78(%rsp), %rdi
leaq 0x178(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0xd8c7
leaq 0x48cc7(%rip), %rsi     # 0x54510
leaq 0x78(%rsp), %rdi
callq 0x9a00
leaq 0x68(%rsp), %rcx
movq %rcx, 0x58(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbbf6
movupd (%rcx), %xmm0
leaq 0x68(%rsp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbc03
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48cce(%rip), %rsi     # 0x54564
movq %rax, %rdi
callq 0x9220
jmp 0xb9c7
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0xd0(%rsp), %rdi
movq %rbx, %rsi
callq 0xdfe4
leaq 0x48cdc(%rip), %rsi     # 0x545a3
leaq 0x290(%rsp), %rdi
movq %rax, %rdx
callq 0xdbcb
movb $0x1, %bpl
leaq 0x290(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x616fd(%rip), %rsi     # 0x6cff0
movq 0x61676(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
callq 0x9640
testl %eax, %eax
jne 0xba83
leaq 0x128(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x48a15(%rip), %rsi     # 0x5433c
leaq 0x48a26(%rip), %rdx     # 0x54354
leaq 0x118(%rsp), %rdi
callq 0xd2ea
leaq 0xf0(%rsp), %rdi
movl $0x4e, %esi
callq 0xd96f
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
callq 0xd8c7
leaq 0x489e4(%rip), %rsi     # 0x54355
leaq 0x138(%rsp), %rdi
callq 0x9a00
leaq 0xe0(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbd00
movupd (%rcx), %xmm0
movupd %xmm0, (%r15)
jmp 0xbd13
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48bb0(%rip), %rsi     # 0x5456f
movq %rax, %rdi
callq 0x9220
movq 0x61622(%rip), %rsi     # 0x6cff0
movq 0x6159b(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48a91(%rip), %rdx     # 0x54482
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x615d4(%rip), %rsi     # 0x6cff0
movq 0x6154d(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48962(%rip), %rdx     # 0x543a6
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x61581(%rip), %rsi     # 0x6cff0
movq 0x614fa(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x1, %edi
callq 0x9650
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x4899a(%rip), %rdx     # 0x5443b
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x61524(%rip), %rsi     # 0x6cff0
movq 0x6149d(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48901(%rip), %rdx     # 0x543f5
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x614d1(%rip), %rsi     # 0x6cff0
movq 0x6144a(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movl $0x10, %edi
callq 0x92a0
movq %rax, %r14
leaq 0x48919(%rip), %rdx     # 0x54460
leaq 0x8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0xdd7e
movb $0x1, %bpl
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x6147e(%rip), %rsi     # 0x6cff0
movq 0x613f7(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
movq 0x8(%rax), %rdx
leaq 0x58(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x38(%rsp), %rdi
movl 0x30(%rsp), %edx
callq 0xddd4
leaq 0x4894e(%rip), %rsi     # 0x54512
leaq 0x38(%rsp), %rdi
callq 0x9a00
leaq 0x18(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbc66
movupd (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbc73
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
movq 0x8(%rax), %rdx
leaq 0x58(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x38(%rsp), %rdi
movl 0x30(%rsp), %edx
callq 0xddd4
leaq 0x488de(%rip), %rsi     # 0x54512
leaq 0x38(%rsp), %rdi
callq 0x9a00
leaq 0x18(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbcb4
movupd (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbcc1
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x6134d(%rip), %rsi     # 0x6cff0
movq 0x612c6(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
jmp 0xbd00
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r14, %rdi
callq 0x9880
xorl %ebp, %ebp
movq 0x612ff(%rip), %rsi     # 0x6cff0
movq 0x61278(%rip), %rdx     # 0x6cf70
movq %r14, %rdi
callq 0x9900
movq %rdx, 0xd0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xe0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0xd8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4861d(%rip), %rsi     # 0x5435b
leaq 0x48657(%rip), %rdx     # 0x5439c
leaq 0x8(%rsp), %rdi
callq 0xd2ea
leaq 0x48fcb(%rip), %rsi     # 0x54d21
leaq 0x8(%rsp), %rdi
callq 0x9a00
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbd86
movupd (%rcx), %xmm0
movupd %xmm0, (%rbp)
jmp 0xbd99
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
movq 0x8(%rax), %rsi
leaq 0x98(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b8(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xd8c7
leaq 0x4830e(%rip), %rsi     # 0x540e2
leaq 0x1b8(%rsp), %rdi
callq 0x9a00
leaq 0x2a0(%rsp), %rcx
movq %rcx, 0x290(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0xbe12
movupd (%rcx), %xmm0
leaq 0x2a0(%rsp), %rdx
movupd %xmm0, (%rdx)
jmp 0xbe25
movq %rdx, 0x290(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2a0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x290(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x10ea3
movq %rax, %rbx
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xbe76
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbe76
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0xbe98
movq 0x1c8(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbe98
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0xbeba
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbeba
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0xbed6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbed6
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
cmpq %r15, %rdi
je 0xbef8
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbef8
movq %rax, %rbx
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbf1e
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbf1e
movq %rax, %rbx
leaq 0x100(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbf8d
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbf8d
jmp 0xbf43
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xbf6c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbf6c
jmp 0xbf66
movq %rax, %rbx
movb $0x1, %bpl
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xbfbb
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xbfbb
movq %rax, %rbx
movq 0x118(%rsp), %rdi
cmpq %r14, %rdi
je 0xc4dd
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc4dd
jmp 0xbfb5
movq %rax, %rbx
movb $0x1, %bpl
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0xc007
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc007
jmp 0xc345
jmp 0xc3ec
jmp 0xc345
jmp 0xc3ec
jmp 0xc345
jmp 0xc3ec
movq %rax, %rbx
jmp 0xc4dd
jmp 0xc001
movq %rax, %rbx
movb $0x1, %bpl
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc084
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc084
jmp 0xc3e7
jmp 0xc345
jmp 0xc3ec
jmp 0xc345
jmp 0xc3ec
jmp 0xc3e7
movq %rax, %rbx
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xc167
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc167
jmp 0xc0f8
jmp 0xc07e
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x1a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc105
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc105
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xc0ce
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc0ce
movq %rax, %rbx
movb $0x1, %bpl
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0xc183
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc183
jmp 0xc3e7
movq %rax, %rbx
jmp 0xc170
jmp 0xc0ff
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x188(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc3f2
movq 0x188(%rsp), %rsi
jmp 0xc3dd
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x9530
jmp 0xc4b7
movq %rax, %rbx
jmp 0xc4b7
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x9530
jmp 0xc4ca
movq %rax, %rbx
jmp 0xc4ca
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0xc470
movq %r14, %rdi
callq 0x9400
jmp 0xc470
movq %rax, %rbx
movb $0x1, %bpl
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc3c9
movq 0x88(%rsp), %rsi
jmp 0xc3ab
movq %rax, %rbx
jmp 0xc1fc
movq %rax, %rbx
jmp 0xc218
movq %rbx, %rcx
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rcx, %rdi
je 0xc1da
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc1da
movq %rax, %rbx
jmp 0xc424
movq %rax, %rbx
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xc1fc
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xc218
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0xc424
movq 0x68(%rsp), %rsi
jmp 0xc41c
jmp 0xc42e
movq %rax, %rbx
jmp 0xc4aa
movq %rax, %rbx
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xc4fe
movq 0x2a0(%rsp), %rsi
jmp 0xc4f6
movq %rax, %rbx
jmp 0xc4fe
jmp 0xc27a
jmp 0xc30f
movq %rax, %rbx
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
jne 0xc302
jmp 0xc51f
jmp 0xc30f
movq %rax, %rbx
movq 0x290(%rsp), %rdi
leaq 0x2a0(%rsp), %rax
cmpq %rax, %rdi
je 0xc2c6
movq 0x2a0(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc2c6
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r12, %rdi
je 0xc51f
movq 0x1c8(%rsp), %rsi
jmp 0xc517
jmp 0xc30f
jmp 0xc2ee
jmp 0xc30f
jmp 0xc2ee
jmp 0xc30f
movq %rax, %rbx
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xc51f
movq 0x2a0(%rsp), %rsi
jmp 0xc517
movq %rax, %rbx
jmp 0xc51f
movq %rax, %rbx
movq 0x290(%rsp), %rdi
cmpq %r15, %rdi
je 0xc540
movq 0x2a0(%rsp), %rsi
jmp 0xc538
movq %rax, %rbx
jmp 0xc540
jmp 0xc3ec
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xc3f2
movq 0x18(%rsp), %rsi
jmp 0xc3dd
jmp 0xc3ec
jmp 0xc3ec
jmp 0xc3e7
jmp 0xc3c3
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0xc397
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc397
movq %rax, %rbx
movb $0x1, %bpl
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0xc3c9
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc3c9
jmp 0xc3e7
jmp 0xc3e7
jmp 0xc3e7
jmp 0xc3e7
jmp 0xc3e7
jmp 0xc42e
jmp 0xc3ec
movq %rax, %rbx
movb $0x1, %bpl
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xc3f2
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x9530
jmp 0xc3f2
movq %rax, %rbx
jmp 0xc3ff
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0xc3ff
movq %r14, %rdi
callq 0x9400
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0xc424
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x100(%rsp), %r14
jmp 0xc436
movq %rax, %rbx
jmp 0xc470
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
cmpq %r14, %rdi
je 0xc453
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x290(%rsp), %rdi
callq 0xde36
leaq 0x148(%rsp), %r15
leaq 0x128(%rsp), %r12
movq 0x118(%rsp), %rdi
cmpq %r12, %rdi
je 0xc48d
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x9530
movq 0x138(%rsp), %rdi
cmpq %r15, %rdi
je 0xc4aa
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0xd0(%rsp), %rdi
callq 0xe078
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0xc4ca
movq (%rdi), %rax
callq *0x8(%rax)
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0xc4dd
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x240(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc4fe
movq 0x240(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc51f
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x9530
leaq 0x280(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc540
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x9530
movq %rbx, %rdi
callq 0x9950