// File: /workspace/github_cpp_makefile_star2_O1/Chrom3D[P]Chrom3D/src/Model.cpp
// Function: Model::readGtrack(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, double)
void Model::readGtrack(string filename, bool scaleBeadSizes/*=false*/, double nuclearOccupancy /*=0.2*/) {
  string line;
  ifstream myfile(filename.c_str());
  uint line_counter = 0;
  if(!myfile.is_open()) throw std::runtime_error("Gtrack file not found or does not exist");

  typedef std::pair<std::string, std::string> idPair;
  
  vector<string> header;

  map<string,Chromosome> chromosomes;
  map<string, string> beadId2chr;
  vector<string> peripheryIds;
  vector<string> centerIds;
  vector<string> radialIds;
  vector<pair<string,string> > interactionIds;
  vector<pair<string,string> > interactionDistanceIds;
  vector<pair<string,string> > interactionLowerDistanceIds;
  vector<pair<string,string> > interactionUpperDistanceIds;
  //vector<pair<string,string> > nonInteractionDistanceIds;


  std::map<idPair,double> distInfo;
  std::map<string,double> radialDistInfo;
  
  std::map<idPair,double> weightInfo;
  std::map<string,double> peripheryWeight;
  std::map<string,double> centerWeight;

  double beadRadius;
  
  bool hasPeriphery = false;
  bool hasEdges = false;
  bool hasColor = false;
  bool hasBeadRadius = false;
  
  while(getline(myfile,line)) {    
    line_counter++;
    if(line.substr(0,3) == "###") {
      header = util::split(line.substr(3),'\t');
      hasPeriphery = find(header.begin(), header.end(), "periphery") != header.end();
      hasEdges = find(header.begin(), header.end(), "edges") != header.end();
      hasColor = find(header.begin(), header.end(), "color") != header.end();
      hasBeadRadius = find(header.begin(), header.end(), "radius") != header.end();
    }
    if(line.substr(0,1) == "#") { // Ignore comments
      continue;
    }

    if(hasPeriphery) {
      assert(this->hasNucleus);
    }

    
    vector<string> dataLine = util::split(line,'\t');
    map<string, string> fieldParser = util::makeMap(header, dataLine);
    
    
    if (chromosomes.find(fieldParser["seqid"]) == chromosomes.end() ) {
      Chromosome chr(fieldParser["seqid"]);
      chromosomes[fieldParser["seqid"]] = chr;
    }

    beadRadius = 0.5; // Default bead radius size
    if(hasBeadRadius) {
      beadRadius = boost::lexical_cast<double>(fieldParser["radius"]);
    }

    
    Bead myBead(boost::lexical_cast<int>(fieldParser["start"]), boost::lexical_cast<int>(fieldParser["end"]), beadRadius, fieldParser["id"]);
    myBead.setCoordinates(0,0,0); // Coordinates are not defined at this point, set all to zero.
    
    beadId2chr[fieldParser["id"]] = fieldParser["seqid"];
    
    if(hasColor) {
      vector<string> col = util::split(fieldParser["color"], ',');
      myBead.setColor(boost::lexical_cast<float>(col[0]), boost::lexical_cast<float>(col[1]), boost::lexical_cast<float>(col[2]));
    }
        
    chromosomes[fieldParser["seqid"]].addBead(myBead);

    if(hasPeriphery and fieldParser["periphery"] != ".") { 
      
      if (fieldParser["periphery"].find(",") != std::string::npos) { // has periphery-weights
	if( util::split(fieldParser["periphery"], ',')[0] == "1") {
	  peripheryIds.push_back(fieldParser["id"]);
	  peripheryWeight[fieldParser["id"]] = boost::lexical_cast<double>(util::split(fieldParser["periphery"], ',')[1]);
	}
	else if( util::split(fieldParser["periphery"], ',')[0] == "0") {
	  centerIds.push_back(fieldParser["id"]);
	  centerWeight[fieldParser["id"]] = boost::lexical_cast<double>(util::split(fieldParser["periphery"], ',')[1]);
	}
	else {
	  //assert(false); // 'periphery' can be either 0 or 1, when a weight is given.
            std::string error_line = util::errorLine(line_counter,filename);
            throw std::logic_error(error_line + "Periphery can be either 0 or 1, when a weight is given.");
	}
      }	// no weights:
      if (fieldParser["periphery"] == "1") {
	peripheryIds.push_back(fieldParser["id"]);
      }
      else if (fieldParser["periphery"] == "0") {
	centerIds.push_back(fieldParser["id"]);
      }
      else if (fieldParser["periphery"] != "."){
	radialDistInfo[fieldParser["id"]] =  boost::lexical_cast<double>(fieldParser["periphery"]);
        radialIds.push_back(fieldParser["id"]);
      }
    }

    if(hasEdges and fieldParser["edges"] != ".") {
      vector<string> edgeList = util::split(fieldParser["edges"], ';');
      idPair idPair1;
      string b2id;
      for(uint i=0; i!=edgeList.size(); i++) {
        b2id = edgeList[i];
        if(b2id.find("=") == std::string::npos){ // if edge information does not contain edge weights 
          idPair1 = make_pair(fieldParser["id"], b2id);
          //assert(idPair1.first != idPair1.second);	
          if(idPair1.first == idPair1.second)
          {
            std::string error_line = util::errorLine(line_counter,filename);
            throw std::logic_error(error_line + "Same beadId found in the edge column, please check the edge column of the above line");
          }
 
          if(find(interactionIds.begin(), interactionIds.end(), idPair1) == interactionIds.end())  {
            interactionIds.push_back(idPair1); // idPair2 should not be added here, since addConstraint will add both pairs automatically
          }
        }
        else {// edge information contains edge weights
          b2id = edgeList[i].substr(0,edgeList[i].find("="));
          string edgeInfoAll =  edgeList[i].substr(edgeList[i].find("=")+1);
          idPair1 = make_pair(fieldParser["id"], b2id);
          //assert(idPair1.first != idPair1.second);	
          if(idPair1.first == idPair1.second)
          {
            std::string error_line = util::errorLine(line_counter,filename);
            throw std::logic_error(error_line + "Same beadId found in the edge column, please check the edge column of the above line");
          }
         
          if(edgeInfoAll.find(".") == 0){//No weighting on edges: treat like ordinary interaction
            
            if(find(interactionIds.begin(), interactionIds.end(), idPair1) == interactionIds.end())  {
              interactionIds.push_back(idPair1); // idPair2 should not be added here, since addConstraint will add both pairs automatically
            }
          }
          else{ // split edge information
            vector<double> edgeInfoDetail = util::splitDbl(edgeInfoAll,',');
	    vector<string> edgeInfoDetailString = util::split(edgeInfoAll,',');
	    if(edgeInfoDetail.size() == 3) { // link information with 0) Distance, 1) Weight and 2) Boundary info
	      //assert(edgeInfoDetailString[2] == "0" or edgeInfoDetailString[2] == "1" or edgeInfoDetailString[2] == ".");
              if(edgeInfoDetailString[2] != "0" and edgeInfoDetailString[2] != "1" and edgeInfoDetailString[2] != ".")
              {
                std::string error_line = util::errorLine(line_counter,filename);
                throw std::logic_error(error_line + "Boundary information value can be 0, 1 or .");
              } 
	      // edgeInfoDetail contains [0]=weight (>0), [1]=distance (>0]), [2]=boundary (0/1). 
	      // If boundary is 1, define distance as the minimum required between the two "interacting" beads. (penalty for smaller distance than this defined distance)
	      // If boundary is 0, use distance as the maximum desired distance between the beads (penalty for larger distance than this defined distance)
	      // If boundary is . (missing), use the given distance as the desired distance (penalty for larger and smaller distances)

	      if(edgeInfoDetailString[2]=="0"){ // UpperBound
		interactionUpperDistanceIds.push_back(idPair1);
	      }
	      else if(edgeInfoDetailString[2]=="1") { // LowerBound
		interactionLowerDistanceIds.push_back(idPair1);
	      }
	      else if(edgeInfoDetailString[2]==".") { // Unbounded
		interactionDistanceIds.push_back(idPair1);
	      }
	      else {
		assert(false);
	      }
	      //assert(edgeInfoDetail[0] >= 0);
              if(edgeInfoDetail[0] < 0)
              {
                std::string error_line = util::errorLine(line_counter,filename);
                throw std::logic_error(error_line + "Weight should be above 0");
              }
	      //assert(edgeInfoDetail[1] >= 0);
              if(edgeInfoDetail[1] < 0)
              {
                std::string error_line = util::errorLine(line_counter,filename);
                throw std::logic_error(error_line + "Distance should be above 0");
              }
	      weightInfo[idPair1] = edgeInfoDetail[0];
	      distInfo[idPair1] = edgeInfoDetail[1];
	    }
	    else if(edgeInfoDetail.size() == 1) { // Only one number, gives the weight on that link.
	      //assert(edgeInfoDetail[0] > 0);
              if(edgeInfoDetail[0] < 0)
              {
                std::string error_line = util::errorLine(line_counter,filename);
                throw std::logic_error(error_line + "Weight should be above 0");
              }
	      interactionIds.push_back(idPair1);
	      weightInfo[idPair1] = edgeInfoDetail[0];	      
	    }
	    else {
	      //assert(false);
              std::string error_line = util::errorLine(line_counter,filename);
              throw std::logic_error(error_line + "Either only weight or all the information should be specified for a linked bead");
	    }
	    
          }
          
        }
    
      }
    }
  }


  myfile.close();
  

  // Adding the Chromosomes:
  for(map<string,Chromosome>::iterator it = chromosomes.begin(); it != chromosomes.end(); it++) {
    if(not hasColor) {
      double r = util::unif_real(0,1,randEngine);
      double g = util::unif_real(0,1,randEngine);
      double b = util::unif_real(0,1,randEngine);
      it->second.setColor(r,g,b);
    }
    this->addChromosome(it->second);
  }

  // Scale bead-sizes according to nuclear occupancy:
  if(scaleBeadSizes) {
    cerr << "# Rescaled bead sizes from " << this->getNuclearOccupancy();
    this->rescaleBeadSizes(nuclearOccupancy);
    cerr << " to " << this->getNuclearOccupancy() << endl;    
  }
  
  // Adding Interactions:
  for(vector<pair<string,string> >::iterator it = interactionIds.begin();  it != interactionIds.end(); it++) {
    //cout <<it->first << " " << it->second << endl;
    std::map<idPair,double>::iterator itWeight = weightInfo.find(*it);
    double weight = (itWeight != weightInfo.end()) ? itWeight->second : 1;
    if(beadId2chr[it->first] == beadId2chr[it->second]) {
      this->addInteractionConstraint(it->first, it->second, weight, INTERACTION_INTRA);
    }
    else {
      this->addInteractionConstraint(it->first, it->second, weight, INTERACTION_INTER);
    }
  }

  std::map<idPair,double>::iterator itDist;
  std::map<idPair,double>::iterator itWeight;

  // Adding non-bounded distances:
  for(vector<pair<string,string> >::iterator it = interactionDistanceIds.begin();  it != interactionDistanceIds.end(); it++) {    
    itDist = distInfo.find(*it);
    itWeight = weightInfo.find(*it);
       
    this->addInteractionDistanceConstraint(it->first, it->second, itDist->second, itWeight->second);
  }
  
    
  // Adding Lower-bound distances:
  for(vector<pair<string,string> >::iterator it = interactionLowerDistanceIds.begin();  it != interactionLowerDistanceIds.end(); it++) {    
    itDist = distInfo.find(*it);
    itWeight = weightInfo.find(*it);
   
    this->addInteractionLowerDistanceConstraint(it->first, it->second, itDist->second, itWeight->second);
  }

  // Adding Upper-bound distances:
  for(vector<pair<string,string> >::iterator it = interactionUpperDistanceIds.begin();  it != interactionUpperDistanceIds.end(); it++) {    
    itDist = distInfo.find(*it);
    itWeight = weightInfo.find(*it);
   
    this->addInteractionUpperDistanceConstraint(it->first, it->second, itDist->second, itWeight->second);
  }

  
  // Adding periphery:
  double w;
  for(vector<string>::iterator it = peripheryIds.begin();  it != peripheryIds.end(); it++) {
    w = 1.0;
    if(peripheryWeight.find(*it) != peripheryWeight.end()) {
      w = peripheryWeight[*it];
    }
    this->addPeripheryConstraint(*it,w);
  }

  // Adding radial:
  for(vector<string>::iterator it = radialIds.begin();  it != radialIds.end(); it++) {
    this->addBoundaryConstraint(*it, radialDistInfo[*it]);
  }

  // Adding center contraint:
  for(vector<string>::iterator it = centerIds.begin(); it != centerIds.end(); it++) {
    w = 1.0;
    if(centerWeight.find(*it) != centerWeight.end()) {
      w = centerWeight[*it];
    }    
    this->addCenterConstraint(*it,w);
  }

  // Assert all interactions specified twice:

  //assert(interactionSpecifiedSymmetricly(interactionIds));
  if(!interactionSpecifiedSymmetricly(interactionIds))
  {
    throw std::runtime_error("Advanced option: Edge column is not symmetrical for one or more beads. Interacting beads have to be specified twice in the corresponding edge column with the same information.");
  }
  //assert(interactionSpecifiedSymmetricly(interactionDistanceIds));
  if(!interactionSpecifiedSymmetricly(interactionDistanceIds))
  {
    throw std::runtime_error("Advanced option: Edge column is not symmetrical for one or more beads. Interacting beads have to be specified twice in the corresponding edge column with the same information.");
  }
  //assert(interactionSpecifiedSymmetricly(interactionLowerDistanceIds));
  if(!interactionSpecifiedSymmetricly(interactionLowerDistanceIds))
  {
    throw std::runtime_error("Advanced option: Edge column is not symmetrical for one or more beads. Interacting beads have to be specified twice in the corresponding edge column with the same boundary information [0,1,.].");
  }

  if(!interactionSpecifiedSymmetricly(interactionUpperDistanceIds))
  {
    throw std::runtime_error("Advanced option: Edge column is not symmetrical for one or more beads. Interacting beads have to be specified twice in the corresponding edge column with the same boundary information [0,1,.].");
  }

  // Assert all distances and weights specified (equally) twice:
  if(!interactionWeightsSpecifiedSymmetricly(distInfo))
  {
    throw std::runtime_error("Advanced option: Optimal distance specified is not the same for interacting beads. Please verify the edge column.");
  }
  if(!interactionWeightsSpecifiedSymmetricly(weightInfo))
  {
    throw std::runtime_error("Advanced option: Weight specified is not the same for interacting beads. Please verify the edge column.");
  }

  
  
  // Initialize structures randomly:
  
  this->resetAllChromosomes(1000); //, true);

  uint N=this->getNumberOfBeads();
  cerr << "# chromosomes: " << chromosomes.size() << endl;
  cerr << "# beads: " << N << endl;
  cerr << "# interactions: " << interactionIds.size() / 2 << endl; // Divide by 2, since each interact. is specified twice.
  cerr << "# interactions with given weight: " << weightInfo.size()  / 2 << endl;
  cerr << "# non-bounded interactions with given distance: " << interactionDistanceIds.size()  / 2 << endl;
  cerr << "# upper-bounded interactions with given distance: " << interactionUpperDistanceIds.size()  / 2 << endl;
  cerr << "# lower-bounded interactions with given distance: " << interactionLowerDistanceIds.size()  / 2 << endl;
  cerr << "# periphery beads: " << peripheryIds.size() << endl;
  cerr << "# periphery beads (with weights): " << peripheryWeight.size() << endl;
  cerr << "# center beads: " << centerIds.size() << endl;
  cerr << "# center beads (with weights): " << centerWeight.size() << endl;  

  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xeb048, %rsp          # imm = 0xEB048
movsd %xmm0, 0x400(%rsp)
movl %edx, %ebx
movq %rsi, %r14
movq %rdi, 0x58(%rsp)
leaq 0x290(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq (%rsi), %rsi
leaq 0x7e0(%rsp), %rdi
movl $0x8, %edx
callq 0x65f0
movq %r14, 0x108(%rsp)
movl %ebx, 0x18c(%rsp)
leaq 0x858(%rsp), %rdi
callq 0x60b0
testb %al, %al
je 0x14b2f
xorpd %xmm0, %xmm0
leaq 0x160(%rsp), %rax
movapd %xmm0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
leaq 0x440(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x7a0(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x210(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x1f0(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x2a0(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x110(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x1d0(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x1b0(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x190(%rsp), %rax
movq %rcx, 0x10(%rax)
movapd %xmm0, (%rax)
leaq 0x668(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x770(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x410(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x728(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x6f8(%rsp), %rax
movl %ecx, (%rax)
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x60(%rsp), %r13
movq %rsp, %r12
movq $0x0, 0x248(%rsp)
movq $0x0, 0x180(%rsp)
movq $0x0, 0x128(%rsp)
xorl %ebp, %ebp
movl $0x0, 0x54(%rsp)
leaq 0x7e0(%rsp), %rbx
movq 0x7e0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %edx
movq %rbx, %rdi
leaq 0x280(%rsp), %rsi
callq 0x6600
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x134f9
movl $0x3, %ecx
leaq 0x9e8(%rsp), %r14
movq %r14, %rdi
leaq 0x280(%rsp), %rsi
xorl %edx, %edx
callq 0x6330
movq %r14, %rdi
leaq 0x18f03(%rip), %rsi     # 0x2a87a
callq 0x6100
movl %eax, %r14d
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x119a4
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x6310
testl %r14d, %r14d
jne 0x11b14
movl $0x3, %edx
leaq 0x9e8(%rsp), %r14
movq %r14, %rdi
leaq 0x280(%rsp), %rsi
movq $-0x1, %rcx
callq 0x6330
movq %r13, %rdi
movq %r14, %rsi
movl $0x9, %edx
callq 0x7ece
xorpd %xmm0, %xmm0
movapd %xmm0, (%rsp)
movapd 0x160(%rsp), %xmm0
movq 0x170(%rsp), %rax
movaps 0x60(%rsp), %xmm1
movaps %xmm1, 0x160(%rsp)
movq 0x70(%rsp), %rcx
movq %rcx, 0x170(%rsp)
movq %rax, 0x10(%rsp)
movapd (%rsp), %xmm1
movapd %xmm0, (%rsp)
movapd %xmm1, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
movq %r12, %rdi
callq 0x889e
movq %r13, %rdi
callq 0x889e
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x11a68
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %rsi
leaq 0x18dff(%rip), %rdx     # 0x2a87e
callq 0x18c53
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %rsi
cmpq %rsi, %rax
setne %bpl
leaq 0x18de6(%rip), %rdx     # 0x2a888
callq 0x18d3c
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %rsi
cmpq %rsi, %rax
setne %al
movq %rax, 0x128(%rsp)
leaq 0x18dc2(%rip), %rdx     # 0x2a88e
callq 0x18d3c
movq %rax, %r14
movq 0x160(%rsp), %rdi
movq 0x168(%rsp), %r15
movq %r15, %rsi
leaq 0x18da6(%rip), %rdx     # 0x2a894
callq 0x18e25
cmpq %r15, %r14
setne %cl
movq %rcx, 0x180(%rsp)
cmpq 0x168(%rsp), %rax
setne %al
movq %rax, 0x248(%rsp)
movl $0x1, %ecx
leaq 0x9e8(%rsp), %r14
movq %r14, %rdi
leaq 0x280(%rsp), %rsi
xorl %edx, %edx
callq 0x6330
movq %r14, %rdi
leaq 0x175fc(%rip), %rsi     # 0x29139
callq 0x6100
movl %eax, %r14d
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x11b6a
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x6310
incl 0x54(%rsp)
testl %r14d, %r14d
je 0x11910
testb $0x1, %bpl
je 0x11b8f
movq 0x58(%rsp), %rax
cmpb $0x0, 0xa90(%rax)
je 0x149e8
leaq 0x648(%rsp), %rdi
leaq 0x280(%rsp), %rsi
movl $0x9, %edx
callq 0x7ece
leaq 0x9e8(%rsp), %rbx
leaq 0x750(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0x16d80
leaq 0x7c8(%rsp), %r15
movq %r15, %rdi
leaq 0x648(%rsp), %rsi
callq 0x16d80
leaq 0x130(%rsp), %rdi
leaq 0x750(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x8085
movq %r15, %rdi
callq 0x889e
movq %r14, %rdi
callq 0x889e
leaq 0x9f8(%rsp), %rax
movq %rax, 0x9e8(%rsp)
movq %rbx, %rdi
leaq 0x18ca5(%rip), %rsi     # 0x2a8c8
leaq 0x18ca3(%rip), %rdx     # 0x2a8cd
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x16e0a
leaq 0x438(%rsp), %rdi
movq %rax, %rsi
callq 0x190a8
movq %rax, %r14
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x11c77
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x440(%rsp), %rax
cmpq %rax, %r14
jne 0x11e0b
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x18c2d(%rip), %rsi     # 0x2a8c8
leaq 0x18c2b(%rip), %rdx     # 0x2a8cd
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x3e0(%rsp), %r14
leaq 0x3f0(%rsp), %rcx
movq %rcx, 0x3e0(%rsp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xa53a
movq %rbx, %rdi
movq %r14, %rsi
callq 0xafac
movq 0x3e0(%rsp), %rdi
leaq 0x3f0(%rsp), %rax
cmpq %rax, %rdi
je 0x11d11
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x11d2c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x18b89(%rip), %rsi     # 0x2a8c8
leaq 0x18b87(%rip), %rdx     # 0x2a8cd
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x438(%rsp), %rdi
movq %rax, %rsi
callq 0x16e86
movq %rax, %r14
movb 0x9e8(%rsp), %al
movb %al, (%r14)
leaq 0x8(%r14), %rdi
leaq 0x9f0(%rsp), %rsi
callq 0x61d0
cmpq %r14, %rbx
je 0x11dbe
movq %r14, %rcx
addq $0x28, %rcx
movq 0x75328(%r14), %r8
movq 0x75d10(%rsp), %r15
movq %rcx, %rdi
leaq 0xa10(%rsp), %rsi
movq %r15, %rdx
callq 0x171d3
movq %r15, 0x75328(%r14)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x11dd9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0xa10(%rsp), %rdi
callq 0xc0ea
movq 0x9f0(%rsp), %rdi
leaq 0xa00(%rsp), %rax
cmpq %rax, %rdi
je 0x11e0b
movq 0xa00(%rsp), %rsi
incq %rsi
callq 0x6310
movsd 0x17215(%rip), %xmm0    # 0x29028
movsd %xmm0, 0x48(%rsp)
testb $0x1, 0x248(%rsp)
je 0x11ee7
leaq 0x9f8(%rsp), %rax
movq %rax, 0x9e8(%rsp)
movq %rbx, %rdi
leaq 0x18a53(%rip), %rsi     # 0x2a894
leaq 0x18a52(%rip), %rdx     # 0x2a89a
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x16e0a
movq $0x0, 0xa8(%rsp)
leaq 0x2(%rsp), %rcx
movq %rcx, 0x8(%rsp)
leaq 0x4(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x8(%rax), %rax
addq %rcx, %rax
movq %rax, 0x10(%rsp)
movq %rcx, 0x60(%rsp)
movq %rax, 0x68(%rsp)
movq %r13, %rdi
leaq 0xa8(%rsp), %rsi
callq 0x19496
testb %al, %al
je 0x14998
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x11ee7
movq 0x9f8(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x189d4(%rip), %rsi     # 0x2a8ce
leaq 0x189d2(%rip), %rdx     # 0x2a8d3
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movl $0x0, 0xe8(%rsp)
leaq 0x62(%rsp), %rcx
movq %rcx, 0x68(%rsp)
leaq 0x64(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movq (%rax), %rcx
movq %rcx, 0x68(%rsp)
movq 0x8(%rax), %rax
addq %rcx, %rax
movq %rax, 0x70(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x19d8a
testb %al, %al
je 0x1484b
movl 0xe8(%rsp), %r14d
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq %r13, %rdi
leaq 0x18942(%rip), %rsi     # 0x2a8d4
leaq 0x1893e(%rip), %rdx     # 0x2a8d7
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x16e0a
movl $0x0, 0xc8(%rsp)
leaq 0xaa(%rsp), %rcx
movq %rcx, 0xb0(%rsp)
leaq 0xac(%rsp), %rcx
movq %rcx, 0xb8(%rsp)
movq (%rax), %rcx
movq %rcx, 0xb0(%rsp)
movq 0x8(%rax), %rax
addq %rcx, %rax
movq %rax, 0xb8(%rsp)
movq %rcx, 0xe8(%rsp)
movq %rax, 0xf0(%rsp)
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x19d8a
testb %al, %al
je 0x1481e
movl 0xc8(%rsp), %r15d
leaq 0xb8(%rsp), %rax
movq %rax, 0xa8(%rsp)
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x174d0(%rip), %rsi     # 0x2951a
leaq 0x174cb(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x16e0a
leaq 0x3c0(%rsp), %rbx
leaq 0x3d0(%rsp), %rcx
movq %rcx, 0x3c0(%rsp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0xa53a
leaq 0x9e8(%rsp), %rdi
movl %r14d, %esi
movl %r15d, %edx
movsd 0x48(%rsp), %xmm0
movq %rbx, %rcx
callq 0xad40
movq 0x3c0(%rsp), %rdi
leaq 0x3d0(%rsp), %rax
cmpq %rax, %rdi
je 0x120d1
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
leaq 0x9e8(%rsp), %rbx
je 0x120fe
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x1211a
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12135
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
movq %rbx, %rdi
callq 0xade6
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x1876c(%rip), %rsi     # 0x2a8c8
leaq 0x1876a(%rip), %rdx     # 0x2a8cd
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %rax, %r14
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq %r13, %rdi
leaq 0x1738b(%rip), %rsi     # 0x2951a
leaq 0x17386(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x16e0a
leaq 0x798(%rsp), %rdi
movq %rax, %rsi
callq 0x88fa
movq %rax, %rdi
movq %r14, %rsi
callq 0x61d0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x121e2
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x121fd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
testb $0x1, 0x180(%rsp)
je 0x123df
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x18670(%rip), %rsi     # 0x2a88e
leaq 0x1866e(%rip), %rdx     # 0x2a893
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %r13, %rdi
movq %rax, %rsi
movl $0x2c, %edx
callq 0x7ece
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12265
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x60(%rsp), %rax
movl $0x0, 0xe8(%rsp)
leaq 0x2(%rsp), %rcx
movq %rcx, 0x8(%rsp)
leaq 0x4(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq (%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x8(%rax), %rax
addq %rcx, %rax
movq %rax, 0x10(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1a0b8
testb %al, %al
je 0x14948
movss 0xe8(%rsp), %xmm0
movss %xmm0, 0x48(%rsp)
movq 0x60(%rsp), %rax
movl $0x0, 0xe8(%rsp)
leaq 0x2(%rsp), %rcx
movq %rcx, 0x8(%rsp)
leaq 0x4(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq 0x20(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x28(%rax), %rax
addq %rcx, %rax
movq %rax, 0x10(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1a0b8
testb %al, %al
je 0x14970
movss 0xe8(%rsp), %xmm0
movss %xmm0, 0x178(%rsp)
movq 0x60(%rsp), %rax
movl $0x0, 0xe8(%rsp)
leaq 0x2(%rsp), %rcx
movq %rcx, 0x8(%rsp)
leaq 0x4(%rsp), %rcx
movq %rcx, 0x10(%rsp)
movq 0x40(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x48(%rax), %rax
addq %rcx, %rax
movq %rax, 0x10(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
leaq 0xa8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x1a0b8
testb %al, %al
je 0x149c0
movss 0xe8(%rsp), %xmm2
movq %rbx, %rdi
movss 0x48(%rsp), %xmm0
movss 0x178(%rsp), %xmm1
callq 0xae48
movq %r13, %rdi
callq 0x889e
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x184d6(%rip), %rsi     # 0x2a8c8
leaq 0x184d4(%rip), %rdx     # 0x2a8cd
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x438(%rsp), %rdi
movq %rax, %rsi
callq 0x16e86
movq %rax, %r14
movq 0xa18(%rsp), %rax
movq %rax, 0x6c0(%rsp)
movupd 0x9e8(%rsp), %xmm0
movupd 0x9f8(%rsp), %xmm1
movupd 0xa08(%rsp), %xmm2
movapd %xmm2, 0x6b0(%rsp)
movapd %xmm1, 0x6a0(%rsp)
movapd %xmm0, 0x690(%rsp)
leaq 0x6d8(%rsp), %rax
movq %rax, 0x6c8(%rsp)
movq 0xa20(%rsp), %rsi
movq 0xa28(%rsp), %rdx
addq %rsi, %rdx
leaq 0x6c8(%rsp), %rdi
callq 0xa53a
movq 0xa40(%rsp), %rax
movq %rax, 0x6e8(%rsp)
movq %r14, %rdi
leaq 0x690(%rsp), %rsi
callq 0xb04e
movq 0x6c8(%rsp), %rdi
leaq 0x6d8(%rsp), %rax
cmpq %rax, %rdi
je 0x124dc
movq 0x6d8(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x124f7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
testb $0x1, %bpl
je 0x12551
leaq 0x3b0(%rsp), %rax
movq %rax, 0x3a0(%rsp)
leaq 0x3a0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x1835f(%rip), %rsi     # 0x2a87e
leaq 0x18361(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x16e0a
movq %rax, %rdi
leaq 0x1844e(%rip), %rsi     # 0x2a993
callq 0x6100
testl %eax, %eax
setne %bl
jmp 0x12553
xorl %ebx, %ebx
testb $0x1, %bpl
je 0x1257e
movq 0x3a0(%rsp), %rdi
leaq 0x3b0(%rsp), %rax
cmpq %rax, %rdi
je 0x1257e
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x6310
testb %bl, %bl
leaq 0xe8(%rsp), %rbx
je 0x12d07
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x182dd(%rip), %rsi     # 0x2a87e
leaq 0x182df(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movl $0x1, %ecx
movq %rax, %rdi
leaq 0x1830c(%rip), %rsi     # 0x2a8d8
xorl %edx, %edx
callq 0x6580
movq %rax, %r14
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x125f1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
cmpq $-0x1, %r14
je 0x129eb
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x18270(%rip), %rsi     # 0x2a87e
leaq 0x18272(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %r13, %rdi
movq %rax, %rsi
movl $0x2c, %edx
callq 0x7ece
movq 0x60(%rsp), %rdi
leaq 0x17135(%rip), %rsi     # 0x2977b
callq 0x6100
movl %eax, %r14d
movq %r13, %rdi
callq 0x889e
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12671
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
testl %r14d, %r14d
je 0x12850
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x181f1(%rip), %rsi     # 0x2a87e
leaq 0x181f3(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %r13, %rdi
movq %rax, %rsi
movl $0x2c, %edx
callq 0x7ece
movq 0x60(%rsp), %rdi
leaq 0x16a3b(%rip), %rsi     # 0x29100
callq 0x6100
movl %eax, %r14d
movq %r13, %rdi
callq 0x889e
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x126f0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
testl %r14d, %r14d
jne 0x14a31
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x16e0e(%rip), %rsi     # 0x2951a
leaq 0x16e09(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x1f0(%rsp), %rdi
movq %rax, %rsi
callq 0x8860
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12753
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x18118(%rip), %rsi     # 0x2a87e
leaq 0x1811a(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0xa8(%rsp), %rdi
movq %rax, %rsi
movl $0x2c, %edx
callq 0x7ece
movq 0xa8(%rsp), %rax
movq $0x0, 0xc8(%rsp)
leaq 0x62(%rsp), %rcx
movq %rcx, 0x68(%rsp)
leaq 0x64(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movq 0x20(%rax), %rcx
movq %rcx, 0x68(%rsp)
movq 0x28(%rax), %rax
addq %rcx, %rax
movq %rax, 0x70(%rsp)
movq %rcx, 0xe8(%rsp)
movq %rax, 0xf0(%rsp)
movq %rbx, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x19496
testb %al, %al
je 0x14a07
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq %r13, %rdi
leaq 0x16cfb(%rip), %rsi     # 0x2951a
leaq 0x16cf6(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x16e0a
leaq 0x6f0(%rsp), %rdi
movq %rax, %rsi
callq 0x16f2a
jmp 0x1299d
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x16cbc(%rip), %rsi     # 0x2951a
leaq 0x16cb7(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x210(%rsp), %rdi
movq %rax, %rsi
callq 0x8860
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x128a5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17fc6(%rip), %rsi     # 0x2a87e
leaq 0x17fc8(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0xa8(%rsp), %rdi
movq %rax, %rsi
movl $0x2c, %edx
callq 0x7ece
movq 0xa8(%rsp), %rax
movq $0x0, 0xc8(%rsp)
leaq 0x62(%rsp), %rcx
movq %rcx, 0x68(%rsp)
leaq 0x64(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movq 0x20(%rax), %rcx
movq %rcx, 0x68(%rsp)
movq 0x28(%rax), %rax
addq %rcx, %rax
movq %rax, 0x70(%rsp)
movq %rcx, 0xe8(%rsp)
movq %rax, 0xf0(%rsp)
movq %rbx, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x19496
testb %al, %al
je 0x14b05
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq %r13, %rdi
leaq 0x16ba9(%rip), %rsi     # 0x2951a
leaq 0x16ba4(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x16e0a
leaq 0x720(%rsp), %rdi
movq %rax, %rsi
callq 0x16f2a
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x129c3
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0xa8(%rsp), %rdi
callq 0x889e
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x129eb
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17e80(%rip), %rsi     # 0x2a87e
leaq 0x17e82(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %rax, %rdi
leaq 0x16d57(%rip), %rsi     # 0x2977b
callq 0x6100
movl %eax, %r14d
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12a47
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
testl %r14d, %r14d
je 0x12c76
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17e1b(%rip), %rsi     # 0x2a87e
leaq 0x17e1d(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %rax, %rdi
leaq 0x16677(%rip), %rsi     # 0x29100
callq 0x6100
movl %eax, %r14d
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12aac
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
testl %r14d, %r14d
je 0x12cb2
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17db6(%rip), %rsi     # 0x2a87e
leaq 0x17db8(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq %rax, %rdi
leaq 0x17ea5(%rip), %rsi     # 0x2a993
callq 0x6100
movl %eax, %r14d
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12b11
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
testl %r14d, %r14d
je 0x12d07
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17d51(%rip), %rsi     # 0x2a87e
leaq 0x17d53(%rip), %rdx     # 0x2a887
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
movq $0x0, 0xe8(%rsp)
leaq 0x62(%rsp), %rcx
movq %rcx, 0x68(%rsp)
leaq 0x64(%rsp), %rcx
movq %rcx, 0x70(%rsp)
movq (%rax), %rcx
movq %rcx, 0x68(%rsp)
movq 0x8(%rax), %rax
addq %rcx, %rax
movq %rax, 0x70(%rsp)
movq %rcx, 0xa8(%rsp)
movq %rax, 0xb0(%rsp)
leaq 0xa8(%rsp), %rdi
movq %rbx, %rsi
callq 0x19496
testb %al, %al
je 0x14adb
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq %r13, %rdi
leaq 0x16952(%rip), %rsi     # 0x2951a
leaq 0x1694d(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r13, %rsi
callq 0x16e0a
leaq 0x768(%rsp), %rdi
movq %rax, %rsi
callq 0x16f2a
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x12c1a
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12c35
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x168d2(%rip), %rsi     # 0x2951a
leaq 0x168cd(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x2a0(%rsp), %rdi
movq %rax, %rsi
callq 0x8860
jmp 0x12cec
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x16896(%rip), %rsi     # 0x2951a
leaq 0x16891(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x210(%rsp), %rdi
movq %rax, %rsi
callq 0x8860
jmp 0x12cec
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x1685a(%rip), %rsi     # 0x2951a
leaq 0x16855(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x1f0(%rsp), %rdi
movq %rax, %rsi
callq 0x8860
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12d07
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
testb $0x1, 0x128(%rsp)
je 0x12d65
leaq 0x390(%rsp), %rax
movq %rax, 0x380(%rsp)
leaq 0x380(%rsp), %rbx
movq %rbx, %rdi
leaq 0x17b55(%rip), %rsi     # 0x2a888
leaq 0x17b53(%rip), %rdx     # 0x2a88d
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0x16e0a
movq %rax, %rdi
leaq 0x17c3a(%rip), %rsi     # 0x2a993
callq 0x6100
testl %eax, %eax
setne %bl
jmp 0x12d67
xorl %ebx, %ebx
testb $0x1, 0x128(%rsp)
je 0x12d96
movq 0x380(%rsp), %rdi
leaq 0x390(%rsp), %rax
cmpq %rax, %rdi
je 0x12d96
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x6310
testb %bl, %bl
leaq 0x7e0(%rsp), %rbx
je 0x134b5
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %r12, %rdi
leaq 0x17acf(%rip), %rsi     # 0x2a888
leaq 0x17acd(%rip), %rdx     # 0x2a88d
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r12, %rsi
callq 0x16e0a
leaq 0x268(%rsp), %rdi
movq %rax, %rsi
movl $0x3b, %edx
callq 0x7ece
movq %rbp, 0x178(%rsp)
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x12e0d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
movq %r13, %rbp
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
xorl %ecx, %ecx
movq %rcx, 0x8(%rsp)
movb %cl, 0x10(%rsp)
leaq 0x30(%rsp), %rax
movq %rax, 0x20(%rsp)
movq %rcx, 0x28(%rsp)
movb %cl, 0x30(%rsp)
leaq 0xb8(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq %rcx, 0xb0(%rsp)
movb %cl, 0xb8(%rsp)
movq 0x268(%rsp), %rsi
cmpq %rsi, 0x270(%rsp)
leaq 0xa8(%rsp), %r15
je 0x13439
movl $0x1, %ebx
xorl %r14d, %r14d
shlq $0x5, %r14
addq %r14, %rsi
movq %r15, %rdi
callq 0x61d0
movl $0x1, %ecx
movq %r15, %rdi
leaq 0x17a78(%rip), %r13     # 0x2a912
movq %r13, %rsi
xorl %edx, %edx
callq 0x6580
cmpq $-0x1, %rax
je 0x13203
movq 0x268(%rsp), %r15
addq %r14, %r15
movl $0x1, %ecx
movq %r15, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x6580
movq %rbp, %r13
movq %rbp, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x6330
leaq 0xa8(%rsp), %rdi
movq %r13, %rsi
callq 0x63b0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x12f0a
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
addq 0x268(%rsp), %r14
movl $0x1, %ecx
movq %r14, %rdi
leaq 0x179f1(%rip), %rsi     # 0x2a912
xorl %edx, %edx
callq 0x6580
leaq 0x1(%rax), %rdx
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
movq $-0x1, %rcx
callq 0x6330
leaq 0xd8(%rsp), %rax
movq %rax, 0xc8(%rsp)
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
leaq 0x165b5(%rip), %rsi     # 0x2951a
leaq 0x165b0(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r14, %rsi
callq 0x16e0a
movq %r13, %rdi
movq %rax, %rsi
leaq 0xa8(%rsp), %rdx
callq 0x1738a
movq %r12, %rdi
movq %r13, %rsi
callq 0x63b0
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63b0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x12fd6
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
leaq 0xa8(%rsp), %r15
je 0x12ffa
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x1301f
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x8(%rsp), %rdx
cmpq 0x28(%rsp), %rdx
jne 0x1304a
testq %rdx, %rdx
je 0x143e6
movq (%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x6320
testl %eax, %eax
je 0x143e6
movl $0x1, %ecx
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
leaq 0x17932(%rip), %rsi     # 0x2a993
xorl %edx, %edx
callq 0x6580
testq %rax, %rax
je 0x13343
leaq 0x230(%rsp), %rdi
movq %r14, %rsi
movl $0x2c, %edx
callq 0x8039
leaq 0x250(%rsp), %rdi
movq %r14, %rsi
movl $0x2c, %edx
callq 0x7ece
movq 0x230(%rsp), %rax
movq 0x238(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq $0x1, %rcx
je 0x1337b
cmpq $0x3, %rcx
jne 0x14602
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x16027(%rip), %rsi     # 0x29100
callq 0x6100
testl %eax, %eax
je 0x1311e
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x16686(%rip), %rsi     # 0x2977b
callq 0x6100
testl %eax, %eax
je 0x1311e
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x17882(%rip), %rsi     # 0x2a993
callq 0x6100
testl %eax, %eax
jne 0x14875
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x15fcf(%rip), %rsi     # 0x29100
callq 0x6100
leaq 0x190(%rsp), %rdi
testl %eax, %eax
je 0x1318e
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x16626(%rip), %rsi     # 0x2977b
callq 0x6100
leaq 0x1b0(%rsp), %rdi
testl %eax, %eax
je 0x1318e
movq 0x250(%rsp), %rdi
addq $0x40, %rdi
leaq 0x1781a(%rip), %rsi     # 0x2a993
callq 0x6100
leaq 0x1d0(%rsp), %rdi
testl %eax, %eax
jne 0x14929
movq %r12, %rsi
callq 0x16fa6
movq 0x230(%rsp), %rax
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movsd %xmm1, 0x48(%rsp)
ucomisd %xmm1, %xmm0
ja 0x146b6
ucomisd 0x8(%rax), %xmm0
ja 0x1454e
leaq 0x408(%rsp), %rdi
movq %r12, %rsi
callq 0x16fd2
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x230(%rsp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
leaq 0x660(%rsp), %rdi
movq %r12, %rsi
callq 0x16fd2
jmp 0x133bb
leaq 0xf8(%rsp), %rax
movq %rax, 0xe8(%rsp)
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
leaq 0x162f5(%rip), %rsi     # 0x2951a
leaq 0x162f0(%rip), %rdx     # 0x2951c
callq 0xe03a
leaq 0x130(%rsp), %rdi
movq %r14, %rsi
callq 0x16e0a
leaq 0xa8(%rsp), %r15
movq %rbp, %r14
movq %rbp, %rdi
movq %rax, %rsi
movq %r15, %rdx
callq 0x1738a
movq %r12, %rdi
movq %r14, %rsi
callq 0x63b0
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x63b0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x1329c
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x132b8
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x132dd
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x8(%rsp), %rdx
cmpq 0x28(%rsp), %rdx
jne 0x13308
testq %rdx, %rdx
je 0x1449a
movq (%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x6320
testl %eax, %eax
je 0x1449a
movq 0x110(%rsp), %rdi
movq 0x118(%rsp), %rsi
movq %r12, %rdx
callq 0x1a755
cmpq 0x118(%rsp), %rax
jne 0x13414
leaq 0x110(%rsp), %rdi
movq %r12, %rsi
callq 0x16fa6
jmp 0x13414
movq 0x110(%rsp), %rdi
movq 0x118(%rsp), %rsi
movq %r12, %rdx
callq 0x1a755
cmpq 0x118(%rsp), %rax
jne 0x133ef
leaq 0x110(%rsp), %rdi
movq %r12, %rsi
callq 0x16fa6
jmp 0x133ef
xorpd %xmm0, %xmm0
ucomisd (%rax), %xmm0
ja 0x1476a
leaq 0x110(%rsp), %rdi
movq %r12, %rsi
callq 0x16fa6
movq 0x230(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
leaq 0x408(%rsp), %rdi
movq %r12, %rsi
callq 0x16fd2
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x250(%rsp), %rdi
callq 0x889e
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x133ef
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
callq 0x6310
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x13414
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x6310
movl %ebx, %r14d
movq 0x268(%rsp), %rsi
movq 0x270(%rsp), %rax
subq %rsi, %rax
sarq $0x5, %rax
incl %ebx
cmpq %r14, %rax
jne 0x12e7c
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
movq %rbp, %r13
je 0x13461
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
leaq 0x7e0(%rsp), %rbx
movq 0x178(%rsp), %rbp
je 0x1348d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x134a8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x268(%rsp), %rdi
callq 0x889e
movq 0xa20(%rsp), %rdi
leaq 0xa30(%rsp), %rax
cmpq %rax, %rdi
je 0x134da
movq 0xa30(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x130(%rsp), %rdi
callq 0x8998
leaq 0x648(%rsp), %rdi
callq 0x889e
jmp 0x11910
leaq 0x7e0(%rsp), %rdi
callq 0x6090
movq 0x450(%rsp), %rbx
leaq 0x440(%rsp), %rax
cmpq %rax, %rbx
je 0x13638
movq 0x58(%rsp), %rax
leaq 0x20(%rax), %r14
leaq 0x75d20(%rsp), %r15
leaq 0x75d30(%rsp), %rbp
leaq 0x75d40(%rsp), %r12
leaq 0x75d18(%rsp), %r13
testb $0x1, 0x180(%rsp)
jne 0x135b9
xorpd %xmm0, %xmm0
movsd 0x15aaa(%rip), %xmm1    # 0x29008
movq %r14, %rdi
callq 0x72a4
movsd %xmm0, 0x48(%rsp)
xorpd %xmm0, %xmm0
movsd 0x15a90(%rip), %xmm1    # 0x29008
movq %r14, %rdi
callq 0x72a4
movsd %xmm0, 0x128(%rsp)
xorpd %xmm0, %xmm0
movsd 0x15a73(%rip), %xmm1    # 0x29008
movq %r14, %rdi
callq 0x72a4
movapd %xmm0, %xmm2
leaq 0x40(%rbx), %rdi
movsd 0x48(%rsp), %xmm0
movsd 0x128(%rsp), %xmm1
callq 0xb4ce
movb 0x40(%rbx), %al
movb %al, 0x75d18(%rsp)
movq %rbp, 0x75d20(%rsp)
movq 0x48(%rbx), %rsi
movq 0x50(%rbx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xa53a
leaq 0x68(%rbx), %rsi
movq %r12, %rdi
callq 0x173ee
movq 0x58(%rsp), %rdi
movq %r13, %rsi
callq 0xe3b2
movq %r12, %rdi
callq 0xc0ea
movq 0x75d20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x1361c
movq 0x75d30(%rsp), %rsi
incq %rsi
callq 0x6310
movq %rbx, %rdi
callq 0x6250
movq %rax, %rbx
leaq 0x440(%rsp), %rax
cmpq %rax, %rbx
jne 0x13548
cmpb $0x0, 0x18c(%rsp)
je 0x136df
movq 0x24993(%rip), %rdi     # 0x37fe0
leaq 0x173cb(%rip), %rsi     # 0x2aa1f
movl $0x1b, %edx
callq 0x6370
movq 0x58(%rsp), %rdi
callq 0x157c2
movq 0x24971(%rip), %rdi     # 0x37fe0
callq 0x64d0
movq 0x58(%rsp), %rdi
movsd 0x400(%rsp), %xmm0
callq 0x1582a
movq 0x24952(%rip), %rdi     # 0x37fe0
leaq 0x173a6(%rip), %rsi     # 0x2aa3b
movl $0x4, %edx
callq 0x6370
movq 0x58(%rsp), %rdi
callq 0x157c2
movq 0x24930(%rip), %rdi     # 0x37fe0
callq 0x64d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x110(%rsp), %rbx
cmpq 0x118(%rsp), %rbx
je 0x13901
leaq 0x638(%rsp), %r14
addq $0x20, %rbx
leaq 0x798(%rsp), %r15
leaq 0x628(%rsp), %rbp
leaq 0x320(%rsp), %r12
leaq -0x20(%rbx), %r13
leaq 0x408(%rsp), %rdi
movq %r13, %rsi
callq 0x1af00
movsd 0x158d3(%rip), %xmm0    # 0x29008
movsd %xmm0, 0x48(%rsp)
leaq 0x410(%rsp), %rcx
cmpq %rcx, %rax
je 0x13753
movsd 0x60(%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movq %r15, %rdi
movq %r13, %rsi
callq 0x88fa
movq %rax, %r13
movq %r15, %rdi
movq %rbx, %rsi
callq 0x88fa
movq 0x8(%r13), %rdx
cmpq 0x8(%rax), %rdx
jne 0x13793
testq %rdx, %rdx
je 0x13849
movq (%rax), %rsi
movq (%r13), %rdi
callq 0x6320
testl %eax, %eax
je 0x13849
movq %r14, 0x628(%rsp)
movq -0x20(%rbx), %rsi
movq -0x18(%rbx), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0xa53a
leaq 0x330(%rsp), %rax
movq %rax, 0x320(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xa53a
movq 0x58(%rsp), %rdi
movq %rbp, %rsi
movq %r12, %rdx
movsd 0x48(%rsp), %xmm0
movl $0x8, %ecx
callq 0xe600
movq 0x320(%rsp), %rdi
leaq 0x330(%rsp), %rax
cmpq %rax, %rdi
je 0x13810
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x628(%rsp), %rdi
movq %r14, %rax
cmpq %r14, %rdi
je 0x1382b
movq (%rax), %rsi
incq %rsi
callq 0x6310
leaq 0x40(%rbx), %rax
addq $0x20, %rbx
cmpq 0x118(%rsp), %rbx
movq %rax, %rbx
jne 0x13719
jmp 0x13901
leaq 0x370(%rsp), %rax
movq %rax, 0x360(%rsp)
movq -0x20(%rbx), %rsi
movq -0x18(%rbx), %rdx
addq %rsi, %rdx
leaq 0x360(%rsp), %rdi
callq 0xa53a
leaq 0x350(%rsp), %rax
movq %rax, 0x340(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x340(%rsp), %r13
movq %r13, %rdi
callq 0xa53a
movq 0x58(%rsp), %rdi
leaq 0x360(%rsp), %rsi
movq %r13, %rdx
movsd 0x48(%rsp), %xmm0
movl $0x7, %ecx
callq 0xe600
movq 0x340(%rsp), %rdi
leaq 0x350(%rsp), %rax
cmpq %rax, %rdi
je 0x138e0
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rcx
movq %rcx, %rax
cmpq %rcx, %rdi
jne 0x13820
jmp 0x1382b
movq 0x1d0(%rsp), %rbx
cmpq 0x1d8(%rsp), %rbx
je 0x13a01
leaq 0x518(%rsp), %r15
leaq 0x300(%rsp), %r12
leaq 0x508(%rsp), %r13
leaq 0x660(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %rbp
leaq 0x408(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %r14
leaq 0x310(%rsp), %rax
movq %rax, 0x300(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xa53a
movq %r15, 0x508(%rsp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0xa53a
movsd 0x60(%rbp), %xmm0
movsd 0x60(%r14), %xmm1
movq 0x58(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xe7e8
movq 0x508(%rsp), %rdi
cmpq %r15, %rdi
je 0x139ca
movq 0x518(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x300(%rsp), %rdi
leaq 0x310(%rsp), %rax
cmpq %rax, %rdi
je 0x139ef
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x40, %rbx
cmpq 0x1d8(%rsp), %rbx
jne 0x1392f
movq 0x1b0(%rsp), %rbx
cmpq 0x1b8(%rsp), %rbx
je 0x13b01
leaq 0x4f8(%rsp), %r15
leaq 0x2e0(%rsp), %r12
leaq 0x4e8(%rsp), %r13
leaq 0x660(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %rbp
leaq 0x408(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %r14
leaq 0x2f0(%rsp), %rax
movq %rax, 0x2e0(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xa53a
movq %r15, 0x4e8(%rsp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0xa53a
movsd 0x60(%rbp), %xmm0
movsd 0x60(%r14), %xmm1
movq 0x58(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xe9a0
movq 0x4e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13aca
movq 0x4f8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x2e0(%rsp), %rdi
leaq 0x2f0(%rsp), %rax
cmpq %rax, %rdi
je 0x13aef
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x40, %rbx
cmpq 0x1b8(%rsp), %rbx
jne 0x13a2f
movq 0x190(%rsp), %rbx
cmpq 0x198(%rsp), %rbx
je 0x13c01
leaq 0x4d8(%rsp), %r15
leaq 0x2c0(%rsp), %r12
leaq 0x4c8(%rsp), %r13
leaq 0x660(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %rbp
leaq 0x408(%rsp), %rdi
movq %rbx, %rsi
callq 0x1af00
movq %rax, %r14
leaq 0x2d0(%rsp), %rax
movq %rax, 0x2c0(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0xa53a
movq %r15, 0x4c8(%rsp)
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0xa53a
movsd 0x60(%rbp), %xmm0
movsd 0x60(%r14), %xmm1
movq 0x58(%rsp), %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0xeb80
movq 0x4c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x13bca
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x13bef
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x40, %rbx
cmpq 0x198(%rsp), %rbx
jne 0x13b2f
movq 0x210(%rsp), %rbx
cmpq 0x218(%rsp), %rbx
je 0x13cc0
leaq 0x4b8(%rsp), %r12
leaq 0x720(%rsp), %r14
leaq 0x4a8(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1af6c
movsd 0x153c6(%rip), %xmm0    # 0x29008
leaq 0x728(%rsp), %rcx
cmpq %rcx, %rax
je 0x13c5e
movq %r14, %rdi
movq %rbx, %rsi
callq 0x16f2a
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movq %r12, 0x4a8(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xa53a
movq 0x58(%rsp), %rdi
movq %r15, %rsi
movsd 0x48(%rsp), %xmm0
callq 0xef82
movq 0x4a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x13cae
movq 0x4b8(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x20, %rbx
cmpq 0x218(%rsp), %rbx
jne 0x13c2f
movq 0x2a0(%rsp), %rbx
cmpq 0x2a8(%rsp), %rbx
je 0x13d57
leaq 0x498(%rsp), %r12
leaq 0x488(%rsp), %r14
leaq 0x768(%rsp), %r15
movq %r12, 0x488(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xa53a
movq %r15, %rdi
movq %rbx, %rsi
callq 0x16f2a
movsd (%rax), %xmm0
movq 0x58(%rsp), %rdi
movq %r14, %rsi
movsd 0x152e1(%rip), %xmm1    # 0x29008
callq 0xed66
movq 0x488(%rsp), %rdi
cmpq %r12, %rdi
je 0x13d49
movq 0x498(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x20, %rbx
cmpq 0x2a8(%rsp), %rbx
jne 0x13cee
movq 0x1f0(%rsp), %rbx
cmpq 0x1f8(%rsp), %rbx
je 0x13e16
leaq 0x478(%rsp), %r12
leaq 0x6f0(%rsp), %r14
leaq 0x468(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1af6c
movsd 0x15270(%rip), %xmm0    # 0x29008
leaq 0x6f8(%rsp), %rcx
cmpq %rcx, %rax
je 0x13db4
movq %r14, %rdi
movq %rbx, %rsi
callq 0x16f2a
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
movq %r12, 0x468(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xa53a
movq 0x58(%rsp), %rdi
movq %r15, %rsi
movsd 0x48(%rsp), %xmm0
callq 0xf0a8
movq 0x468(%rsp), %rdi
cmpq %r12, %rdi
je 0x13e04
movq 0x478(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0x20, %rbx
cmpq 0x1f8(%rsp), %rbx
jne 0x13d85
leaq 0x110(%rsp), %rsi
callq 0x1590e
testb %al, %al
je 0x14b61
leaq 0x1d0(%rsp), %rsi
callq 0x1590e
testb %al, %al
je 0x14b82
leaq 0x1b0(%rsp), %rsi
callq 0x1590e
testb %al, %al
je 0x14ba0
leaq 0x190(%rsp), %rsi
callq 0x1590e
testb %al, %al
je 0x14bbe
leaq 0x660(%rsp), %rsi
callq 0x15b18
testb %al, %al
je 0x14bdc
leaq 0x408(%rsp), %rsi
callq 0x15b18
testb %al, %al
je 0x14bfa
movq 0x58(%rsp), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x15c82
movq 0x58(%rsp), %rax
movq 0xa78(%rax), %r14
xorl %ebx, %ebx
cmpq 0xa80(%rax), %r14
je 0x13edb
movq %r14, %rdi
callq 0xb1dc
addl %eax, %ebx
addq $0x75330, %r14          # imm = 0x75330
movq 0x58(%rsp), %rax
cmpq 0xa80(%rax), %r14
jne 0x13eba
movl %ebx, %ebx
movq 0x240fe(%rip), %rdi     # 0x37fe0
leaq 0x16da2(%rip), %rsi     # 0x2ac8b
movl $0xf, %edx
callq 0x6370
movq 0x460(%rsp), %rsi
movq 0x240de(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x240a8(%rip), %rdi     # 0x37fe0
leaq 0x16d5c(%rip), %rsi     # 0x2ac9b
movl $0x9, %edx
callq 0x6370
movq 0x24090(%rip), %rdi     # 0x37fe0
movq %rbx, %rsi
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x24057(%rip), %rdi     # 0x37fe0
leaq 0x16d15(%rip), %rsi     # 0x2aca5
movl $0x10, %edx
callq 0x6370
movq 0x118(%rsp), %rsi
subq 0x110(%rsp), %rsi
sarq $0x6, %rsi
shrq %rsi
movq 0x24028(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23ff2(%rip), %rdi     # 0x37fe0
leaq 0x16cc1(%rip), %rsi     # 0x2acb6
movl $0x22, %edx
callq 0x6370
movq 0x430(%rsp), %rsi
shrq %rsi
movq 0x23fcf(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23f99(%rip), %rdi     # 0x37fe0
leaq 0x16c8b(%rip), %rsi     # 0x2acd9
movl $0x30, %edx
callq 0x6370
movq 0x1d8(%rsp), %rsi
subq 0x1d0(%rsp), %rsi
sarq $0x6, %rsi
shrq %rsi
movq 0x23f6a(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23f34(%rip), %rdi     # 0x37fe0
leaq 0x16c57(%rip), %rsi     # 0x2ad0a
movl $0x32, %edx
callq 0x6370
movq 0x198(%rsp), %rsi
subq 0x190(%rsp), %rsi
sarq $0x6, %rsi
shrq %rsi
movq 0x23f05(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23ecf(%rip), %rdi     # 0x37fe0
leaq 0x16c25(%rip), %rsi     # 0x2ad3d
movl $0x32, %edx
callq 0x6370
movq 0x1b8(%rsp), %rsi
subq 0x1b0(%rsp), %rsi
sarq $0x6, %rsi
shrq %rsi
movq 0x23ea0(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23e6a(%rip), %rdi     # 0x37fe0
leaq 0x16bf3(%rip), %rsi     # 0x2ad70
movl $0x13, %edx
callq 0x6370
movq 0x218(%rsp), %rsi
subq 0x210(%rsp), %rsi
sarq $0x5, %rsi
movq 0x23e3e(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23e08(%rip), %rdi     # 0x37fe0
leaq 0x16ba5(%rip), %rsi     # 0x2ad84
movl $0x22, %edx
callq 0x6370
movq 0x748(%rsp), %rsi
movq 0x23de8(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23db2(%rip), %rdi     # 0x37fe0
leaq 0x16b72(%rip), %rsi     # 0x2ada7
movl $0x10, %edx
callq 0x6370
movq 0x1f8(%rsp), %rsi
subq 0x1f0(%rsp), %rsi
sarq $0x5, %rsi
movq 0x23d86(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
movq 0x23d50(%rip), %rdi     # 0x37fe0
leaq 0x16b21(%rip), %rsi     # 0x2adb8
movl $0x1f, %edx
callq 0x6370
movq 0x718(%rsp), %rsi
movq 0x23d30(%rip), %rdi     # 0x37fe0
callq 0x6230
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x62f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6240
leaq 0x6f0(%rsp), %rdi
callq 0x174d8
leaq 0x720(%rsp), %rdi
callq 0x174d8
leaq 0x408(%rsp), %rdi
callq 0x17550
leaq 0x768(%rsp), %rdi
callq 0x174d8
leaq 0x660(%rsp), %rdi
callq 0x17550
leaq 0x190(%rsp), %rdi
callq 0x1706c
leaq 0x1b0(%rsp), %rdi
callq 0x1706c
leaq 0x1d0(%rsp), %rdi
callq 0x1706c
leaq 0x110(%rsp), %rdi
callq 0x1706c
leaq 0x2a0(%rsp), %rdi
callq 0x889e
leaq 0x1f0(%rsp), %rdi
callq 0x889e
leaq 0x210(%rsp), %rdi
callq 0x889e
leaq 0x798(%rsp), %rdi
callq 0x8998
leaq 0x438(%rsp), %rdi
callq 0x175e2
leaq 0x160(%rsp), %rdi
callq 0x889e
leaq 0x7e0(%rsp), %rdi
callq 0x60d0
movq 0x280(%rsp), %rdi
leaq 0x290(%rsp), %rax
cmpq %rax, %rdi
je 0x143d4
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x6310
addq $0xeb048, %rsp          # imm = 0xEB048
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5d8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x5c8(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x5c8(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x5c8(%rsp), %rdi
cmpq %r14, %rdi
je 0x14444
movq 0x5d8(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x164bc(%rip), %rdx     # 0x2a914
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x23b3a(%rip), %rsi     # 0x37fc0
movq 0x23aeb(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x5f8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x5e8(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x5e8(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x5e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x144f8
movq 0x5f8(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x16408(%rip), %rdx     # 0x2a914
leaq 0xe8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xe8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x23a86(%rip), %rsi     # 0x37fc0
movq 0x23a37(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x578(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x568(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x568(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x568(%rsp), %rdi
cmpq %r14, %rdi
je 0x145ac
movq 0x578(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x163f4(%rip), %rdx     # 0x2a9b4
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x239d2(%rip), %rsi     # 0x37fc0
movq 0x23983(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x538(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x528(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x528(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x528(%rsp), %rdi
cmpq %r14, %rdi
je 0x14660
movq 0x538(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x1635b(%rip), %rdx     # 0x2a9cf
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x2391e(%rip), %rsi     # 0x37fc0
movq 0x238cf(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x598(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x588(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x588(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x588(%rsp), %rdi
cmpq %r14, %rdi
je 0x14714
movq 0x598(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x16273(%rip), %rdx     # 0x2a99b
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x2386a(%rip), %rsi     # 0x37fc0
movq 0x2381b(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x558(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x548(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x548(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x548(%rsp), %rdi
cmpq %r14, %rdi
je 0x147c8
movq 0x558(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x161bf(%rip), %rdx     # 0x2a99b
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x237b6(%rip), %rsi     # 0x37fc0
movq 0x23767(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x22cb3(%rip), %rax     # 0x374d8
leaq 0xa8(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x22b59(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x236c6(%rip), %rax     # 0x37f08
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x22c86(%rip), %rax     # 0x374d8
leaq 0x60(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x22b2f(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x2369c(%rip), %rax     # 0x37f08
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x5b8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x5a8(%rsp), %rdi
callq 0xa53a
leaq 0x60(%rsp), %rdi
leaq 0x5a8(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x5a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x148d3
movq 0x5b8(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x16082(%rip), %rdx     # 0x2a969
leaq 0xc8(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0xc8(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x236ab(%rip), %rsi     # 0x37fc0
movq 0x2365c(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x16065(%rip), %rdi     # 0x2a995
leaq 0x15a70(%rip), %rsi     # 0x2a3a7
leaq 0x15f5d(%rip), %rcx     # 0x2a89b
movl $0x27e, %edx            # imm = 0x27E
callq 0x6210
leaq 0x22b89(%rip), %rax     # 0x374d8
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x22a34(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x23631(%rip), %rax     # 0x37f98
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x22b61(%rip), %rax     # 0x374d8
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x22a0c(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x23609(%rip), %rax     # 0x37f98
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x22b39(%rip), %rax     # 0x374d8
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x229e4(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x23631(%rip), %rax     # 0x37fe8
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x22b11(%rip), %rax     # 0x374d8
movq %rsp, %rdi
movq %rax, (%rdi)
leaq 0x229bc(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x235b9(%rip), %rax     # 0x37f98
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x15cd2(%rip), %rdi     # 0x2a6c1
leaq 0x159b1(%rip), %rsi     # 0x2a3a7
leaq 0x15e9e(%rip), %rcx     # 0x2a89b
movl $0x205, %edx            # imm = 0x205
callq 0x6210
leaq 0x22aca(%rip), %rax     # 0x374d8
leaq 0x60(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x22973(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x235c0(%rip), %rax     # 0x37fe8
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x618(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x608(%rsp), %rdi
callq 0xa53a
movq %rsp, %rdi
leaq 0x608(%rsp), %rdx
movl 0x54(%rsp), %esi
callq 0x817a
movq 0x608(%rsp), %rdi
cmpq %r14, %rdi
je 0x14a8d
movq 0x618(%rsp), %rsi
incq %rsi
callq 0x6310
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15e39(%rip), %rdx     # 0x2a8da
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x16d2a
movb $0x1, %bpl
leaq 0x60(%rsp), %rsi
movq %r14, %rdi
callq 0x6440
xorl %ebp, %ebp
movq 0x234f9(%rip), %rsi     # 0x37fc0
movq 0x234aa(%rip), %rdx     # 0x37f78
movq %r14, %rdi
callq 0x6550
jmp 0x14b61
leaq 0x229f6(%rip), %rax     # 0x374d8
leaq 0x60(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x2289f(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x234ec(%rip), %rax     # 0x37fe8
movq %rax, 0x10(%rdi)
callq 0x198e3
leaq 0x229cc(%rip), %rax     # 0x374d8
leaq 0x60(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x22875(%rip), %rax     # 0x37390
movq %rax, 0x8(%rdi)
movq 0x234c2(%rip), %rax     # 0x37fe8
movq %rax, 0x10(%rdi)
callq 0x198e3
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15d0f(%rip), %rsi     # 0x2a852
movq %rax, %rdi
callq 0x6150
movq 0x2349e(%rip), %rsi     # 0x37ff0
movq 0x2340f(%rip), %rdx     # 0x37f68
movq %r14, %rdi
callq 0x6550
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15ecb(%rip), %rsi     # 0x2aa40
movq %rax, %rdi
callq 0x6150
jmp 0x14c16
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15eaa(%rip), %rsi     # 0x2aa40
movq %rax, %rdi
callq 0x6150
jmp 0x14c16
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15f3c(%rip), %rsi     # 0x2aaf0
movq %rax, %rdi
callq 0x6150
jmp 0x14c16
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15f1e(%rip), %rsi     # 0x2aaf0
movq %rax, %rdi
callq 0x6150
jmp 0x14c16
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x15fc1(%rip), %rsi     # 0x2abb1
movq %rax, %rdi
callq 0x6150
jmp 0x14c16
movl $0x10, %edi
callq 0x61a0
movq %rax, %r14
leaq 0x16015(%rip), %rsi     # 0x2ac23
movq %rax, %rdi
callq 0x6150
movq 0x233d3(%rip), %rsi     # 0x37ff0
movq 0x23344(%rip), %rdx     # 0x37f68
movq %r14, %rdi
callq 0x6550
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x14c53
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x14c53
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x15568
movq %r14, %rdi
callq 0x6280
jmp 0x15568
jmp 0x14c73
jmp 0x14c73
jmp 0x14c73
jmp 0x14c73
jmp 0x14c73
movq %rax, %rbx
movq %r14, %rdi
callq 0x6280
jmp 0x156c4
movq %rax, %rbx
jmp 0x15787
movq %rax, %rbx
movq %r14, %rdi
callq 0x6280
jmp 0x15787
movq %rax, %rbx
movq 0x608(%rsp), %rdi
cmpq %r14, %rdi
je 0x15685
movq 0x618(%rsp), %rsi
jmp 0x1557f
movq %rax, %rbx
jmp 0x15794
jmp 0x14d84
jmp 0x14dae
jmp 0x151af
jmp 0x151af
jmp 0x14d48
jmp 0x151af
jmp 0x14d5c
jmp 0x151af
jmp 0x14d5c
jmp 0x15565
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x64a0
jmp 0x15568
jmp 0x151af
jmp 0x151af
jmp 0x151af
movq %rax, %rbx
movq 0x5a8(%rsp), %rdi
cmpq %r14, %rdi
je 0x155d2
movq 0x5b8(%rsp), %rsi
jmp 0x14dd9
jmp 0x151af
jmp 0x151af
jmp 0x151af
jmp 0x151af
jmp 0x15565
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x64a0
jmp 0x14ebb
jmp 0x14d5c
movq %rax, %rbx
jmp 0x14ebb
jmp 0x15565
jmp 0x15565
jmp 0x15565
jmp 0x14e9c
jmp 0x14d84
jmp 0x14dae
jmp 0x14d84
jmp 0x14dae
jmp 0x14d84
jmp 0x14dae
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x14db4
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x14db4
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x14dc1
movq %r14, %rdi
callq 0x6280
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x155d2
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x155d2
jmp 0x1558c
jmp 0x15565
jmp 0x15565
jmp 0x155b1
jmp 0x151af
jmp 0x151af
jmp 0x15565
movq %rax, %rbx
movq 0x340(%rsp), %rdi
leaq 0x350(%rsp), %rax
cmpq %rax, %rdi
je 0x14e36
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x14e36
movq %rax, %rbx
movq 0x360(%rsp), %rdi
leaq 0x370(%rsp), %rax
cmpq %rax, %rdi
je 0x156c4
movq 0x370(%rsp), %rsi
jmp 0x15554
jmp 0x15237
movq %rax, %rbx
movq 0x3e0(%rsp), %rdi
leaq 0x3f0(%rsp), %rax
cmpq %rax, %rdi
je 0x154f3
movq 0x3f0(%rsp), %rsi
jmp 0x154eb
jmp 0x15565
movq %rax, %rbx
jmp 0x1544c
jmp 0x155cf
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x14ebb
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0xa8(%rsp), %rdi
callq 0x889e
jmp 0x15568
jmp 0x15565
jmp 0x15565
jmp 0x15565
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x14f0c
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x14f0c
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x14f19
movq %r14, %rdi
callq 0x6280
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x1564b
movq 0x70(%rsp), %rsi
jmp 0x15643
movq %rax, %rbx
movq 0x548(%rsp), %rdi
cmpq %r14, %rdi
je 0x155d2
movq 0x558(%rsp), %rsi
jmp 0x14dd9
movq %rax, %rbx
movq 0x588(%rsp), %rdi
cmpq %r14, %rdi
je 0x155d2
movq 0x598(%rsp), %rsi
jmp 0x14dd9
movq %rax, %rbx
movq 0x528(%rsp), %rdi
cmpq %r14, %rdi
je 0x155d2
movq 0x538(%rsp), %rsi
jmp 0x14dd9
movq %rax, %rbx
movq 0x568(%rsp), %rdi
cmpq %r14, %rdi
je 0x155d2
movq 0x578(%rsp), %rsi
jmp 0x14dd9
jmp 0x151af
jmp 0x151af
jmp 0x151af
movq %rax, %rbx
movq 0x380(%rsp), %rdi
leaq 0x390(%rsp), %rax
cmpq %rax, %rdi
je 0x15685
movq 0x390(%rsp), %rsi
jmp 0x1557f
jmp 0x15565
jmp 0x15565
jmp 0x151af
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
leaq 0x3b0(%rsp), %rax
cmpq %rax, %rdi
je 0x15685
movq 0x3b0(%rsp), %rsi
jmp 0x1557f
jmp 0x15237
jmp 0x151af
jmp 0x15048
movq %rax, %rbx
movq %rsp, %rdi
callq 0x64a0
jmp 0x15512
jmp 0x15048
movq %rax, %rbx
movq %rsp, %rdi
callq 0x64a0
jmp 0x1549b
jmp 0x151af
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x156c4
movq 0x9f8(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x15565
movq %rax, %rbx
jmp 0x150e0
movq %rax, %rbx
movq 0x320(%rsp), %rdi
leaq 0x330(%rsp), %rax
cmpq %rax, %rdi
je 0x150e0
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x628(%rsp), %rdi
cmpq %r14, %rdi
je 0x156c4
movq 0x638(%rsp), %rsi
jmp 0x15554
jmp 0x154a5
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x15133
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x15133
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x15140
movq %r14, %rdi
callq 0x6280
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x15626
movq 0x70(%rsp), %rsi
jmp 0x1561e
jmp 0x155ca
movq %rax, %rbx
movq 0x5e8(%rsp), %rdi
cmpq %r14, %rdi
je 0x1564b
movq 0x5f8(%rsp), %rsi
jmp 0x15643
jmp 0x155cf
jmp 0x155cf
jmp 0x155cf
jmp 0x155cf
jmp 0x15565
jmp 0x151af
jmp 0x15565
jmp 0x154d4
jmp 0x151af
jmp 0x15565
movq %rax, %rbx
jmp 0x15685
movq %rax, %rbx
movq 0x6c8(%rsp), %rdi
leaq 0x6d8(%rsp), %rax
cmpq %rax, %rdi
je 0x15568
movq 0x6d8(%rsp), %rsi
jmp 0x155a3
movq %rax, %rbx
movq 0x3c0(%rsp), %rdi
leaq 0x3d0(%rsp), %rax
cmpq %rax, %rdi
je 0x154ad
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x154ad
jmp 0x15565
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x64a0
jmp 0x154f3
jmp 0x15237
movq %rax, %rbx
jmp 0x156b7
movq %rax, %rbx
jmp 0x1524f
movq %rax, %rbx
jmp 0x156aa
movq %rax, %rbx
leaq 0x7c8(%rsp), %rdi
callq 0x889e
leaq 0x750(%rsp), %rdi
callq 0x889e
jmp 0x156b7
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x64a0
jmp 0x154d7
jmp 0x1550f
jmp 0x154a5
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
movq 0x468(%rsp), %rdi
cmpq %r12, %rdi
je 0x156c4
movq 0x478(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
movq 0x4a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x156c4
movq 0x4b8(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
jmp 0x1530f
movq %rax, %rbx
movq 0x4c8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1530f
movq 0x4d8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x2c0(%rsp), %rdi
leaq 0x2d0(%rsp), %rax
cmpq %rax, %rdi
je 0x156c4
movq 0x2d0(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
jmp 0x15369
movq %rax, %rbx
movq 0x4e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15369
movq 0x4f8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x2e0(%rsp), %rdi
leaq 0x2f0(%rsp), %rax
cmpq %rax, %rdi
je 0x156c4
movq 0x2f0(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
jmp 0x153c3
movq %rax, %rbx
movq 0x508(%rsp), %rdi
cmpq %r15, %rdi
je 0x153c3
movq 0x518(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0x300(%rsp), %rdi
leaq 0x310(%rsp), %rax
cmpq %rax, %rdi
je 0x156c4
movq 0x310(%rsp), %rsi
jmp 0x15554
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
movq %rax, %rbx
movq 0x75d20(%rsp), %rdi
cmpq %rbp, %rdi
je 0x156c4
movq 0x75d30(%rsp), %rsi
jmp 0x15554
movq %rax, %rbx
leaq 0x75d18(%rsp), %rdi
callq 0x16f02
jmp 0x156c4
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x1544c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x9e8(%rsp), %rdi
callq 0x16f02
jmp 0x156aa
movq %rax, %rbx
movq 0x5c8(%rsp), %rdi
cmpq %r14, %rdi
je 0x15626
movq 0x5d8(%rsp), %rsi
jmp 0x1561e
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x155b1
jmp 0x155f9
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
jmp 0x15680
movq %rax, %rbx
jmp 0x154f3
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x154d7
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x154d7
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x154f3
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x156aa
movq 0x10(%rsp), %rsi
jmp 0x156a2
movq %rax, %rbx
movq 0x9e8(%rsp), %rdi
leaq 0x9f8(%rsp), %rax
cmpq %rax, %rdi
je 0x156aa
movq 0x9f8(%rsp), %rsi
jmp 0x156a2
movq %rax, %rbx
movq 0x488(%rsp), %rdi
cmpq %r12, %rdi
je 0x156c4
movq 0x498(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x156c4
jmp 0x155ca
jmp 0x155b1
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x15685
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x15685
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x15568
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x6310
jmp 0x15568
jmp 0x155b1
jmp 0x155ca
movq %rax, %rbx
jmp 0x156c4
jmp 0x155f9
jmp 0x155f9
movq %rax, %rbx
jmp 0x155df
jmp 0x155ca
jmp 0x155f9
jmp 0x155f9
jmp 0x155ca
movq %rax, %rbx
jmp 0x15626
movq %rax, %rbx
leaq 0x250(%rsp), %rdi
callq 0x889e
movq 0x230(%rsp), %rdi
testq %rdi, %rdi
je 0x15626
movq 0x240(%rsp), %rsi
subq %rdi, %rsi
jmp 0x15621
movq %rax, %rbx
jmp 0x1564b
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x15626
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x1564b
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x6310
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x15670
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6310
movq %rsp, %rdi
callq 0x16b40
leaq 0x268(%rsp), %rdi
callq 0x889e
movq 0xa20(%rsp), %rdi
leaq 0xa30(%rsp), %rax
cmpq %rax, %rdi
je 0x156aa
movq 0xa30(%rsp), %rsi
incq %rsi
callq 0x6310
leaq 0x130(%rsp), %rdi
callq 0x8998
leaq 0x648(%rsp), %rdi
callq 0x889e
leaq 0x6f0(%rsp), %rdi
callq 0x174d8
leaq 0x720(%rsp), %rdi
callq 0x174d8
leaq 0x408(%rsp), %rdi
callq 0x17550
leaq 0x768(%rsp), %rdi
callq 0x174d8
leaq 0x660(%rsp), %rdi
callq 0x17550
leaq 0x190(%rsp), %rdi
callq 0x1706c
leaq 0x1b0(%rsp), %rdi
callq 0x1706c
leaq 0x1d0(%rsp), %rdi
callq 0x1706c
leaq 0x110(%rsp), %rdi
callq 0x1706c
leaq 0x2a0(%rsp), %rdi
callq 0x889e
leaq 0x1f0(%rsp), %rdi
callq 0x889e
leaq 0x210(%rsp), %rdi
callq 0x889e
leaq 0x798(%rsp), %rdi
callq 0x8998
leaq 0x438(%rsp), %rdi
callq 0x175e2
leaq 0x160(%rsp), %rdi
callq 0x889e
leaq 0x7e0(%rsp), %rdi
callq 0x60d0
movq 0x280(%rsp), %rdi
leaq 0x290(%rsp), %rax
cmpq %rax, %rdi
je 0x157b9
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x6310
movq %rbx, %rdi
callq 0x65b0
nop