// File: /workspace/github_cpp_makefile_star2_O3/ncbi[P]amr/gff.cpp
// Function: GFF_sp::Annot::Annot(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, GFF_sp::Gff::Type, bool, bool)
Annot::Annot (const string &fName,
              Gff::Type gffType,
	            bool protMatch,
	            bool lcl)
{
  IMPLY (protMatch,    gffType == Gff::genbank 
                    || gffType == Gff::microscope 
                    || gffType == Gff::prodigal
        );
  IMPLY (gffType == Gff::microscope, protMatch);
//IMPLY (trimProject, gffType == Gff::genbank);
  IMPLY (lcl, gffType == Gff::pgap);

	if (fName. empty ())
		throw runtime_error ("Empty GFF file name");
	
  LineInput f (fName /*, 100 * 1024, 1*/);
  while (f. nextLine ())
  {
    trim (f. line);
    
    if (   (   gffType == Gff::prokka
            || gffType == Gff::bakta
           )
        && f. line == "##FASTA"
       )
      break;
    
    if (   f. line. empty () 
        || f. line [0] == '#'
       )
      continue;

    try
    {
      /*1*/       string contig     (unescape (findSplit (f. line, '\t')));
      /*2*/ const string source     (unescape (findSplit (f. line, '\t')));
      /*3*/ const string type       (unescape (findSplit (f. line, '\t')));
      /*4*/ const string startS     (unescape (findSplit (f. line, '\t')));
      /*5*/ const string stopS      (unescape (findSplit (f. line, '\t')));
      /*6*/ const string score      (unescape (findSplit (f. line, '\t')));  // real number
      /*7*/ const string strand     (unescape (findSplit (f. line, '\t')));
      /*8*/ const string phase      (unescape (findSplit (f. line, '\t')));  // frame
      /*9*/ string attributes (f. line);  
      
      trim (attributes);
      if (attributes. empty ())
      	throw runtime_error ("9 fields are expected in each line");

    #if 0
      if (trimProject)
        if (contains (contig, ":"))
          findSplit (contig, ':');  // = project_id
    #endif
      if (contig. empty ())
      	throw runtime_error ("empty sequence indentifier");
  	  for (const char c : contig)
  	  	if (! printable (c))
  	  		throw runtime_error ("Non-printable character in the sequence identifier: " + to_string (c));

      if (   type != "CDS"
          && type != "gene"
          && type != "pseudogene"
         )
        continue;
        
      if (gffType == Gff::pgap && type != "CDS")
        continue;
        
      long start = -1;
      if (! str2<long> (startS, start))
	    	throw runtime_error ("Cannot read start");
      if (start <= 0)
      	throw runtime_error ("start should be >= 1");
        
      long stop = -1;
      if (! str2<long> (stopS, stop))
 	    	throw runtime_error ("Cannot read stop");
      if (stop <= 0)
      	throw runtime_error ("stop should be >= 1");

      if (start > stop)
      	throw runtime_error ("start cannot be greater than stop");

      start--;    	
      	
      if (   strand != "+" 
          && strand != "-"
         )
      	throw runtime_error ("strand should be '+' or '-'");
             
      const bool pseudo =    contains (attributes, "pseudo=true")
                          || contains (attributes, "gene_biotype=pseudogene")
                          || type == "pseudogene";
    //if (pseudo && type == "CDS")  
      //continue;
      
      const bool partial =    contains (attributes, "partial=true")
                              // Gff::prodigal
                           || contains (attributes, "partial=01")
                           || contains (attributes, "partial=10")
                           || contains (attributes, "partial=11");
      
      string protAttr = "Name";
      switch (gffType)
      {
        case Gff::bakta:         protAttr = "ID"; break;
        case Gff::genbank:       protAttr = (protMatch || pseudo) ? "locus_tag" : "Name"; break;
        case Gff::microscope:    protAttr = "ID"; break;
        case Gff::patric:        protAttr = "ID"; break;
        case Gff::prodigal:      protAttr = "ID"; break;
        case Gff::prokka:        protAttr = "ID"; break;
        case Gff::pseudomonasdb: protAttr = "Alias"; break;  // for type = "gene", "locus" for type = "CDS"
        case Gff::rast:          protAttr = "ID"; break;
        default: break;
      }
      ASSERT (! protAttr. empty ());
      protAttr += "=";
          
      string prot_;
      string gene_;
      string product_;
      {
        string locusTag;
        while (! attributes. empty ())
        {
    	    string s (findSplit (attributes, ';'));
      	  trim (s);
    	    if (isLeft (s, protAttr))
    	    {
    	      prot_ = s;
            findSplit (prot_, '='); 
    	    }
    	    else if (isLeft (s, "gene="))
    	    {
    	      gene_ = s;
    	      findSplit (gene_, '=');
    	    }
    	    else if (isLeft (s, "product="))
    	    {
    	      product_ = s;
    	      findSplit (product_, '=');
    	    //replace (product, tmpSpace, ' ');
    	    }
    	    else if (gffType == Gff::patric && isLeft (s, "locus_tag="))
    	    {
    	      locusTag = s;
    	      findSplit (locusTag, '=');
    	    }
    	  }
    	  trimPrefix (prot_, "\"");
    	  trimSuffix (prot_, "\"");
        if (prot_. empty ())
        	continue;
        //throw runtime_error ("no attribute '" + protAttr + "': " + f. line);
        
        switch (gffType)
        {
          case Gff::genbank:       if (contains (prot_, ":"))  findSplit (prot_, ':');  break;
          case Gff::patric:        if (! locusTag. empty ())  prot_ += "|" + locusTag;  
                                   if (isLeft (contig, "accn|"))  contig. erase (0, 5);
                                   break;
          default:  break;
        }
      }
  	  QC_ASSERT (! prot_. empty ());
  	
  	        string prot    (unescape (prot_));
  	  const string gene    (unescape (gene_));
  	  const string product (unescape (product_));
  	
  	  if (gffType == Gff::pgap)
  	  {
  	    pgap_accession (prot, false);
  	    pgap_accession (contig, lcl);
  	  }
  	  QC_ASSERT (! prot. empty ());
  	  
  	  Locus locus ((size_t) f. lineNum, contig, (size_t) start, (size_t) stop, strand == "+", partial, 0, gene, product);
  	#if 0
  	  // DNA may be truncated
      if (type == "CDS" && ! pseudo && locus. size () % 3 != 0)
      {
        cout << "Locus tag: " << prot << endl;
        locus. print (cout);
        ERROR;
      }
    #endif

      prot2loci [prot] << std::move (locus);
    }
    catch (const exception &e)
    {
      throw runtime_error ("File " + fName + ", " + f. lineStr () + ": " + e. what ());
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x738, %rsp            # imm = 0x738
movl %r8d, %ebp
movl %edx, %r14d
movq %rsi, %rbx
leaq 0x390b1(%rip), %rax     # 0xafb40
movq %rax, (%rdi)
leaq 0x8(%rdi), %rax
movq %rax, 0x298(%rsp)
leaq 0x10(%rdi), %rax
xorl %edx, %edx
movl %edx, 0x10(%rdi)
movq %rdx, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rax, 0x28(%rdi)
movq %rdx, 0x30(%rdi)
leaq 0x40(%rdi), %rax
movl %edx, 0x40(%rdi)
movq %rdx, 0x48(%rdi)
movq %rax, 0x50(%rdi)
movq %rax, 0x58(%rdi)
movq %rdi, 0x388(%rsp)
movq %rdx, 0x60(%rdi)
movl %ecx, 0x270(%rsp)
testl %ecx, %ecx
je 0x76bb0
callq 0xa070
movl $0x0, (%rax)
cmpl $0x1, %r14d
je 0x76bba
cmpl $0x2, %r14d
je 0x780d9
cmpl $0x5, %r14d
je 0x76bba
callq 0xa6b0
testl %eax, %eax
jne 0x78602
leaq 0x100(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x19408(%rip), %rsi     # 0x8ff36
leaq 0x19411(%rip), %rdx     # 0x8ff46
leaq 0xf0(%rsp), %rdi
callq 0x2fa1a
leaq 0x1c0(%rsp), %rdi
movl $0xae, %esi
callq 0x2d1fa
leaq 0x1e0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x2d152
leaq 0x1406d(%rip), %rsi     # 0x8abe5
leaq 0x1e0(%rsp), %rdi
callq 0xaac0
leaq 0x80(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78a9e
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x78aae
cmpl $0x2, %r14d
je 0x78551
testb %bpl, %bpl
je 0x76bd4
callq 0xa070
movl $0x0, (%rax)
cmpl $0x4, %r14d
jne 0x780e2
cmpq $0x0, 0x8(%rbx)
je 0x78510
movl %r14d, 0xc(%rsp)
movl %ebp, 0x274(%rsp)
leaq 0x490(%rsp), %rdi
movq %rbx, 0x380(%rsp)
movq %rbx, %rsi
xorl %edx, %edx
callq 0x30bc4
leaq 0x37a0c(%rip), %rax     # 0xae618
leaq 0x6f8(%rsp), %rbx
movq %rax, -0x268(%rbx)
movl $0x0, -0x8(%rbx)
leaq 0x708(%rsp), %rax
movq %rax, -0x10(%rax)
xorl %ecx, %ecx
movq %rcx, -0x8(%rax)
movb %cl, (%rax)
leaq 0x728(%rsp), %rax
movq %rax, -0x10(%rax)
movq %rcx, -0x8(%rax)
movb %cl, (%rax)
leaq 0x120(%rsp), %rbp
leaq 0x20(%rsp), %r13
leaq 0x110(%rsp), %r12
leaq 0x340(%rsp), %r15
leaq 0x90(%rsp), %r14
leaq 0x490(%rsp), %rdi
callq 0x33b76
testb %al, %al
je 0x77ffb
movq %rbx, %rdi
callq 0x37275
movq %rbx, %rdi
callq 0x384ed
cmpl $0x6, 0xc(%rsp)
je 0x76ca0
cmpl $0x0, 0xc(%rsp)
jne 0x76cb7
movq %rbx, %rdi
leaq 0x1942c(%rip), %rsi     # 0x900d6
callq 0xa160
testl %eax, %eax
je 0x77ffb
cmpq $0x0, 0x700(%rsp)
je 0x76c6d
movq 0x6f8(%rsp), %rax
cmpb $0x23, (%rax)
je 0x76c6d
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x70(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76d09
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x1e0(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76d46
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0xf0(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76d83
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x1c0(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76dc0
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76dfa
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x200(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76e37
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
leaq 0x360(%rsp), %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76e74
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %r12, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x391de
movq %r15, %rdi
movq %r12, %rsi
callq 0x79e0d
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x76eac
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x238(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0x6f8(%rsp), %rsi
movq 0x700(%rsp), %rdx
addq %rsi, %rdx
leaq 0x228(%rsp), %rbx
movq %rbx, %rdi
callq 0x2c212
movq %rbx, %rdi
callq 0x37275
movq %rbx, %rdi
callq 0x384ed
cmpq $0x0, 0x230(%rsp)
je 0x78205
movq 0x78(%rsp), %rax
testq %rax, %rax
je 0x781e7
movq 0x70(%rsp), %rcx
xorl %edx, %edx
movsbl (%rcx,%rdx), %ebx
leal -0x20(%rbx), %esi
cmpb $0x5f, %sil
jae 0x78184
incq %rdx
cmpq %rdx, %rax
jne 0x76f13
leaq 0xf0(%rsp), %rdi
leaq 0x19216(%rip), %rsi     # 0x90151
callq 0xa160
testl %eax, %eax
je 0x76f78
leaq 0xf0(%rsp), %rdi
leaq 0x192ab(%rip), %rsi     # 0x901fe
callq 0xa160
testl %eax, %eax
je 0x76f78
leaq 0xf0(%rsp), %rdi
leaq 0x1928d(%rip), %rsi     # 0x901f8
callq 0xa160
testl %eax, %eax
jne 0x77eae
cmpl $0x4, 0xc(%rsp)
jne 0x76f9b
leaq 0xf0(%rsp), %rdi
leaq 0x191c3(%rip), %rsi     # 0x90151
callq 0xa160
testl %eax, %eax
jne 0x77eae
movq $-0x1, 0x220(%rsp)
leaq 0x1c0(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x7d7ed
testb %al, %al
je 0x78304
cmpq $0x0, 0x220(%rsp)
jle 0x78340
movq %rbp, %rbx
movq $-0x1, 0x268(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x7d7ed
testb %al, %al
je 0x78372
movq 0x268(%rsp), %rcx
testq %rcx, %rcx
jle 0x78322
movq 0x220(%rsp), %rax
cmpq %rcx, %rax
jg 0x782e3
decq %rax
movq %rax, 0x220(%rsp)
leaq 0x360(%rsp), %r15
movq %r15, %rdi
leaq 0x14e6a(%rip), %rsi     # 0x8bea5
callq 0xa160
testl %eax, %eax
je 0x7705b
movq %r15, %rdi
leaq 0x14ef6(%rip), %rsi     # 0x8bf44
callq 0xa160
testl %eax, %eax
jne 0x78390
movq %rbx, 0x110(%rsp)
movq %r12, %rdi
leaq 0x19172(%rip), %rsi     # 0x901df
leaq 0x19176(%rip), %rdx     # 0x901ea
callq 0x2fa1a
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movb $0x1, %bl
cmpq $-0x1, %rax
jne 0x77118
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x19135(%rip), %rsi     # 0x901eb
leaq 0x19145(%rip), %rdx     # 0x90202
callq 0x2fa1a
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movb $0x1, %bl
cmpq $-0x1, %rax
jne 0x770fc
leaq 0xf0(%rsp), %rdi
leaq 0x19106(%rip), %rsi     # 0x901f8
callq 0xa160
testl %eax, %eax
sete %bl
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x77118
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x77135
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %rbp, 0x110(%rsp)
movq %r12, %rdi
leaq 0x190bc(%rip), %rsi     # 0x90203
leaq 0x190c1(%rip), %rdx     # 0x9020f
callq 0x2fa1a
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movb $0x1, 0xb(%rsp)
cmpq $-0x1, %rax
jne 0x772d1
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x19079(%rip), %rsi     # 0x90210
leaq 0x1907c(%rip), %rdx     # 0x9021a
callq 0x2fa1a
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movb $0x1, 0xb(%rsp)
cmpq $-0x1, %rax
jne 0x772b5
leaq 0xe0(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0xd0(%rsp), %rdi
leaq 0x19031(%rip), %rsi     # 0x9021b
leaq 0x19034(%rip), %rdx     # 0x90225
callq 0x2fa1a
movq 0xd0(%rsp), %rsi
movq 0xd8(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movb $0x1, 0xb(%rsp)
cmpq $-0x1, %rax
jne 0x77290
leaq 0x1b0(%rsp), %r15
movq %r15, 0x1a0(%rsp)
leaq 0x1a0(%rsp), %rdi
leaq 0x18fe7(%rip), %rsi     # 0x90226
leaq 0x18fea(%rip), %rdx     # 0x90230
callq 0x2fa1a
movq 0x1a0(%rsp), %rsi
movq 0x1a8(%rsp), %rcx
leaq 0x228(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
cmpq $-0x1, %rax
setne 0xb(%rsp)
movq 0x1a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x77290
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x772b5
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x772d1
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x772ee
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x60(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x50(%rsp), %rdi
leaq 0x14de1(%rip), %rsi     # 0x8c0e5
leaq 0x14dde(%rip), %rdx     # 0x8c0e9
callq 0x2fa1a
cmpl $0x8, 0xc(%rsp)
ja 0x77349
movl 0xc(%rsp), %eax
leaq 0x18bde(%rip), %rcx     # 0x8ff00
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x2, %r8d
movq 0x58(%rsp), %rdx
leaq 0x18ef4(%rip), %rcx     # 0x90231
leaq 0x50(%rsp), %rdi
xorl %esi, %esi
callq 0xa8c0
callq 0xa070
movl $0x0, (%rax)
cmpq $0x0, 0x58(%rsp)
je 0x78237
movq %rax, %r15
leaq 0x50(%rsp), %rdi
leaq 0x18eee(%rip), %rsi     # 0x9025d
callq 0xaac0
leaq 0xe0(%rsp), %rax
movq %rax, 0xd0(%rsp)
xorl %ecx, %ecx
movq %rcx, 0xd8(%rsp)
movb %cl, 0xe0(%rsp)
leaq 0x1b0(%rsp), %rax
movq %rax, 0x1a0(%rsp)
movq %rcx, 0x1a8(%rsp)
movb %cl, 0x1b0(%rsp)
leaq 0x258(%rsp), %rax
movq %rax, 0x248(%rsp)
movq %rcx, 0x250(%rsp)
movb %cl, 0x258(%rsp)
leaq 0xc0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq %rcx, 0xb8(%rsp)
movb %cl, 0xc0(%rsp)
cmpq %rcx, 0x230(%rsp)
movq %rbp, %rbx
je 0x77832
movq %r14, %rdi
leaq 0x228(%rsp), %rsi
movl $0x3b, %edx
callq 0x391de
movq %r14, %rdi
callq 0x37275
movq %r14, %rdi
callq 0x384ed
movq 0x58(%rsp), %rcx
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0xa5d0
movq 0x118(%rsp), %rdx
cmpq 0x58(%rsp), %rdx
jne 0x7746b
movq 0x110(%rsp), %rbx
testq %rdx, %rdx
je 0x77478
movq 0x50(%rsp), %rsi
movq %rbx, %rdi
callq 0xa5c0
testl %eax, %eax
sete %r12b
jmp 0x7747b
movq 0x110(%rsp), %rbx
xorl %r12d, %r12d
jmp 0x7747b
movb $0x1, %r12b
cmpq %rbp, %rbx
je 0x77493
movq 0x120(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0xa5a0
testb %r12b, %r12b
je 0x774e2
leaq 0xd0(%rsp), %rdi
movq %r14, %rsi
callq 0xa320
leaq 0x110(%rsp), %r12
movq %rbp, %rbx
leaq 0x470(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
movl $0x3d, %edx
callq 0x391de
movq 0x470(%rsp), %rdi
leaq 0x480(%rsp), %rcx
jmp 0x776db
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x18d61(%rip), %rsi     # 0x90259
leaq 0x18d5f(%rip), %rdx     # 0x9025e
callq 0x2fa1a
leaq 0x110(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq %r14, %rsi
xorl %edx, %edx
callq 0xa5d0
movq 0x118(%rsp), %rdx
cmpq 0x38(%rsp), %rdx
jne 0x7754c
movq 0x110(%rsp), %rbx
testq %rdx, %rdx
je 0x77559
movq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xa5c0
testl %eax, %eax
sete %r12b
jmp 0x7755c
movq 0x110(%rsp), %rbx
xorl %r12d, %r12d
jmp 0x7755c
movb $0x1, %r12b
cmpq %rbp, %rbx
je 0x77574
movq 0x120(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x77590
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %r12b, %r12b
je 0x775df
movq %rbp, %rbx
leaq 0x1a0(%rsp), %rdi
movq %r14, %rsi
callq 0xa320
leaq 0x110(%rsp), %r12
leaq 0x450(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
movl $0x3d, %edx
callq 0x391de
movq 0x450(%rsp), %rdi
leaq 0x460(%rsp), %rcx
jmp 0x776db
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x18c6a(%rip), %rsi     # 0x9025f
leaq 0x18c6b(%rip), %rdx     # 0x90267
callq 0x2fa1a
leaq 0x110(%rsp), %rdi
movq 0x38(%rsp), %rcx
movq %r14, %rsi
xorl %edx, %edx
callq 0xa5d0
movq 0x118(%rsp), %rdx
cmpq 0x38(%rsp), %rdx
jne 0x77649
movq 0x110(%rsp), %rbx
testq %rdx, %rdx
je 0x77656
movq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xa5c0
testl %eax, %eax
sete %r12b
jmp 0x77659
movq 0x110(%rsp), %rbx
xorl %r12d, %r12d
jmp 0x77659
movb $0x1, %r12b
cmpq %rbp, %rbx
je 0x77671
movq 0x120(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7768d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %r12b, %r12b
movq %rbp, %rbx
je 0x77727
leaq 0x248(%rsp), %rdi
movq %r14, %rsi
callq 0xa320
leaq 0x110(%rsp), %r12
leaq 0x430(%rsp), %rdi
leaq 0x248(%rsp), %rsi
movl $0x3d, %edx
callq 0x391de
movq 0x430(%rsp), %rdi
leaq 0x440(%rsp), %rcx
movq %rcx, %rax
cmpq %rcx, %rdi
je 0x776ee
movq (%rax), %rsi
incq %rsi
callq 0xa5a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x77713
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpq $0x0, 0x230(%rsp)
jne 0x77403
jmp 0x77832
cmpl $0x3, 0xc(%rsp)
leaq 0x110(%rsp), %r12
jne 0x776ee
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x14057(%rip), %rsi     # 0x8b7a3
leaq 0x1405a(%rip), %rdx     # 0x8b7ad
callq 0x2fa1a
movq 0x38(%rsp), %rcx
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0xa5d0
movq 0x118(%rsp), %rdx
cmpq 0x38(%rsp), %rdx
jne 0x7779b
movq 0x110(%rsp), %rbx
testq %rdx, %rdx
je 0x777a8
movq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xa5c0
testl %eax, %eax
sete %r12b
jmp 0x777ab
movq 0x110(%rsp), %rbx
xorl %r12d, %r12d
jmp 0x777ab
movb $0x1, %r12b
cmpq %rbp, %rbx
je 0x777c3
movq 0x120(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x777df
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %r12b, %r12b
movq %rbp, %rbx
leaq 0x110(%rsp), %r12
je 0x776ee
leaq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0xa320
leaq 0x410(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
movl $0x3d, %edx
callq 0x391de
movq 0x410(%rsp), %rdi
leaq 0x420(%rsp), %rcx
jmp 0x776db
movq %rbx, 0x110(%rsp)
movq %r12, %rdi
leaq 0x15184(%rip), %rsi     # 0x8c9c8
leaq 0x1517e(%rip), %rdx     # 0x8c9c9
callq 0x2fa1a
leaq 0xd0(%rsp), %rdi
movq %r12, %rsi
callq 0x3710b
movq 0x110(%rsp), %rdi
cmpq %rbx, %rdi
je 0x7787d
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq %rbx, 0x110(%rsp)
movq %r12, %rdi
leaq 0x15139(%rip), %rsi     # 0x8c9c8
leaq 0x15133(%rip), %rdx     # 0x8c9c9
callq 0x2fa1a
leaq 0xd0(%rsp), %rdi
movq %r12, %rsi
callq 0x3719e
movq 0x110(%rsp), %rdi
cmpq %rbx, %rdi
je 0x778c8
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpq $0x0, 0xd8(%rsp)
je 0x7799f
movl 0xc(%rsp), %eax
cmpl $0x3, %eax
je 0x779d1
cmpl $0x1, %eax
jne 0x77b49
movq %rbx, 0x110(%rsp)
movq %r12, %rdi
leaq 0x15156(%rip), %rsi     # 0x8ca55
leaq 0x15150(%rip), %rdx     # 0x8ca56
callq 0x2fa1a
movq %rbx, %r12
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rcx
leaq 0xd0(%rsp), %rdi
xorl %edx, %edx
callq 0xa9e0
movq %rax, %rbx
movq 0x110(%rsp), %rdi
cmpq %r12, %rdi
je 0x7794d
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpq $-0x1, %rbx
je 0x77b49
leaq 0x3f0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
movl $0x3a, %edx
callq 0x391de
movq 0x3f0(%rsp), %rdi
leaq 0x400(%rsp), %rax
cmpq %rax, %rdi
je 0x77b49
movq 0x400(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x77b49
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x779c4
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x340(%rsp), %r15
jmp 0x77e23
cmpq $0x0, 0xb8(%rsp)
je 0x77a2d
movq %r12, %rdi
leaq 0x13b73(%rip), %rsi     # 0x8b559
leaq 0xb0(%rsp), %rdx
callq 0x2bb6f
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rdx
leaq 0xd0(%rsp), %rdi
callq 0xa190
movq 0x110(%rsp), %rdi
cmpq %rbx, %rdi
je 0x77a2d
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq %r14, %rdi
leaq 0x18821(%rip), %rsi     # 0x90268
leaq 0x1881f(%rip), %rdx     # 0x9026d
callq 0x2fa1a
movq 0x98(%rsp), %rcx
movq %r12, %rdi
leaq 0x70(%rsp), %rsi
xorl %edx, %edx
callq 0xa5d0
movq 0x118(%rsp), %rdx
cmpq 0x98(%rsp), %rdx
jne 0x77ae6
movq 0x110(%rsp), %rbx
testq %rdx, %rdx
je 0x77af3
movq 0x90(%rsp), %rsi
movq %rbx, %rdi
callq 0xa5c0
testl %eax, %eax
sete %r12b
jmp 0x77af6
movl $0x5, %r8d
movq 0x58(%rsp), %rdx
leaq 0x1878b(%rip), %rcx     # 0x9023e
jmp 0x7733d
orb 0x270(%rsp), %bl
leaq 0x1461f(%rip), %rcx     # 0x8c0e5
leaq 0x18767(%rip), %rax     # 0x90234
cmovneq %rax, %rcx
movq 0x58(%rsp), %rdx
movzbl %bl, %eax
leaq (%rax,%rax,4), %r8
addq $0x4, %r8
jmp 0x7733d
movq 0x110(%rsp), %rbx
xorl %r12d, %r12d
jmp 0x77af6
movb $0x1, %r12b
cmpq %rbp, %rbx
je 0x77b0e
movq 0x120(%rsp), %rsi
incq %rsi
movq %rbx, %rdi
callq 0xa5a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x77b33
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %r12b, %r12b
je 0x77b49
movl $0x5, %edx
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
callq 0xa100
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x77b6e
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movl $0x0, (%r15)
cmpq $0x0, 0xd8(%rsp)
je 0x78464
leaq 0xb0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x79e0d
movq %r14, %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x79e0d
leaq 0x30(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x79e0d
cmpl $0x4, 0xc(%rsp)
jne 0x77be3
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
callq 0x79e53
movzbl 0x274(%rsp), %esi
leaq 0x70(%rsp), %rdi
callq 0x79e53
movl $0x0, (%r15)
cmpq $0x0, 0xb8(%rsp)
je 0x783c2
movl 0x6f0(%rsp), %ebx
movq 0x220(%rsp), %r15
movq 0x268(%rsp), %r12
leaq 0x360(%rsp), %rdi
leaq 0x14286(%rip), %rsi     # 0x8bea5
callq 0xa160
movl %eax, %r13d
leaq 0x2d0(%rsp), %rax
movq %rax, 0x2c0(%rsp)
movq 0x90(%rsp), %rsi
movq 0x98(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2c0(%rsp), %rdi
callq 0x2c212
leaq 0x330(%rsp), %rax
movq %rax, 0x320(%rsp)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
leaq 0x320(%rsp), %r14
movq %r14, %rdi
callq 0x2c212
xorl %r9d, %r9d
testl %r13d, %r13d
sete %r9b
movzbl 0xb(%rsp), %eax
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
leaq 0x70(%rsp), %rdx
movq %r15, %rcx
movq %r12, %r8
pushq %r14
leaq 0x2c8(%rsp), %r10
pushq %r10
pushq $0x0
pushq %rax
callq 0x75f04
addq $0x20, %rsp
movq 0x320(%rsp), %rdi
leaq 0x330(%rsp), %rax
cmpq %rax, %rdi
leaq 0x20(%rsp), %r13
leaq 0x340(%rsp), %r15
leaq 0x90(%rsp), %r14
je 0x77cfb
movq 0x330(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
leaq 0x110(%rsp), %r12
je 0x77d28
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x298(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x7d80e
cmpb $0x0, 0x30(%rax)
jne 0x77d4e
movq %rax, %rdi
movq %r12, %rsi
callq 0x7e0f4
movq 0x180(%rsp), %rdi
leaq 0x190(%rsp), %rax
cmpq %rax, %rdi
je 0x77d73
movq 0x190(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x160(%rsp), %rdi
leaq 0x170(%rsp), %rax
cmpq %rax, %rdi
je 0x77d98
movq 0x170(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x77dbd
movq 0x128(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x77dd9
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x77dfe
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x77e23
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x77e48
movq 0x258(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x77e6d
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x77e92
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x77eae
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x77ed3
movq 0x238(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x340(%rsp), %rdi
leaq 0x350(%rsp), %rax
cmpq %rax, %rdi
leaq 0x6f8(%rsp), %rbx
je 0x77f00
movq 0x350(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rax
cmpq %rax, %rdi
je 0x77f25
movq 0x370(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x77f4a
movq 0x210(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x77f61
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x77f86
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x77fab
movq 0x100(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x77fd0
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x76c6d
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x76c6d
leaq 0x36616(%rip), %rax     # 0xae618
movq %rax, 0x490(%rsp)
movq 0x718(%rsp), %rdi
leaq 0x728(%rsp), %rax
cmpq %rax, %rdi
je 0x7802f
movq 0x728(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x6f8(%rsp), %rdi
leaq 0x708(%rsp), %rax
cmpq %rax, %rdi
je 0x78054
movq 0x708(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x36675(%rip), %rax     # 0xae6d0
leaq 0x6b0(%rsp), %rbx
movq %rax, -0x220(%rbx)
movq %rbx, %rdi
callq 0x436fc
leaq 0x366b7(%rip), %rax     # 0xae730
movq %rax, -0x218(%rbx)
leaq 0x598(%rsp), %rbx
leaq 0x366c9(%rip), %rax     # 0xae758
movq %rax, (%rbx)
leaq 0x4a8(%rsp), %r14
movq %r14, %rdi
callq 0xa4b0
leaq 0x366d7(%rip), %rax     # 0xae780
movq %rax, -0x10(%r14)
leaq 0x366f4(%rip), %rax     # 0xae7a8
movq %rax, (%rbx)
movq $0x0, -0x8(%r14)
movq %rbx, %rdi
callq 0xa1c0
addq $0x738, %rsp            # imm = 0x738
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %bpl, %bpl
je 0x76bd4
callq 0xa6b0
testl %eax, %eax
jne 0x785fe
leaq 0x100(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x17e34(%rip), %rsi     # 0x8ff36
leaq 0x17e3d(%rip), %rdx     # 0x8ff46
leaq 0xf0(%rsp), %rdi
callq 0x2fa1a
leaq 0x1c0(%rsp), %rdi
movl $0xb1, %esi
callq 0x2d1fa
leaq 0x1e0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x2d152
leaq 0x12a99(%rip), %rsi     # 0x8abe5
leaq 0x1e0(%rsp), %rdi
callq 0xaac0
leaq 0x80(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7884b
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x7885b
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x50(%rsp), %rdi
movl %ebx, %esi
callq 0x2d1fa
leaq 0x17f78(%rip), %rsi     # 0x9011c
leaq 0x110(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x2bbf7
movb $0x1, %r15b
leaq 0x110(%rsp), %rsi
movq %r14, %rdi
callq 0xa930
xorl %r15d, %r15d
movq 0x37e15(%rip), %rsi     # 0xaffe8
movq 0x37d86(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
jmp 0x79caa
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17f06(%rip), %rsi     # 0x90101
movq %rax, %rdi
callq 0xa230
jmp 0x78221
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17ec5(%rip), %rsi     # 0x900de
movq %rax, %rdi
callq 0xa230
movq 0x37dc0(%rip), %rsi     # 0xaffe8
movq 0x37d31(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
callq 0xa6b0
testl %eax, %eax
jne 0x7850b
leaq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
movq %rax, (%rdi)
leaq 0x17cd8(%rip), %rsi     # 0x8ff36
leaq 0x17ce1(%rip), %rdx     # 0x8ff46
callq 0x2fa1a
leaq 0x90(%rsp), %rdi
movl $0x11a, %esi            # imm = 0x11A
callq 0x2d1fa
leaq 0x248(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x2d152
leaq 0x12945(%rip), %rsi     # 0x8abe5
leaq 0x248(%rsp), %rdi
callq 0xaac0
leaq 0x1b0(%rsp), %rcx
movq %rcx, 0x1a0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7860c
movups (%rcx), %xmm0
leaq 0x1b0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x7861f
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17eaa(%rip), %rsi     # 0x901a1
movq %rax, %rdi
callq 0xa230
jmp 0x783ac
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17e3d(%rip), %rsi     # 0x90155
movq %rax, %rdi
callq 0xa230
jmp 0x7835c
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17e57(%rip), %rsi     # 0x9018d
movq %rax, %rdi
callq 0xa230
jmp 0x783ac
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17e13(%rip), %rsi     # 0x90167
movq %rax, %rdi
callq 0xa230
movq 0x37c85(%rip), %rsi     # 0xaffe8
movq 0x37bf6(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17df6(%rip), %rsi     # 0x9017c
movq %rax, %rdi
callq 0xa230
jmp 0x783ac
movl $0x10, %edi
callq 0xa2c0
movq %rax, %r14
leaq 0x17e1f(%rip), %rsi     # 0x901c3
movq %rax, %rdi
callq 0xa230
movq 0x37c35(%rip), %rsi     # 0xaffe8
movq 0x37ba6(%rip), %rdx     # 0xaff60
movq %r14, %rdi
callq 0xa9b0
callq 0xa6b0
testl %eax, %eax
jne 0x78547
leaq 0x2f0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x17b54(%rip), %rsi     # 0x8ff36
leaq 0x17b5d(%rip), %rdx     # 0x8ff46
leaq 0x2e0(%rsp), %rdi
callq 0x2fa1a
leaq 0x3d0(%rsp), %rdi
movl $0x156, %esi            # imm = 0x156
callq 0x2d1fa
leaq 0x300(%rsp), %rdi
leaq 0x2e0(%rsp), %rsi
leaq 0x3d0(%rsp), %rdx
callq 0x2d152
leaq 0x127b9(%rip), %rsi     # 0x8abe5
leaq 0x300(%rsp), %rdi
callq 0xaac0
leaq 0x2b0(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x786a2
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x786b5
callq 0xa6b0
testl %eax, %eax
jne 0x7854c
leaq 0x288(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x17ab2(%rip), %rsi     # 0x8ff36
leaq 0x17abb(%rip), %rdx     # 0x8ff46
leaq 0x278(%rsp), %rdi
callq 0x2fa1a
leaq 0x2a0(%rsp), %rdi
movl $0x14b, %esi            # imm = 0x14B
callq 0x2d1fa
leaq 0x30(%rsp), %rdi
leaq 0x278(%rsp), %rsi
leaq 0x2a0(%rsp), %rdx
callq 0x2d152
leaq 0x1271a(%rip), %rsi     # 0x8abe5
leaq 0x30(%rsp), %rdi
callq 0xaac0
leaq 0xa0(%rsp), %rcx
movq %rcx, 0x90(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7873d
movups (%rcx), %xmm0
leaq 0xa0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x78750
jmp 0x78602
movl $0x10, %edi
callq 0xa2c0
movq %rax, %rbx
leaq 0x17b9e(%rip), %rsi     # 0x900c2
movq %rax, %rdi
callq 0xa230
movq 0x37ab5(%rip), %rsi     # 0xaffe8
movq 0x37a26(%rip), %rdx     # 0xaff60
movq %rbx, %rdi
callq 0xa9b0
jmp 0x79caa
jmp 0x78602
jmp 0x78602
callq 0xa070
movl $0x0, (%rax)
callq 0xa6b0
testl %eax, %eax
jne 0x78600
leaq 0x100(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x179ba(%rip), %rsi     # 0x8ff36
leaq 0x179c3(%rip), %rdx     # 0x8ff46
leaq 0xf0(%rsp), %rdi
callq 0x2fa1a
leaq 0x1c0(%rsp), %rdi
movl $0xaf, %esi
callq 0x2d1fa
leaq 0x1e0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0x1c0(%rsp), %rdx
callq 0x2d152
leaq 0x1261f(%rip), %rsi     # 0x8abe5
leaq 0x1e0(%rsp), %rdi
callq 0xaac0
leaq 0x80(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x788d7
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x788e7
jmp 0x78602
jmp 0x78602
movl $0x1, %edi
callq 0xa6c0
movq %rdx, 0x1a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1b0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x1a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x288(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x179c8(%rip), %rsi     # 0x90015
leaq 0x179fc(%rip), %rdx     # 0x90050
leaq 0x278(%rsp), %rdi
callq 0x2fa1a
leaq 0x142cb(%rip), %rsi     # 0x8c933
leaq 0x278(%rsp), %rdi
callq 0xaac0
leaq 0x40(%rsp), %rcx
movq %rcx, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x787d2
movups (%rcx), %xmm0
leaq 0x40(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x787df
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x2a8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x3c0(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x17932(%rip), %rsi     # 0x90015
leaq 0x17966(%rip), %rdx     # 0x90050
leaq 0x3b0(%rsp), %rdi
callq 0x2fa1a
leaq 0x14235(%rip), %rsi     # 0x8c933
leaq 0x3b0(%rsp), %rdi
callq 0xaac0
leaq 0x3a0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78963
movups (%rcx), %xmm0
leaq 0x3a0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x78976
movq %rdx, 0x90(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x98(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x2f0(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x17897(%rip), %rsi     # 0x90015
leaq 0x178cb(%rip), %rdx     # 0x90050
leaq 0x2e0(%rsp), %rdi
callq 0x2fa1a
leaq 0x1419a(%rip), %rsi     # 0x8c933
leaq 0x2e0(%rsp), %rdi
callq 0xaac0
leaq 0x310(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x789e5
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x789f8
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rsi
leaq 0x30(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xd0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x2d152
leaq 0x17a2d(%rip), %rsi     # 0x90244
leaq 0xd0(%rsp), %rdi
callq 0xaac0
movq %rbp, 0x110(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78a67
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78a7a
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x210(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1778f(%rip), %rsi     # 0x90015
leaq 0x177c3(%rip), %rdx     # 0x90050
leaq 0x200(%rsp), %rdi
callq 0x2fa1a
leaq 0x14092(%rip), %rsi     # 0x8c933
leaq 0x200(%rsp), %rdi
callq 0xaac0
leaq 0x20(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78b2a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x78b37
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x210(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x17703(%rip), %rsi     # 0x90015
leaq 0x17737(%rip), %rdx     # 0x90050
leaq 0x200(%rsp), %rdi
callq 0x2fa1a
leaq 0x14006(%rip), %rsi     # 0x8c933
leaq 0x200(%rsp), %rdi
callq 0xaac0
leaq 0x20(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78ba4
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x78bb1
movq %rdx, 0x390(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x3a0(%rsp)
movq 0x8(%rax), %rsi
leaq 0x390(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x278(%rsp), %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x2d152
leaq 0x178cf(%rip), %rsi     # 0x90280
leaq 0x278(%rsp), %rdi
callq 0xaac0
movq %rbp, 0x110(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78c1e
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78c31
movq %rdx, 0x300(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x310(%rsp)
movq 0x8(%rax), %rsi
leaq 0x300(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x2d152
leaq 0x1783b(%rip), %rsi     # 0x9026e
leaq 0xb0(%rsp), %rdi
callq 0xaac0
movq %rbp, 0x110(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78c55
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78c68
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x210(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1753c(%rip), %rsi     # 0x90015
leaq 0x17570(%rip), %rdx     # 0x90050
leaq 0x200(%rsp), %rdi
callq 0x2fa1a
leaq 0x13e3f(%rip), %rsi     # 0x8c933
leaq 0x200(%rsp), %rdi
callq 0xaac0
leaq 0x20(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78c8c
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x78c99
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rsi
leaq 0x10(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x110(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2d152
leaq 0x17541(%rip), %rsi     # 0x900ad
leaq 0x110(%rsp), %rdi
callq 0xaac0
leaq 0x4a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78d02
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78d15
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rsi
leaq 0x10(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x110(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2d152
leaq 0x174bd(%rip), %rsi     # 0x900a3
leaq 0x110(%rsp), %rdi
callq 0xaac0
leaq 0x4a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78d39
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78d4c
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
movq 0x8(%rax), %rsi
leaq 0x10(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x110(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2d152
leaq 0x17383(%rip), %rsi     # 0x90051
leaq 0x110(%rsp), %rdi
callq 0xaac0
leaq 0x4a0(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x78d70
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x78d83
movq %rdx, 0x490(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4a0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x490(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
movq %rdx, 0x490(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4a0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x490(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
movq %rdx, 0x490(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4a0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x490(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x34fa2
jmp 0x78db1
jmp 0x78dd3
jmp 0x78e00
jmp 0x78db1
jmp 0x78dd3
movq %rax, %r12
movq 0x490(%rsp), %rdi
cmpq %rbp, %rdi
je 0x78dd6
movq 0x4a0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78dd6
movq %rax, %r12
leaq 0x120(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x78e03
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78e03
jmp 0x78ed8
jmp 0x78e00
movq %rax, %r12
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x78edb
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78edb
jmp 0x78fc1
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x78e53
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78e53
movq %rdx, %rbx
movq %rax, %r12
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x78f65
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78f65
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x78eac
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78eac
movq %rdx, %rbx
movq %rax, %r12
leaq 0x288(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x78f91
movq 0x288(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78f91
jmp 0x78ed8
movq %rax, %r12
movq 0x200(%rsp), %rdi
cmpq %r15, %rdi
je 0x78fc4
movq 0x210(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78fc4
jmp 0x79071
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x78f31
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78f31
movq %rdx, %rbx
movq %rax, %r12
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x78ff2
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x78ff2
movq %rdx, %rbx
movq %rax, %r12
movq 0x300(%rsp), %rdi
cmpq %r13, %rdi
je 0x7901d
movq 0x310(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x7901d
movq %rdx, %rbx
movq %rax, %r12
movq 0x390(%rsp), %rdi
leaq 0x3a0(%rsp), %rax
cmpq %rax, %rdi
je 0x79049
movq 0x3a0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79049
jmp 0x78fc1
movq %rax, %r12
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x79074
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79074
jmp 0x79131
movq %rdx, %rbx
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x790a9
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x790a9
movq %rdx, %rbx
movq %rax, %r12
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x790d5
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x790d5
movq %rdx, %rbx
movq %rax, %r12
movq 0x3b0(%rsp), %rdi
cmpq %r13, %rdi
je 0x79109
movq 0x3c0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79109
jmp 0x79071
movq %rax, %r12
leaq 0x1f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79134
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79134
jmp 0x791f4
movq %rdx, %rbx
movq %rax, %r12
movq 0x278(%rsp), %rdi
cmpq %r14, %rdi
je 0x79169
movq 0x288(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79169
movq %rdx, %rbx
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x7919d
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x7919d
movq %rdx, %rbx
movq %rax, %r12
movq 0x2a0(%rsp), %rdi
cmpq %r15, %rdi
je 0x791c8
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x791c8
jmp 0x79131
movq %rax, %r12
leaq 0x1d0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x791f7
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x791f7
jmp 0x79436
movq %rdx, %rbx
movq %rax, %r12
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x79223
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79223
movq %rdx, %rbx
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x79257
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79257
movq %rdx, %rbx
movq %rax, %r12
leaq 0x310(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79287
movq 0x310(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79287
jmp 0x791f4
movq %rax, %r12
movq 0xf0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x79ddf
movq 0x100(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79ddf
movq %rdx, %rbx
movq %rax, %r12
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x792f5
movq 0x258(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x792f5
movq %rdx, %rbx
movq %rax, %r12
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79322
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79322
movq %rdx, %rbx
movq %rax, %r12
leaq 0x3e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79346
movq 0x3e0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79346
jmp 0x79436
jmp 0x79436
movq %rdx, %rbx
movq %rax, %r12
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x793a8
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x793a8
movq %rdx, %rbx
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x7936a
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x7936a
movq %rdx, %rbx
movq %rax, %r12
movq 0x278(%rsp), %rdi
cmpq %r14, %rdi
je 0x7957a
movq 0x288(%rsp), %rsi
jmp 0x79572
movq %rdx, %rbx
movq %rax, %r12
movq 0x2e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x79514
movq 0x2f0(%rsp), %rsi
jmp 0x794d5
movq %rdx, %rbx
movq %rax, %r12
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x79427
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79427
jmp 0x795bb
jmp 0x795e3
movq %rdx, %rbx
movq %rax, %r12
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x79446
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79446
jmp 0x794f9
jmp 0x794e1
jmp 0x79436
movq %rax, %r12
movq %rbx, %rdi
callq 0xa440
jmp 0x79ddf
movq %rdx, %rbx
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x795e9
movq 0xa0(%rsp), %rsi
jmp 0x795d9
jmp 0x795e3
jmp 0x79895
jmp 0x79895
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x7996f
jmp 0x79586
movq %rax, %r12
jmp 0x79ddf
jmp 0x79440
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x796bd
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x796bd
jmp 0x79586
jmp 0x79586
jmp 0x79586
jmp 0x79586
jmp 0x79586
movq %rdx, %rbx
movq %rax, %r12
movq 0x320(%rsp), %rdi
leaq 0x330(%rsp), %rax
cmpq %rax, %rdi
je 0x794b8
movq 0x330(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x794b8
movq %rdx, %rbx
movq %rax, %r12
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x79514
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79514
jmp 0x794e1
movq %rdx, %rbx
movq %rax, %r12
jmp 0x79514
movq %rdx, %rbx
movq %rax, %r12
jmp 0x79530
movq %rdx, %rbx
movq %rax, %r12
jmp 0x79555
movq %rdx, %rbx
movq %rax, %r12
jmp 0x7957a
movq %rdx, %rbx
movq %rax, %r12
leaq 0x110(%rsp), %rdi
callq 0x7d88a
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x79530
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x79555
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x7957a
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x20(%rsp), %r13
jmp 0x79900
jmp 0x79586
movq %rdx, %rbx
movq %rax, %r12
movq %r14, %rdi
callq 0xa440
jmp 0x796bd
jmp 0x795bb
jmp 0x797d3
jmp 0x796b7
jmp 0x796b7
jmp 0x797d3
jmp 0x796b7
jmp 0x797d3
jmp 0x795e3
movq %rbx, %rcx
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rcx, %rdi
je 0x795e9
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x795e9
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x798db
jmp 0x797ea
jmp 0x797e2
jmp 0x796b7
movq %rdx, %rbx
movq %rax, %r12
jmp 0x7996f
movq %rdx, %rbx
movq %rax, %r12
jmp 0x797c9
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79643
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79643
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x79a36
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79678
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79678
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x79a5b
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x796ad
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x796ad
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x79a80
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x7998b
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x796f2
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x796f2
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x79aa5
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79732
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79732
movq %rdx, %rbx
movq %rax, %r12
jmp 0x799b0
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x79ac7
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79767
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79767
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x799d5
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x7979c
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x7979c
movq %rdx, %rbx
movq %rax, %r12
leaq 0x20(%rsp), %r13
jmp 0x799fa
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x797c9
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x20(%rsp), %r13
jmp 0x79a1f
movq %rdx, %rbx
movq %rax, %r12
jmp 0x7998b
jmp 0x797e2
jmp 0x797ea
movq %rdx, %rbx
movq %rax, %r12
jmp 0x7980c
movq %rdx, %rbx
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7980c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x20(%rsp), %r13
jmp 0x798b6
movq %rdx, %rbx
movq %rax, %r12
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x79839
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x79855
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %r15b, %r15b
leaq 0x20(%rsp), %r13
jne 0x798a3
jmp 0x7998b
movq %rdx, %rbx
movq %rax, %r12
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x79886
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
leaq 0x20(%rsp), %r13
jmp 0x798a3
movq %rax, %r12
jmp 0x79dd2
movq %rdx, %rbx
movq %rax, %r12
jmp 0x798db
movq %rdx, %rbx
movq %rax, %r12
movq %r14, %rdi
callq 0xa440
jmp 0x7998b
movq %rdx, %rbx
movq %rax, %r12
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x798db
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x79900
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x79925
movq 0x258(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1a0(%rsp), %rdi
leaq 0x1b0(%rsp), %rax
cmpq %rax, %rdi
je 0x7994a
movq 0x1b0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x7996f
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x7998b
movq 0x60(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x799b0
movq 0x238(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x340(%rsp), %rdi
leaq 0x350(%rsp), %rax
cmpq %rax, %rdi
je 0x799d5
movq 0x350(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rax
cmpq %rax, %rdi
je 0x799fa
movq 0x370(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x79a1f
movq 0x210(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x79a36
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x79a5b
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x79a80
movq 0x100(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x79aa5
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x79ac7
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xa5a0
cmpl $0x1, %ebx
jne 0x79dd2
movq %r12, %rdi
callq 0xa240
movq %rax, %r14
movl $0x10, %edi
callq 0xa2c0
movq %rax, %rbx
leaq 0x167a2(%rip), %rsi     # 0x90291
leaq 0x10(%rsp), %rdi
movq 0x380(%rsp), %rdx
callq 0x2bb6f
leaq 0x10713(%rip), %rsi     # 0x8a21b
leaq 0x10(%rsp), %rdi
callq 0xaac0
leaq 0x1d0(%rsp), %rcx
movq %rcx, 0x1c0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x79b41
movups (%rcx), %xmm0
leaq 0x1d0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x79b54
movq %rdx, 0x1c0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1d0(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x1c8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x200(%rsp), %rdi
leaq 0x490(%rsp), %rsi
movl $0x1, %edx
callq 0x7d8dc
leaq 0xf0(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
leaq 0x200(%rsp), %rdx
callq 0x2d152
leaq 0x12d58(%rip), %rsi     # 0x8c905
leaq 0xf0(%rsp), %rdi
callq 0xaac0
leaq 0x1f0(%rsp), %rcx
movq %rcx, 0x1e0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x79be9
movups (%rcx), %xmm0
leaq 0x1f0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x79bfc
movq %rdx, 0x1e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1f0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x1e0(%rsp), %r15
movq %rdx, 0x8(%r15)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %r15, %rdi
movq %rax, %rsi
callq 0xaac0
leaq 0x80(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x79c5b
movups (%rcx), %xmm0
leaq 0x80(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x79c6b
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
movq 0x8(%rax), %rdx
leaq 0x70(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0xa930
xorl %ebp, %ebp
movq 0x3634d(%rip), %rsi     # 0xaffe8
movq 0x362be(%rip), %rdx     # 0xaff60
movq %rbx, %rdi
callq 0xa9b0
movq %rax, %r12
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x79cd7
movq 0x80(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79cd7
movq %rax, %r12
movb $0x1, %bpl
movq 0x1e0(%rsp), %rdi
leaq 0x1f0(%rsp), %rax
cmpq %rax, %rdi
je 0x79d04
movq 0x1f0(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79d04
movq %rax, %r12
movb $0x1, %bpl
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x79d31
movq 0x100(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79d31
movq %rax, %r12
movb $0x1, %bpl
movq 0x200(%rsp), %rdi
leaq 0x210(%rsp), %rax
cmpq %rax, %rdi
je 0x79d5e
movq 0x210(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79d5e
movq %rax, %r12
movb $0x1, %bpl
movq 0x1c0(%rsp), %rdi
leaq 0x1d0(%rsp), %rax
cmpq %rax, %rdi
je 0x79d83
movq 0x1d0(%rsp), %rsi
incq %rsi
callq 0xa5a0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x79d9f
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xa5a0
testb %bpl, %bpl
jne 0x79dc5
jmp 0x79dcd
movq %rax, %r12
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x79dc5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0xa5a0
jmp 0x79dc5
movq %rax, %r12
movq %rbx, %rdi
callq 0xa440
callq 0xa960
leaq 0x490(%rsp), %rdi
callq 0x2defc
movq 0x388(%rsp), %rdi
addq $0x38, %rdi
callq 0x2c320
movq 0x298(%rsp), %rdi
callq 0x7da44
movq %r12, %rdi
callq 0xaa10
movq %rax, %rdi
callq 0x2c2a7