// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::outputRunSummary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Swarm::outputRunSummary(string outputPath) {
	int counter; //Raquel: this will count the index of the parameter value for a given parameter
	int particleCounter; //Raquel: This will count the total number of particles
	vector<string> paramList; //Raquel: This is the global list of parameters
	int paramCounter; //Raquel: this is the index of the parameter name

	//int parID = 0;

	string paramString;

	map<unsigned int, map<unsigned int, map<string, double> > > alignedResults;   //Raquel: Particle -> Model -> Parameter -> value

	//cout<<"Swarm::outputRunSummary(string outputPath) may need some modifications ...."<<endl; //mypause(); //razi TODO: later test

	if (options.verbosity >=3) cout<<"Fitting finished: Writing Summary into File: " << outputPath<<endl;

	ofstream outputFile;
	if (options.verbosity >=5){
		cout << "RAQUEL opening file" << endl;
	}
	//outputFile.open(outputPath, ofstream::out);
	//outputFile.open(outputPath);
	//outputFile.open(outputPath, ios::out | ios::app);
	//outputFile.open(outputPath.c_str());
	outputFile.open(outputPath.c_str(), ios::out | ios::app);
	if (options.verbosity >=5){
		cout << "entering if" << endl;
	}
	//int paramIndex = 0;




	if (outputFile.is_open()){

		outputFile.precision(8);
		outputFile.setf(ios::scientific);


	if(options.fitType == "ga" || options.fitType == "pso" || options.fitType == "de") {


		paramCounter = 0;
		 for (unsigned int i=0; i< options.models.size(); i++ ){//loops through models
	 			if (options.verbosity >=1){

	 				cout<<" Model ["<<i<<"]: " << options.models.at(i)->getName()<<endl<<"              ";
	 			}
			 counter = 0;
		 	 for (auto it1 = options.models.at(i)->freeParams_.begin(); it1 != options.models.at(i)->freeParams_.end(); ++it1){//loop through parameters
		 		if (options.verbosity >=3){
		 		    cout<<" Free Parameter: " << it1->first << endl;
		 		}
		 		    if((find(paramList.begin(), paramList.end(), it1->first)) == paramList.end()){
		 		    	paramList.insert(paramList.end(), it1->first);
		 		    	paramCounter++;

		 		    }
		 		    particleCounter = 0;

		 		    for(auto it2 = subparticleCurrParamSets_.begin(); it2!=subparticleCurrParamSets_.end(); ++it2){//loops through subparticle IDs
		 		    	particleCounter++;
		 		    	//cout << "subparticleCurrParamSets_ first " << it2->first << endl;
		 		      	for(auto it3 = it2->second.begin(); it3 != it2->second.end(); ++it3){//loops through model IDs
		 		      		//cout << "model i " << i << endl;
		 		    		if(it3->first==i){
		 		    			if (options.verbosity >=3){
		 		    				cout << "parameter for index " <<  counter  << " : "  << it3->second[counter] << endl;
		 		    			}
		 		    			alignedResults[it2->first][i][it1->first] = it3->second[counter];
		 		    			// Particle -> Model -> Parameter -> value
		 		    		}
		 		    	}

		 		    }
					counter++; //free param counter
		 	 }
			 cout << endl;
		 }


	}

		 //outputFile << left << setw(16) << "Model" << left << setw(16) << "Particle" << left << setw(16) << "Fit";
 		 //cout << left << setw(16) << "Model" << left << setw(16) << "Particle" << left << setw(16) << "Fit";
		 outputFile << left << setw(16) << "Particle";
		 if (options.verbosity >=1){
			 cout << left << setw(16) << "Particle";
		 }
 		 for(unsigned int i = 0; i < options.models.size(); i++){
 			if (options.verbosity >=1){
 			 cout << "Fit_M";
 			 cout << left << setw(11) << i;
 			}
 			 outputFile << "Fit_M";
 			 outputFile << left << setw(11) <<  i;
 		 }


		 for(unsigned int i = 0; i < paramList.size(); i++){
			 if (options.verbosity >=1){
				 cout << left << setw(16) << paramList[i];
			 }
			 outputFile << left << setw(16) << paramList[i];


		 }
		 if (options.verbosity >=1){
			 cout << endl;
		 }
		 outputFile << endl;

		// int foundModel;

int foundParam;
int pcounter = 0; //index of the particles
int fcounter; //index of the fit results
//Raquel: this will print the output in the correct order, aligned
//Raquel TODO: save this printed output to the output file, and calculate overall fit, merging the fits for each parameter
//int fmid;
int fpid;
//int pmid;
//int psub;



multimap<double, unsigned int> subparticleFitIDMap;

if(options.fitType == "ga" || options.fitType == "pso" || options.fitType == "de") {

	 subparticleFitIDMap = currentsubswarmBestFits_;
	 currentsubswarmBestFits_copy = currentsubswarmBestFits_;
	 if(options.verbosity >= 3){
		 cout << "@@@@@@@@@@@@@@@@@@@@@ FIT SIZE @@@@@@@@@@@@@@@@@" << currentsubswarmBestFits_.size() << endl;
	 }

}

		 for(auto ri1 = alignedResults.begin(); ri1 != alignedResults.end(); ++ri1){//loop through particles


			 for (auto ri2 = ri1->second.begin(); ri2 != ri1->second.end(); ++ri2){//loop through models
				 pcounter++;// Raquel: subparticle id counter

				 //str =
				 //str = ;
				 //cout << "Model_";
				 //cout << left << setw(10) << ri2->first;
		 			if (options.verbosity >=1){

		 				cout << "Particle_";

		 				cout << left << setw(7) << ri1->first;
		 			}

				 outputFile << "Particle_";
				 outputFile << left << setw(7) << ri1->first;

				 //psub = fcalcsubParID(pcounter, pmid, options.models.size());
				 //pmid = fcalcMID(psub,options.models.size());

				 //Raquel: this fcounter will be equal to the subparticle ID
				 fcounter = 0;
				 for (auto fits = subparticleFitIDMap.begin(); fits != subparticleFitIDMap.end(); ++fits){//loops through the fit resuts
					 fcounter++;

					 //fmid = fcalcMID(fcounter,options.models.size());
					 fpid = fcalcParID(fits->second, options.models.size());

					 if(fpid==pcounter){
				 			if (options.verbosity >=1){

				 				cout << left << setw(16) << fits->first;
				 			}
						 outputFile << left << setw(16) << fits->first;

					 }

					 //cout << "fcounter " << fcounter << " pcounter " << pcounter << endl;

				 }


				 for(unsigned int i = 0; i < paramList.size(); i++){
					 foundParam = 0;
					 for(auto ri3 = ri2->second.begin(); ri3 != ri2->second.end(); ++ri3){//loop through parameters

						 if(paramList[i] == ri3->first){
					 			if (options.verbosity >=1){

					 				cout << left << setw(16) << ri3->second;
					 			}
							 outputFile << left << setw(16) << ri3->second;

							 foundParam = 1;
						 }

					 }
					 if(foundParam == 0){
				 			if (options.verbosity >=1){

				 				cout << left << setw(16) << "NA";
				 			}
						 outputFile << left << setw(16) << "NA";

					 }
				 }
		 			if (options.verbosity >=1){

		 				cout << endl;
		 			}
				 outputFile << endl;

				 break;
			 }

		 }


		 if(options.constraintWeight!=0){
	 			if (options.verbosity >=4){

	 				cout << "CONSTRAINT WEIGHT DIFFERENT OF ZERO: " << options.constraintWeight << endl;
	 			}
		 //this variable will store the number of constraints fulfilled per subparticle
		 vector<pair<int,float> > constraintsCount;
		 int mid = 0;
		 constraintsCount = resultChecking();

		 //sort results from the larger number of constraints to the smaller
		 sort(constraintsCount.begin(), constraintsCount.end(), [](const pair<int,float> &left, const pair<int,float> &right){return left.second > right.second;});


		 cout << "SubParID\tConstraints" << endl;
		 int constraintRank=0;
		 int previous=-1;

		 vector<pair<int,float> > subParRankCons;

		 //rank the results based on the number of constraints
		 for (unsigned int i = 0 ; i < constraintsCount.size(); i++){
		     cout << constraintsCount[i].first << " " << constraintsCount[i].second << "\n";
		     if(previous!=constraintsCount[i].second){
		    	 constraintRank++;
		     }
		     subParRankCons.push_back(make_pair(constraintsCount[i].first, constraintRank));
		     previous=constraintsCount[i].second;
		 }

		 cout << "SubParID\tConstraintRank" << endl;

		 for (unsigned int i = 0 ; i < subParRankCons.size(); i++){
		     cout << subParRankCons[i].first << " " << subParRankCons[i].second << "\n";
		 }

		 vector<pair<int,float> > fitCount;

		 fcounter = 0;





		 for (auto itr = subparticleFitIDMap.begin(); itr != subparticleFitIDMap.end(); ++itr){
			 fcounter++;
			 fitCount.push_back(make_pair(itr->second,itr->first));

		 }

		 //sort results from the smaller fit to the larger fit
		 sort(fitCount.begin(), fitCount.end(), [](const pair<int,float> &left, const pair<int,float> &right){return left.second < right.second;});


		 cout << "SubParID\tFit" << endl;
		 int fitRank=0;
		 float previousFit=-1;

		 vector<pair<int,float> > subParRankFit;

		 //rank the results based on the Fit value
		 for (unsigned int i = 0 ; i < fitCount.size(); i++){
		     cout << fitCount[i].first << " " << fitCount[i].second << "\n";
		     if(previousFit!=fitCount[i].second){
		    	 fitRank++;
		     }
		     subParRankFit.push_back(make_pair(fitCount[i].first, fitRank));
		     previousFit=fitCount[i].second;
		 }


		 cout << "SubParID\tFitRank" << endl;

		 for (unsigned int i = 0 ; i < subParRankFit.size(); i++){
		     cout << subParRankFit[i].first << " " << subParRankFit[i].second << "\n";
		 }


		 vector<pair<int,float> > finalScore;
		 float consWeight = options.constraintWeight; //Here it defines how important the consraints will be
		 //put a large consWeight number = the constraint ranks will prevail
		 //put a small consWeight number = the fit ranks will prevail
		 float fitWeight = 1-options.constraintWeight; //Here it defines how important the fits will be

		 float scoreTmp = 0;

		 //this loop will combine both scores based on fit ranks and fulfilled constraints ranks
/*		 for (int i = 0 ; i < subParRankCons.size(); i++){


			 for (int j = 0 ; j < subParRankFit.size(); j++){



				 if(subParRankCons[i].first == subParRankFit[j].first){
					 //Here it defines how important the cnsraints will be
					 scoreTmp = ((subParRankCons[i].second*consWeight) + (subParRankFit[j].second * fitWeight));
					 finalScore.push_back(make_pair(subParRankCons[i].first, scoreTmp));

				 }else{
					 //if the model that we are looking at belongs to the wild type
					 mid = fcalcMID(subParRankFit[j].first,options.models.size());

					 //if(mid == 0 && (subParRankCons[i].first-1) == subParRankFit[j].first){
					 if( find(subParRankCons.begin(), subParRankCons.end(), subParRankFit[j].first) == subParRankCons.end() ){
						 //cout << "mid=0 subParRankFit[j].first= " << subParRankFit[j].first << endl;
						 cout << " subpar subParRankFit[j].first " << subParRankFit[j].first << " mid " << mid << endl;
						 scoreTmp = subParRankFit[j].second*fitWeight;
						 finalScore.push_back(make_pair(subParRankFit[j].first, scoreTmp));
					 }

				 }

			 }


		 }
*/
		 int found;

		 for (unsigned int i = 0 ; i < subParRankFit.size(); i++){

			 found = 0;
			 for (unsigned int j = 0 ; j < subParRankCons.size(); j++){

				 if(subParRankCons[j].first == subParRankFit[i].first){
					 //Here it defines how important the cnsraints will be
					 scoreTmp = ((subParRankCons[j].second*consWeight) + (subParRankFit[i].second * fitWeight));
					 finalScore.push_back(make_pair(subParRankCons[j].first, scoreTmp));

					 found = 1;

				 }

			 }
			 //if the subparticle is not in the list of constraints, keep the original rank
			 if(found==0){

				 scoreTmp = subParRankFit[i].second;
				 //scoreTmp = subParRankFit[j].second*fitWeight;
				 finalScore.push_back(make_pair(subParRankFit[i].first, scoreTmp));


			 }



		 }

		 //sort results from the smaller fit to the larger fit
		 sort(finalScore.begin(), finalScore.end(), [](const pair<int,float> &left, const pair<int,float> &right){return left.second < right.second;});


		 cout << "SubParID\tFinal_Rank_Score" << endl;
		 fitRank=0;
		 previousFit=-1;

		 //vector<pair<int,float> > subParRankFinal;
		 subParRankFinal.clear();
		 //rank the results based on the Fit value
		 for (unsigned int i = 0 ; i < finalScore.size(); i++){
		     cout << finalScore[i].first << " " << finalScore[i].second << "\n";
		     if(previousFit!=finalScore[i].second){
		    	 fitRank++;
		     }
		     subParRankFinal.push_back(make_pair(finalScore[i].first, fitRank));
		     previousFit=finalScore[i].second;
		 }

		 cout << "SubParID\tFinal_Rank" << endl;

		 for (unsigned int i = 0 ; i < subParRankFinal.size(); i++){
		     cout << subParRankFinal[i].first << " " << subParRankFinal[i].second << "\n";
		 }



		 //Print the reranked results

		 string outdir = options.outputDir + "/" + options.jobName + "/" + toString(currentGeneration-1) + "/";

		 string outname = outdir + "Ranked_results.txt";


		 ofstream outFile;

		 outFile.open(outname);

		 cout << "Particle\tModel\tFit_Rank\tConstraint_Rank\tFinal_Rank\tConstraints" << endl;
		 outFile << "Particle\tModel\tFit_Rank\tConstraint_Rank\tFinal_Rank\tConstraints" << endl;

		 //int maxPar = fcalcParID(subparticleFitIDMap.size(), options.models.size());

		 //int mid;
		 int pid;

		 for (unsigned int i = 0 ; i < subParRankFinal.size(); i++){

			 mid = fcalcMID(subParRankFinal[i].first,options.models.size());
			 pid = fcalcParID(subParRankFinal[i].first, options.models.size());

			 for (unsigned int j = 0 ; j < subParRankFit.size(); j++){


				 found = 0;
				 for (unsigned int k = 0 ; k < subParRankCons.size(); k++){

					 if(subParRankFinal[i].first==subParRankFit[j].first && subParRankFinal[i].first==subParRankCons[k].first){

						 for(unsigned int r=0; r < constraintsCount.size(); r++){

							 if(subParRankFinal[i].first ==  constraintsCount[r].first ){


								 cout << pid << "\t" << mid << "\t" << subParRankFit[j].second << "\t" << subParRankCons[k].second << "\t" << subParRankFinal[i].second << "\t" <<constraintsCount[r].second <<  endl;
								 outFile << pid << "\t" << mid << "\t" << subParRankFit[j].second << "\t" << subParRankCons[k].second << "\t" << subParRankFinal[i].second << "\t" << constraintsCount[r].second << endl;

								 found = 1;


							 }


						 }

					 }

				 }


				 if(found==0 && subParRankFinal[i].first==subParRankFit[j].first){

					 cout << pid << "\t" << mid << "\t" << subParRankFit[j].second << "\t" << "-" << "\t" << subParRankFinal[i].second << "\t-" << endl;
					 outFile << pid << "\t" << mid << "\t" << subParRankFit[j].second << "\t" << "-" << "\t" << subParRankFinal[i].second << "\t-" << endl;


				 }


			 }



		 }

		 }
		 /*
		 //rank results
		 int maxPar = fcalcParID(allGenFits.size(), options.models.size());


		 vector<pair<int,float> > sortedFits;
		 for (auto itr = allGenFits.begin(); itr != allGenFits.end(); ++itr){
			 sortedFits.push_back(*itr);
		 }


		 sort (sortedFits.begin(),sortedFits.end());
		 cout << "sorted result" << endl;
		 for (int i = 0 ; i < sortedFits.size(); i++){
		     cout << sortedFits[i].first << " " << sortedFits[i].second << "\n";
		 }

		 for(int i=1; i <= maxPar; i++ ){

			 fcounter = 0;
			 for (auto fits = allGenFits.begin(); fits != allGenFits.end(); ++fits){//loops through the fit resuts
				 fcounter++;

				 fmid = fcalcMID(fcounter,options.models.size());
				 fpid = fcalcParID(fcounter, options.models.size());

				 if(i==fmid){
					 cout << left << setw(16) << fits->first;
					 outputFile << left << setw(16) << fits->first;

				 }

				 //cout << "fcounter " << fcounter << " pcounter " << pcounter << endl;

			 }


		 }
		*/

//Raquel: here ends the block of code to fix the alignment problem with the parameter values

		outputFile.close();
	}
	else {
		cout << "Warning: couldn't open: " << outputPath << " to write fit summary." << endl;
	}



}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe80, %rsp            # imm = 0xE80
movq %rsi, -0x880(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x878(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x448b0
leaq -0x58(%rbp), %rdi
callq 0x2f880
leaq -0x88(%rbp), %rdi
callq 0x125130
movq -0x878(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x1055e9
movq 0x1cf9c6(%rip), %rdi    # 0x2d4f50
leaq 0xdec02(%rip), %rsi     # 0x1e4193
callq 0x2ff50
movq %rax, -0x888(%rbp)
jmp 0x10559f
movq -0x880(%rbp), %rsi
movq -0x888(%rbp), %rdi
callq 0x2f780
movq %rax, -0x890(%rbp)
jmp 0x1055bb
movq -0x890(%rbp), %rdi
movq 0x1cf9ff(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1055d0
jmp 0x1055e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1085af
leaq -0x298(%rbp), %rdi
callq 0x2f5a0
jmp 0x1055f7
movq -0x878(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x105651
movq 0x1cf942(%rip), %rdi    # 0x2d4f50
leaq 0xdebac(%rip), %rsi     # 0x1e41c1
callq 0x2ff50
movq %rax, -0x898(%rbp)
jmp 0x105623
movq -0x898(%rbp), %rdi
movq 0x1cf997(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x105638
jmp 0x105651
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1085a3
movq -0x880(%rbp), %rdi
callq 0x2f290
movq %rax, -0x8a8(%rbp)
movl $0x10, %edi
movl $0x1, %esi
callq 0x122610
movl %eax, -0x89c(%rbp)
jmp 0x10567b
movl -0x89c(%rbp), %edx
movq -0x8a8(%rbp), %rsi
leaq -0x298(%rbp), %rdi
callq 0x30ca0
jmp 0x105696
movq -0x878(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x1056d9
movq 0x1cf8a3(%rip), %rdi    # 0x2d4f50
leaq 0xdeb21(%rip), %rsi     # 0x1e41d5
callq 0x2ff50
movq %rax, -0x8b0(%rbp)
jmp 0x1056c2
movq -0x8b0(%rbp), %rdi
movq 0x1cf8f8(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1056d7
jmp 0x1056d9
leaq -0x298(%rbp), %rdi
callq 0x30530
movb %al, -0x8b1(%rbp)
jmp 0x1056ed
movb -0x8b1(%rbp), %al
testb $0x1, %al
jne 0x1056fc
jmp 0x108505
movq -0x298(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x298(%rbp,%rax), %rdi
movl $0x8, %esi
callq 0x125150
jmp 0x10571b
movq -0x298(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x298(%rbp,%rax), %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x125180
jmp 0x10573a
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xcec8f(%rip), %rsi     # 0x1d43de
callq 0x44930
movb %al, -0x8b2(%rbp)
jmp 0x10575c
movb -0x8b2(%rbp), %al
testb $0x1, %al
jne 0x1057c7
jmp 0x105768
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xdc2c5(%rip), %rsi     # 0x1e1a42
callq 0x44930
movb %al, -0x8b3(%rbp)
jmp 0x10578a
movb -0x8b3(%rbp), %al
testb $0x1, %al
jne 0x1057c7
jmp 0x105796
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0x10bd50(%rip), %rsi    # 0x2114fb
callq 0x44930
movb %al, -0x8b4(%rbp)
jmp 0x1057b8
movb -0x8b4(%rbp), %al
testb $0x1, %al
jne 0x1057c7
jmp 0x105dc1
movl $0x0, -0x34(%rbp)
movl $0x0, -0x29c(%rbp)
movq -0x878(%rbp), %rdi
movl -0x29c(%rbp), %eax
movq %rax, -0x8c0(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movq %rax, %rcx
movq -0x8c0(%rbp), %rax
cmpq %rcx, %rax
jae 0x105dbf
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x105933
movq 0x1cf723(%rip), %rdi    # 0x2d4f50
leaq 0xde885(%rip), %rsi     # 0x1e40b9
callq 0x2ff50
movq %rax, -0x8c8(%rbp)
jmp 0x105842
movq -0x8c8(%rbp), %rdi
movl -0x29c(%rbp), %esi
callq 0x30640
movq %rax, -0x8d0(%rbp)
jmp 0x10585d
movq -0x8d0(%rbp), %rdi
leaq 0x10016c(%rip), %rsi    # 0x2059d7
callq 0x2ff50
movq %rax, -0x8d8(%rbp)
jmp 0x105879
movq -0x878(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x29c(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0x8e0(%rbp)
jmp 0x10589d
movq -0x8e0(%rbp), %rax
movq (%rax), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x8e140
jmp 0x1058b5
movq -0x8d8(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x2f780
movq %rax, -0x8e8(%rbp)
jmp 0x1058d1
movq -0x8e8(%rbp), %rdi
movq 0x1cf6e9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq %rax, -0x8f0(%rbp)
jmp 0x1058ed
movq -0x8f0(%rbp), %rdi
leaq 0xde7c7(%rip), %rsi     # 0x1e40c2
callq 0x2ff50
jmp 0x105902
leaq -0x2c0(%rbp), %rdi
callq 0x311e8
jmp 0x105933
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x311e8
jmp 0x1085a3
movq -0x878(%rbp), %rdi
movl $0x0, -0x14(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x29c(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0x8f8(%rbp)
jmp 0x10595e
movq -0x8f8(%rbp), %rax
movq (%rax), %rdi
addq $0x30, %rdi
callq 0x44c70
movq %rax, -0x2c8(%rbp)
movq -0x878(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x29c(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0x900(%rbp)
jmp 0x10599c
movq -0x900(%rbp), %rax
movq (%rax), %rdi
addq $0x30, %rdi
callq 0x44cd0
movq %rax, -0x2d0(%rbp)
leaq -0x2c8(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x44ca0
testb $0x1, %al
jne 0x1059d2
jmp 0x105d94
movq -0x878(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x105a39
movq 0x1cf567(%rip), %rdi    # 0x2d4f50
leaq 0xde684(%rip), %rsi     # 0x1e4074
callq 0x2ff50
movq %rax, -0x908(%rbp)
jmp 0x1059fe
leaq -0x2c8(%rbp), %rdi
callq 0x44d00
movq -0x908(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, -0x910(%rbp)
jmp 0x105a22
movq -0x910(%rbp), %rdi
movq 0x1cf598(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x105a37
jmp 0x105a39
leaq -0x30(%rbp), %rdi
movq %rdi, -0x920(%rbp)
callq 0x458f0
movq -0x920(%rbp), %rdi
movq %rax, -0x2e0(%rbp)
callq 0x45920
movq %rax, -0x2e8(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x44d00
movq %rax, %rdx
movq -0x2e0(%rbp), %rdi
movq -0x2e8(%rbp), %rsi
callq 0x458a0
movq %rax, -0x918(%rbp)
jmp 0x105a8e
movq -0x918(%rbp), %rax
movq %rax, -0x2d8(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x45920
movq %rax, -0x2f0(%rbp)
leaq -0x2d8(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x1251b0
testb $0x1, %al
jne 0x105ac5
jmp 0x105b31
leaq -0x30(%rbp), %rdi
movq %rdi, -0x930(%rbp)
callq 0x45920
movq %rax, -0x300(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0xe7340
leaq -0x2c8(%rbp), %rdi
callq 0x44d00
movq -0x930(%rbp), %rdi
movq %rax, %rdx
movq -0x2f8(%rbp), %rsi
callq 0x1251f0
movq %rax, -0x928(%rbp)
jmp 0x105b1a
movq -0x928(%rbp), %rax
movq %rax, -0x308(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
movq -0x878(%rbp), %rdi
movl $0x0, -0x18(%rbp)
addq $0x1460, %rdi           # imm = 0x1460
callq 0x125400
movq %rax, -0x310(%rbp)
movq -0x878(%rbp), %rdi
addq $0x1460, %rdi           # imm = 0x1460
callq 0xdd9c0
movq %rax, -0x318(%rbp)
leaq -0x310(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x125430
testb $0x1, %al
jne 0x105b88
jmp 0x105d7a
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x125460
movq %rax, %rdi
addq $0x8, %rdi
callq 0x124ea0
movq %rax, -0x320(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x125460
movq %rax, %rdi
addq $0x8, %rdi
callq 0xdef70
movq %rax, -0x328(%rbp)
leaq -0x320(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x124ed0
testb $0x1, %al
jne 0x105beb
jmp 0x105d67
leaq -0x320(%rbp), %rdi
callq 0x124f00
movl (%rax), %eax
cmpl -0x29c(%rbp), %eax
jne 0x105d54
movq -0x878(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x105cb5
movq 0x1cf330(%rip), %rdi    # 0x2d4f50
leaq 0xde5ba(%rip), %rsi     # 0x1e41e1
callq 0x2ff50
movq %rax, -0x938(%rbp)
jmp 0x105c35
movq -0x938(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x2f800
movq %rax, -0x940(%rbp)
jmp 0x105c4d
movq -0x940(%rbp), %rdi
leaq 0xce355(%rip), %rsi     # 0x1d3fb0
callq 0x2ff50
movq %rax, -0x948(%rbp)
jmp 0x105c69
leaq -0x320(%rbp), %rdi
callq 0x124f00
movq %rax, %rdi
addq $0x8, %rdi
movslq -0x14(%rbp), %rsi
callq 0xb2610
movq -0x948(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0x950(%rbp)
jmp 0x105c9e
movq -0x950(%rbp), %rdi
movq 0x1cf31c(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x105cb3
jmp 0x105cb5
leaq -0x320(%rbp), %rdi
callq 0x124f00
movq %rax, %rdi
addq $0x8, %rdi
movslq -0x14(%rbp), %rsi
callq 0xb2610
movsd (%rax), %xmm0
movsd %xmm0, -0x960(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x125460
movq %rax, %rsi
leaq -0x88(%rbp), %rdi
callq 0x125480
movq %rax, -0x958(%rbp)
jmp 0x105d01
movq -0x958(%rbp), %rdi
leaq -0x29c(%rbp), %rsi
callq 0x125560
movq %rax, -0x968(%rbp)
jmp 0x105d1d
leaq -0x2c8(%rbp), %rdi
callq 0x44d00
movq -0x968(%rbp), %rdi
movq %rax, %rsi
callq 0x8e3e0
movq %rax, -0x970(%rbp)
jmp 0x105d41
movq -0x970(%rbp), %rax
movsd -0x960(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x105d56
leaq -0x320(%rbp), %rdi
callq 0xdfc00
jmp 0x105bb0
jmp 0x105d69
leaq -0x310(%rbp), %rdi
callq 0xde9c0
jmp 0x105b52
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x44d20
jmp 0x105978
movq 0x1cf1b5(%rip), %rdi    # 0x2d4f50
movq 0x1cf226(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x105da9
jmp 0x105dab
movl -0x29c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x29c(%rbp)
jmp 0x1057d8
jmp 0x105dc1
leaq 0x1f878(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0x978(%rbp)
jmp 0x105ddd
movl $0x10, %edi
callq 0x125670
movl %eax, -0x97c(%rbp)
jmp 0x105def
movq -0x978(%rbp), %rdi
movl -0x97c(%rbp), %eax
movl %eax, -0x32c(%rbp)
movl -0x32c(%rbp), %esi
callq 0x2fd50
movq %rax, -0x988(%rbp)
jmp 0x105e16
movq -0x988(%rbp), %rdi
leaq 0xdcacf(%rip), %rsi     # 0x1e28f3
callq 0x2ff50
jmp 0x105e2b
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x105ea7
movq 0x1cf10e(%rip), %rdi    # 0x2d4f50
leaq 0x1f7f7(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x990(%rbp)
jmp 0x105e57
movl $0x10, %edi
callq 0x125670
movl %eax, -0x994(%rbp)
jmp 0x105e69
movq -0x990(%rbp), %rdi
movl -0x994(%rbp), %eax
movl %eax, -0x330(%rbp)
movl -0x330(%rbp), %esi
callq 0x2fd50
movq %rax, -0x9a0(%rbp)
jmp 0x105e90
movq -0x9a0(%rbp), %rdi
leaq 0xdca55(%rip), %rsi     # 0x1e28f3
callq 0x2ff50
jmp 0x105ea5
jmp 0x105ea7
movl $0x0, -0x334(%rbp)
movq -0x878(%rbp), %rdi
movl -0x334(%rbp), %eax
movq %rax, -0x9a8(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movq %rax, %rcx
movq -0x9a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x106013
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x105f7f
movq 0x1cf04a(%rip), %rdi    # 0x2d4f50
leaq 0xde2e9(%rip), %rsi     # 0x1e41f6
callq 0x2ff50
jmp 0x105f14
movq 0x1cf035(%rip), %rdi    # 0x2d4f50
leaq 0x1f71e(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x9b0(%rbp)
jmp 0x105f30
movl $0xb, %edi
callq 0x125670
movl %eax, -0x9b4(%rbp)
jmp 0x105f42
movq -0x9b0(%rbp), %rdi
movl -0x9b4(%rbp), %eax
movl %eax, -0x338(%rbp)
movl -0x338(%rbp), %esi
callq 0x2fd50
movq %rax, -0x9c0(%rbp)
jmp 0x105f69
movq -0x9c0(%rbp), %rdi
movl -0x334(%rbp), %esi
callq 0x30640
jmp 0x105f7d
jmp 0x105f7f
leaq 0xde270(%rip), %rsi     # 0x1e41f6
leaq -0x298(%rbp), %rdi
callq 0x2ff50
jmp 0x105f94
leaq 0x1f6a5(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0x9c8(%rbp)
jmp 0x105fb0
movl $0xb, %edi
callq 0x125670
movl %eax, -0x9cc(%rbp)
jmp 0x105fc2
movq -0x9c8(%rbp), %rdi
movl -0x9cc(%rbp), %eax
movl %eax, -0x33c(%rbp)
movl -0x33c(%rbp), %esi
callq 0x2fd50
movq %rax, -0x9d8(%rbp)
jmp 0x105fe9
movq -0x9d8(%rbp), %rdi
movl -0x334(%rbp), %esi
callq 0x30640
jmp 0x105ffd
jmp 0x105fff
movl -0x334(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x334(%rbp)
jmp 0x105eb1
movl $0x0, -0x340(%rbp)
movl -0x340(%rbp), %eax
movq %rax, -0x9e0(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x44960
movq %rax, %rcx
movq -0x9e0(%rbp), %rax
cmpq %rcx, %rax
jae 0x10615c
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x1060cf
movq 0x1ceef3(%rip), %rdi    # 0x2d4f50
leaq 0x1f5dc(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0x9e8(%rbp)
jmp 0x106072
movl $0x10, %edi
callq 0x125670
movl %eax, -0x9ec(%rbp)
jmp 0x106084
movq -0x9e8(%rbp), %rdi
movl -0x9ec(%rbp), %eax
movl %eax, -0x344(%rbp)
movl -0x344(%rbp), %esi
callq 0x2fd50
movq %rax, -0x9f8(%rbp)
jmp 0x1060ab
movl -0x340(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x449e0
movq -0x9f8(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
jmp 0x1060cd
jmp 0x1060cf
leaq 0x1f56a(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0xa00(%rbp)
jmp 0x1060eb
movl $0x10, %edi
callq 0x125670
movl %eax, -0xa04(%rbp)
jmp 0x1060fd
movq -0xa00(%rbp), %rdi
movl -0xa04(%rbp), %eax
movl %eax, -0x348(%rbp)
movl -0x348(%rbp), %esi
callq 0x2fd50
movq %rax, -0xa10(%rbp)
jmp 0x106124
movl -0x340(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x449e0
movq -0xa10(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
jmp 0x106146
jmp 0x106148
movl -0x340(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x340(%rbp)
jmp 0x10601d
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x106183
movq 0x1ceddd(%rip), %rdi    # 0x2d4f50
movq 0x1cee4e(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x106181
jmp 0x106183
movq 0x1cee3e(%rip), %rsi    # 0x2d4fc8
leaq -0x298(%rbp), %rdi
callq 0x30c10
jmp 0x106198
movl $0x0, -0x350(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x120e70
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xce21b(%rip), %rsi     # 0x1d43de
callq 0x44930
movb %al, -0xa11(%rbp)
jmp 0x1061d0
movb -0xa11(%rbp), %al
testb $0x1, %al
jne 0x10623b
jmp 0x1061dc
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xdb851(%rip), %rsi     # 0x1e1a42
callq 0x44930
movb %al, -0xa12(%rbp)
jmp 0x1061fe
movb -0xa12(%rbp), %al
testb $0x1, %al
jne 0x10623b
jmp 0x10620a
movq -0x878(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0x10b2dc(%rip), %rsi    # 0x2114fb
callq 0x44930
movb %al, -0xa13(%rbp)
jmp 0x10622c
movb -0xa13(%rbp), %al
testb $0x1, %al
jne 0x10623b
jmp 0x1062fd
movq -0x878(%rbp), %rsi
addq $0x1c30, %rsi           # imm = 0x1C30
leaq -0x388(%rbp), %rdi
callq 0x125690
jmp 0x106257
movq -0x878(%rbp), %rdi
movq %rdi, %rsi
addq $0x1c30, %rsi           # imm = 0x1C30
addq $0x1c60, %rdi           # imm = 0x1C60
callq 0x125690
jmp 0x106276
movq -0x878(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x1062fb
movq 0x1cecc3(%rip), %rdi    # 0x2d4f50
leaq 0xddf68(%rip), %rsi     # 0x1e41fc
callq 0x2ff50
movq %rax, -0xa20(%rbp)
jmp 0x1062a2
movq -0x878(%rbp), %rdi
addq $0x1c30, %rdi           # imm = 0x1C30
callq 0x122680
movq -0xa20(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0xa28(%rbp)
jmp 0x1062cd
movq -0xa28(%rbp), %rdi
movq 0x1ceced(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1062e2
jmp 0x1062fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1084f4
jmp 0x1062fd
leaq -0x88(%rbp), %rdi
callq 0x1256c0
movq %rax, -0x390(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x125720
movq %rax, -0x398(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x1256f0
testb $0x1, %al
jne 0x10633f
jmp 0x1069d2
leaq -0x390(%rbp), %rdi
callq 0x125750
movq %rax, %rdi
addq $0x8, %rdi
callq 0x125770
movq %rax, -0x3a0(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x125750
movq %rax, %rdi
addq $0x8, %rdi
callq 0x1257d0
movq %rax, -0x3a8(%rbp)
leaq -0x3a0(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0x1257a0
testb $0x1, %al
jne 0x106399
jmp 0x1069bf
movq -0x878(%rbp), %rax
movl -0x350(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x350(%rbp)
cmpl $0x1, 0x1614(%rax)
jb 0x106444
movq 0x1ceb8d(%rip), %rdi    # 0x2d4f50
leaq 0xdde63(%rip), %rsi     # 0x1e422d
callq 0x2ff50
jmp 0x1063d1
movq 0x1ceb78(%rip), %rdi    # 0x2d4f50
leaq 0x1f261(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xa30(%rbp)
jmp 0x1063ed
movl $0x7, %edi
callq 0x125670
movl %eax, -0xa34(%rbp)
jmp 0x1063ff
movq -0xa30(%rbp), %rdi
movl -0xa34(%rbp), %eax
movl %eax, -0x3ac(%rbp)
movl -0x3ac(%rbp), %esi
callq 0x2fd50
movq %rax, -0xa40(%rbp)
jmp 0x106426
leaq -0x390(%rbp), %rdi
callq 0x125750
movq -0xa40(%rbp), %rdi
movl (%rax), %esi
callq 0x30640
jmp 0x106442
jmp 0x106444
leaq 0xddde2(%rip), %rsi     # 0x1e422d
leaq -0x298(%rbp), %rdi
callq 0x2ff50
jmp 0x106459
leaq 0x1f1e0(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0xa48(%rbp)
jmp 0x106475
movl $0x7, %edi
callq 0x125670
movl %eax, -0xa4c(%rbp)
jmp 0x106487
movq -0xa48(%rbp), %rdi
movl -0xa4c(%rbp), %eax
movl %eax, -0x3b0(%rbp)
movl -0x3b0(%rbp), %esi
callq 0x2fd50
movq %rax, -0xa58(%rbp)
jmp 0x1064ae
leaq -0x390(%rbp), %rdi
callq 0x125750
movq -0xa58(%rbp), %rdi
movl (%rax), %esi
callq 0x30640
jmp 0x1064ca
movl $0x0, -0x354(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x122630
movq %rax, -0x3b8(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x1231a0
movq %rax, -0x3c0(%rbp)
leaq -0x3b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x1231d0
testb $0x1, %al
jne 0x106516
jmp 0x10668c
movl -0x354(%rbp), %eax
incl %eax
movl %eax, -0x354(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x122660
movq -0x878(%rbp), %rdi
movl 0x8(%rax), %eax
movl %eax, -0xa60(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0xa60(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movl %eax, -0xa5c(%rbp)
jmp 0x106561
movl -0xa5c(%rbp), %eax
movl %eax, -0x358(%rbp)
movl -0x358(%rbp), %eax
cmpl -0x350(%rbp), %eax
jne 0x106679
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x106604
movq 0x1ce9ba(%rip), %rdi    # 0x2d4f50
leaq 0x1f0a3(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xa68(%rbp)
jmp 0x1065ab
movl $0x10, %edi
callq 0x125670
movl %eax, -0xa6c(%rbp)
jmp 0x1065bd
movq -0xa68(%rbp), %rdi
movl -0xa6c(%rbp), %eax
movl %eax, -0x3c4(%rbp)
movl -0x3c4(%rbp), %esi
callq 0x2fd50
movq %rax, -0xa78(%rbp)
jmp 0x1065e4
leaq -0x3b8(%rbp), %rdi
callq 0x122660
movq -0xa78(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x30710
jmp 0x106602
jmp 0x106604
leaq 0x1f035(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0xa80(%rbp)
jmp 0x106620
movl $0x10, %edi
callq 0x125670
movl %eax, -0xa84(%rbp)
jmp 0x106632
movq -0xa80(%rbp), %rdi
movl -0xa84(%rbp), %eax
movl %eax, -0x3c8(%rbp)
movl -0x3c8(%rbp), %esi
callq 0x2fd50
movq %rax, -0xa90(%rbp)
jmp 0x106659
leaq -0x3b8(%rbp), %rdi
callq 0x122660
movq -0xa90(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x30710
jmp 0x106677
jmp 0x106679
jmp 0x10667b
leaq -0x3b8(%rbp), %rdi
callq 0xcbd20
jmp 0x1064e7
movl $0x0, -0x3cc(%rbp)
movl -0x3cc(%rbp), %eax
movq %rax, -0xa98(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x44960
movq %rax, %rcx
movq -0xa98(%rbp), %rax
cmpq %rcx, %rax
jae 0x106981
movl $0x0, -0x34c(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x125800
movq %rax, %rdi
addq $0x8, %rdi
callq 0x9c670
movq %rax, -0x3d8(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0x125800
movq %rax, %rdi
addq $0x8, %rdi
callq 0x966d0
movq %rax, -0x3e0(%rbp)
leaq -0x3d8(%rbp), %rdi
leaq -0x3e0(%rbp), %rsi
callq 0x9c6a0
testb $0x1, %al
jne 0x106723
jmp 0x106876
movl -0x3cc(%rbp), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x449e0
movq %rax, -0xaa0(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x9c7b0
movq -0xaa0(%rbp), %rdi
movq %rax, %rsi
callq 0x69890
testb $0x1, %al
jne 0x10675f
jmp 0x106863
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x1067e5
movq 0x1ce7da(%rip), %rdi    # 0x2d4f50
leaq 0x1eec3(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xaa8(%rbp)
jmp 0x10678b
movl $0x10, %edi
callq 0x125670
movl %eax, -0xaac(%rbp)
jmp 0x10679d
movq -0xaa8(%rbp), %rdi
movl -0xaac(%rbp), %eax
movl %eax, -0x3e4(%rbp)
movl -0x3e4(%rbp), %esi
callq 0x2fd50
movq %rax, -0xab8(%rbp)
jmp 0x1067c4
leaq -0x3d8(%rbp), %rdi
callq 0x9c7b0
movq -0xab8(%rbp), %rdi
movsd 0x20(%rax), %xmm0
callq 0x30710
jmp 0x1067e3
jmp 0x1067e5
leaq 0x1ee54(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0xac0(%rbp)
jmp 0x106801
movl $0x10, %edi
callq 0x125670
movl %eax, -0xac4(%rbp)
jmp 0x106813
movq -0xac0(%rbp), %rdi
movl -0xac4(%rbp), %eax
movl %eax, -0x3e8(%rbp)
movl -0x3e8(%rbp), %esi
callq 0x2fd50
movq %rax, -0xad0(%rbp)
jmp 0x10683a
leaq -0x3d8(%rbp), %rdi
callq 0x9c7b0
movq -0xad0(%rbp), %rdi
movsd 0x20(%rax), %xmm0
callq 0x30710
jmp 0x106859
movl $0x1, -0x34c(%rbp)
jmp 0x106865
leaq -0x3d8(%rbp), %rdi
callq 0x97360
jmp 0x1066e8
cmpl $0x0, -0x34c(%rbp)
jne 0x10696b
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x1068ff
movq 0x1ce6b6(%rip), %rdi    # 0x2d4f50
leaq 0x1ed9f(%rip), %rsi     # 0x125640
callq 0x31140
movq %rax, -0xad8(%rbp)
jmp 0x1068af
movl $0x10, %edi
callq 0x125670
movl %eax, -0xadc(%rbp)
jmp 0x1068c1
movq -0xad8(%rbp), %rdi
movl -0xadc(%rbp), %eax
movl %eax, -0x3ec(%rbp)
movl -0x3ec(%rbp), %esi
callq 0x2fd50
movq %rax, -0xae8(%rbp)
jmp 0x1068e8
movq -0xae8(%rbp), %rdi
leaq 0xdd941(%rip), %rsi     # 0x1e4237
callq 0x2ff50
jmp 0x1068fd
jmp 0x1068ff
leaq 0x1ed3a(%rip), %rsi     # 0x125640
leaq -0x298(%rbp), %rdi
callq 0x31140
movq %rax, -0xaf0(%rbp)
jmp 0x10691b
movl $0x10, %edi
callq 0x125670
movl %eax, -0xaf4(%rbp)
jmp 0x10692d
movq -0xaf0(%rbp), %rdi
movl -0xaf4(%rbp), %eax
movl %eax, -0x3f0(%rbp)
movl -0x3f0(%rbp), %esi
callq 0x2fd50
movq %rax, -0xb00(%rbp)
jmp 0x106954
movq -0xb00(%rbp), %rdi
leaq 0xdd8d5(%rip), %rsi     # 0x1e4237
callq 0x2ff50
jmp 0x106969
jmp 0x10696b
jmp 0x10696d
movl -0x3cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3cc(%rbp)
jmp 0x106696
movq -0x878(%rbp), %rax
cmpl $0x1, 0x1614(%rax)
jb 0x1069a8
movq 0x1ce5b8(%rip), %rdi    # 0x2d4f50
movq 0x1ce629(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1069a6
jmp 0x1069a8
movq 0x1ce619(%rip), %rsi    # 0x2d4fc8
leaq -0x298(%rbp), %rdi
callq 0x30c10
jmp 0x1069bd
jmp 0x1069bf
jmp 0x1069c1
leaq -0x390(%rbp), %rdi
callq 0x125850
jmp 0x106310
movq -0x878(%rbp), %rax
movss 0x1610(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x1069f0
jp 0x1069f0
jmp 0x1084d8
movq -0x878(%rbp), %rax
cmpl $0x4, 0x1614(%rax)
jb 0x106a57
movq 0x1ce549(%rip), %rdi    # 0x2d4f50
leaq 0xdd82c(%rip), %rsi     # 0x1e423a
callq 0x2ff50
movq %rax, -0xb08(%rbp)
jmp 0x106a1c
movq -0xb08(%rbp), %rdi
movq -0x878(%rbp), %rax
movss 0x1610(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xb10(%rbp)
jmp 0x106a40
movq -0xb10(%rbp), %rdi
movq 0x1ce57a(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x106a55
jmp 0x106a57
leaq -0x408(%rbp), %rdi
callq 0x120db0
movq -0x878(%rbp), %rsi
movl $0x0, -0x40c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x11ca10
jmp 0x106a82
leaq -0x408(%rbp), %rdi
movq %rdi, -0xb18(%rbp)
leaq -0x428(%rbp), %rsi
movq %rsi, -0xb20(%rbp)
callq 0x125880
movq -0xb20(%rbp), %rdi
callq 0x121190
movq -0xb18(%rbp), %rdi
callq 0x123d20
movq -0xb18(%rbp), %rdi
movq %rax, -0x430(%rbp)
callq 0x123d90
movq %rax, -0x438(%rbp)
movq -0x430(%rbp), %rdi
movq -0x438(%rbp), %rsi
callq 0x11dcc0
jmp 0x106aea
movq 0x1ce45f(%rip), %rdi    # 0x2d4f50
leaq 0xdd768(%rip), %rsi     # 0x1e4260
callq 0x2ff50
movq %rax, -0xb28(%rbp)
jmp 0x106b06
movq -0xb28(%rbp), %rdi
movq 0x1ce4b4(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x106b1b
movl $0x0, -0x440(%rbp)
movl $0xffffffff, -0x444(%rbp) # imm = 0xFFFFFFFF
leaq -0x460(%rbp), %rdi
callq 0x120db0
movl $0x0, -0x464(%rbp)
movl -0x464(%rbp), %eax
movq %rax, -0xb30(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xb30(%rbp), %rax
cmpq %rcx, %rax
jae 0x106d07
movl -0x464(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movl (%rax), %esi
movq 0x1ce3c2(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xb38(%rbp)
jmp 0x106b9c
movq -0xb38(%rbp), %rdi
leaq 0xdd525(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xb40(%rbp)
jmp 0x106bb8
movl -0x464(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movq -0xb40(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xb48(%rbp)
jmp 0x106be6
movq -0xb48(%rbp), %rdi
leaq 0xd47bb(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x106bfb
cvtsi2ssl -0x444(%rbp), %xmm0
movss %xmm0, -0xb4c(%rbp)
movl -0x464(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movss -0xb4c(%rbp), %xmm0
ucomiss 0x4(%rax), %xmm0
jne 0x106c31
jp 0x106c31
jmp 0x106c70
movl -0x440(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x440(%rbp)
jmp 0x106c70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1084ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1084be
movl -0x464(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movq %rax, %rdi
leaq -0x440(%rbp), %rsi
callq 0x125900
movq %rax, -0xb58(%rbp)
jmp 0x106c9c
movq -0xb58(%rbp), %rax
movq %rax, -0x474(%rbp)
leaq -0x46c(%rbp), %rdi
leaq -0x474(%rbp), %rsi
callq 0x125930
jmp 0x106cbf
leaq -0x460(%rbp), %rdi
leaq -0x46c(%rbp), %rsi
callq 0x1258d0
jmp 0x106cd4
movl -0x464(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
cvttss2si 0x4(%rax), %eax
movl %eax, -0x444(%rbp)
movl -0x464(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x464(%rbp)
jmp 0x106b45
movq 0x1ce242(%rip), %rdi    # 0x2d4f50
leaq 0xdd560(%rip), %rsi     # 0x1e4275
callq 0x2ff50
movq %rax, -0xb60(%rbp)
jmp 0x106d23
movq -0xb60(%rbp), %rdi
movq 0x1ce297(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x106d38
movl $0x0, -0x478(%rbp)
movl -0x478(%rbp), %eax
movq %rax, -0xb68(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xb68(%rbp), %rax
cmpq %rcx, %rax
jae 0x106e0e
movl -0x478(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movl (%rax), %esi
movq 0x1ce1c5(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xb70(%rbp)
jmp 0x106d99
movq -0xb70(%rbp), %rdi
leaq 0xdd328(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xb78(%rbp)
jmp 0x106db5
movl -0x478(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movq -0xb78(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xb80(%rbp)
jmp 0x106de3
movq -0xb80(%rbp), %rdi
leaq 0xd45be(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x106df8
jmp 0x106dfa
movl -0x478(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x478(%rbp)
jmp 0x106d42
leaq -0x490(%rbp), %rdi
callq 0x120db0
movl $0x0, -0x354(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x122630
movq %rax, -0x498(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x1231a0
movq %rax, -0x4a0(%rbp)
leaq -0x498(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x1231d0
testb $0x1, %al
jne 0x106e66
jmp 0x106f2d
movl -0x354(%rbp), %eax
incl %eax
movl %eax, -0x354(%rbp)
leaq -0x498(%rbp), %rdi
movq %rdi, -0xba0(%rbp)
callq 0x122660
movq -0xba0(%rbp), %rdi
addq $0x8, %rax
movq %rax, -0xb98(%rbp)
callq 0x122660
movq -0xb98(%rbp), %rdi
movq %rax, %rsi
callq 0x125960
movsd %xmm0, -0xb90(%rbp)
movl %eax, -0xb84(%rbp)
jmp 0x106ebd
movsd -0xb90(%rbp), %xmm0
movl -0xb84(%rbp), %eax
movl %eax, -0x4b8(%rbp)
movsd %xmm0, -0x4b0(%rbp)
leaq -0x4a8(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x125990
jmp 0x106eee
leaq -0x490(%rbp), %rdi
leaq -0x4a8(%rbp), %rsi
callq 0x1258d0
jmp 0x106f03
jmp 0x106f05
leaq -0x498(%rbp), %rdi
callq 0xcbd20
jmp 0x106e37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1084b2
leaq -0x490(%rbp), %rdi
movq %rdi, -0xba8(%rbp)
callq 0x123d20
movq -0xba8(%rbp), %rdi
movq %rax, -0x4c0(%rbp)
callq 0x123d90
movq %rax, -0x4c8(%rbp)
movq -0x4c0(%rbp), %rdi
movq -0x4c8(%rbp), %rsi
callq 0x11dd00
jmp 0x106f6f
movq 0x1cdfda(%rip), %rdi    # 0x2d4f50
leaq 0xdd310(%rip), %rsi     # 0x1e428d
callq 0x2ff50
movq %rax, -0xbb0(%rbp)
jmp 0x106f8b
movq -0xbb0(%rbp), %rdi
movq 0x1ce02f(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x106fa0
movl $0x0, -0x4d0(%rbp)
movss 0xd9baa(%rip), %xmm0    # 0x1e0b5c
movss %xmm0, -0x4d4(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x120db0
movl $0x0, -0x4f4(%rbp)
movl -0x4f4(%rbp), %eax
movq %rax, -0xbb8(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xbb8(%rbp), %rax
cmpq %rcx, %rax
jae 0x10717d
movl -0x4f4(%rbp), %eax
movl %eax, %esi
leaq -0x490(%rbp), %rdi
callq 0x123050
movl (%rax), %esi
movq 0x1cdf37(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xbc0(%rbp)
jmp 0x107027
movq -0xbc0(%rbp), %rdi
leaq 0xdd09a(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xbc8(%rbp)
jmp 0x107043
movl -0x4f4(%rbp), %eax
movl %eax, %esi
leaq -0x490(%rbp), %rdi
callq 0x123050
movq -0xbc8(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xbd0(%rbp)
jmp 0x107071
movq -0xbd0(%rbp), %rdi
leaq 0xd4330(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x107086
movss -0x4d4(%rbp), %xmm0
movss %xmm0, -0xbd4(%rbp)
movl -0x4f4(%rbp), %eax
movl %eax, %esi
leaq -0x490(%rbp), %rdi
callq 0x123050
movss -0xbd4(%rbp), %xmm0
ucomiss 0x4(%rax), %xmm0
jne 0x1070bc
jp 0x1070bc
jmp 0x1070e4
movl -0x4d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4d0(%rbp)
jmp 0x1070e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x1084a6
movl -0x4f4(%rbp), %eax
movl %eax, %esi
leaq -0x490(%rbp), %rdi
callq 0x123050
movq %rax, %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x125900
movq %rax, -0xbe0(%rbp)
jmp 0x107110
movq -0xbe0(%rbp), %rax
movq %rax, -0x504(%rbp)
leaq -0x4fc(%rbp), %rdi
leaq -0x504(%rbp), %rsi
callq 0x125930
jmp 0x107133
leaq -0x4f0(%rbp), %rdi
leaq -0x4fc(%rbp), %rsi
callq 0x1258d0
jmp 0x107148
movl -0x4f4(%rbp), %eax
movl %eax, %esi
leaq -0x490(%rbp), %rdi
callq 0x123050
movss 0x4(%rax), %xmm0
movss %xmm0, -0x4d4(%rbp)
movl -0x4f4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4f4(%rbp)
jmp 0x106fd0
movq 0x1cddcc(%rip), %rdi    # 0x2d4f50
leaq 0xdd10f(%rip), %rsi     # 0x1e429a
callq 0x2ff50
movq %rax, -0xbe8(%rbp)
jmp 0x107199
movq -0xbe8(%rbp), %rdi
movq 0x1cde21(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1071ae
movl $0x0, -0x508(%rbp)
movl -0x508(%rbp), %eax
movq %rax, -0xbf0(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xbf0(%rbp), %rax
cmpq %rcx, %rax
jae 0x107284
movl -0x508(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movl (%rax), %esi
movq 0x1cdd4f(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xbf8(%rbp)
jmp 0x10720f
movq -0xbf8(%rbp), %rdi
leaq 0xdceb2(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xc00(%rbp)
jmp 0x10722b
movl -0x508(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq -0xc00(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xc08(%rbp)
jmp 0x107259
movq -0xc08(%rbp), %rdi
leaq 0xd4148(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x10726e
jmp 0x107270
movl -0x508(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x508(%rbp)
jmp 0x1071b8
leaq -0x520(%rbp), %rdi
callq 0x120db0
movq -0x878(%rbp), %rax
movss 0x1610(%rax), %xmm0
movss %xmm0, -0x524(%rbp)
movss 0xcbd55(%rip), %xmm0    # 0x1d3004
subss 0x1610(%rax), %xmm0
movss %xmm0, -0x528(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x52c(%rbp)
movl $0x0, -0x534(%rbp)
movl -0x534(%rbp), %eax
movq %rax, -0xc10(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xc10(%rbp), %rax
cmpq %rcx, %rax
jae 0x10751e
movl $0x0, -0x530(%rbp)
movl $0x0, -0x538(%rbp)
movl -0x538(%rbp), %eax
movq %rax, -0xc18(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xc18(%rbp), %rax
cmpq %rcx, %rax
jae 0x107486
movl -0x538(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movl (%rax), %eax
movl %eax, -0xc1c(%rbp)
movl -0x534(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq %rax, %rcx
movl -0xc1c(%rbp), %eax
cmpl (%rcx), %eax
jne 0x107470
movl -0x538(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
movq %rdi, -0xc30(%rbp)
callq 0x123050
movss 0x4(%rax), %xmm0
movss %xmm0, -0xc38(%rbp)
movss -0x524(%rbp), %xmm0
movss %xmm0, -0xc34(%rbp)
movl -0x534(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movss -0xc38(%rbp), %xmm0
movss -0xc34(%rbp), %xmm2
movq -0xc30(%rbp), %rdi
movss 0x4(%rax), %xmm1
movss -0x528(%rbp), %xmm3
mulss %xmm3, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x52c(%rbp)
movl -0x538(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq %rax, %rdi
leaq -0x52c(%rbp), %rsi
callq 0x1259c0
movq %rax, -0xc28(%rbp)
jmp 0x10742a
movq -0xc28(%rbp), %rax
movq %rax, -0x540(%rbp)
leaq -0x520(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x1258d0
jmp 0x10744d
movl $0x1, -0x530(%rbp)
jmp 0x107470
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x10849a
jmp 0x107472
movl -0x538(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x538(%rbp)
jmp 0x107314
cmpl $0x0, -0x530(%rbp)
jne 0x107508
movl -0x534(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
movq %rdi, -0xc48(%rbp)
callq 0x123050
movq -0xc48(%rbp), %rdi
movss 0x4(%rax), %xmm0
movss %xmm0, -0x52c(%rbp)
movl -0x534(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq %rax, %rdi
leaq -0x52c(%rbp), %rsi
callq 0x1259c0
movq %rax, -0xc40(%rbp)
jmp 0x1074e3
movq -0xc40(%rbp), %rax
movq %rax, -0x548(%rbp)
leaq -0x520(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0x1258d0
jmp 0x107506
jmp 0x107508
jmp 0x10750a
movl -0x534(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x534(%rbp)
jmp 0x1072d4
leaq -0x520(%rbp), %rdi
movq %rdi, -0xc50(%rbp)
callq 0x123d20
movq -0xc50(%rbp), %rdi
movq %rax, -0x550(%rbp)
callq 0x123d90
movq %rax, -0x558(%rbp)
movq -0x550(%rbp), %rdi
movq -0x558(%rbp), %rsi
callq 0x11dd40
jmp 0x107560
movq 0x1cd9e9(%rip), %rdi    # 0x2d4f50
leaq 0xdcd3d(%rip), %rsi     # 0x1e42ab
callq 0x2ff50
movq %rax, -0xc58(%rbp)
jmp 0x10757c
movq -0xc58(%rbp), %rdi
movq 0x1cda3e(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x107591
movq -0x878(%rbp), %rdi
movl $0x0, -0x4d0(%rbp)
movss 0xd95b2(%rip), %xmm0    # 0x1e0b5c
movss %xmm0, -0x4d4(%rbp)
addq $0x18f0, %rdi           # imm = 0x18F0
callq 0x1259f0
movl $0x0, -0x560(%rbp)
movl -0x560(%rbp), %eax
movq %rax, -0xc60(%rbp)
leaq -0x520(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xc60(%rbp), %rax
cmpq %rcx, %rax
jae 0x107770
movl -0x560(%rbp), %eax
movl %eax, %esi
leaq -0x520(%rbp), %rdi
callq 0x123050
movl (%rax), %esi
movq 0x1cd93f(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xc68(%rbp)
jmp 0x10761f
movq -0xc68(%rbp), %rdi
leaq 0xdcaa2(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xc70(%rbp)
jmp 0x10763b
movl -0x560(%rbp), %eax
movl %eax, %esi
leaq -0x520(%rbp), %rdi
callq 0x123050
movq -0xc70(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xc78(%rbp)
jmp 0x107669
movq -0xc78(%rbp), %rdi
leaq 0xd3d38(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x10767e
movss -0x4d4(%rbp), %xmm0
movss %xmm0, -0xc7c(%rbp)
movl -0x560(%rbp), %eax
movl %eax, %esi
leaq -0x520(%rbp), %rdi
callq 0x123050
movss -0xc7c(%rbp), %xmm0
ucomiss 0x4(%rax), %xmm0
jne 0x1076b4
jp 0x1076b4
jmp 0x1076c3
movl -0x4d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4d0(%rbp)
movq -0x878(%rbp), %rax
addq $0x18f0, %rax           # imm = 0x18F0
movq %rax, -0xc90(%rbp)
movl -0x560(%rbp), %eax
movl %eax, %esi
leaq -0x520(%rbp), %rdi
callq 0x123050
movq %rax, %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x125900
movq %rax, -0xc88(%rbp)
jmp 0x107703
movq -0xc88(%rbp), %rax
movq %rax, -0x570(%rbp)
leaq -0x568(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x125930
jmp 0x107726
movq -0xc90(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x1258d0
jmp 0x10773b
movl -0x560(%rbp), %eax
movl %eax, %esi
leaq -0x520(%rbp), %rdi
callq 0x123050
movss 0x4(%rax), %xmm0
movss %xmm0, -0x4d4(%rbp)
movl -0x560(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x560(%rbp)
jmp 0x1075c8
movq 0x1cd7d9(%rip), %rdi    # 0x2d4f50
leaq 0xdcb47(%rip), %rsi     # 0x1e42c5
callq 0x2ff50
movq %rax, -0xc98(%rbp)
jmp 0x10778c
movq -0xc98(%rbp), %rdi
movq 0x1cd82e(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1077a1
movl $0x0, -0x574(%rbp)
movq -0x878(%rbp), %rdi
movl -0x574(%rbp), %eax
movq %rax, -0xca0(%rbp)
addq $0x18f0, %rdi           # imm = 0x18F0
callq 0x1258b0
movq %rax, %rcx
movq -0xca0(%rbp), %rax
cmpq %rcx, %rax
jae 0x10788c
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x574(%rbp), %eax
movl %eax, %esi
callq 0x123050
movl (%rax), %esi
movq 0x1cd74e(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xca8(%rbp)
jmp 0x107810
movq -0xca8(%rbp), %rdi
leaq 0xdc8b1(%rip), %rsi     # 0x1e40cf
callq 0x2ff50
movq %rax, -0xcb0(%rbp)
jmp 0x10782c
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x574(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0xcb0(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xcb8(%rbp)
jmp 0x107861
movq -0xcb8(%rbp), %rdi
leaq 0xd3b40(%rip), %rsi     # 0x1db3af
callq 0x2ff50
jmp 0x107876
jmp 0x107878
movl -0x574(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x574(%rbp)
jmp 0x1077ab
movq -0x878(%rbp), %rsi
addq $0x1500, %rsi           # imm = 0x1500
leaq 0xdaab2(%rip), %rdx     # 0x1e2353
leaq -0x618(%rbp), %rdi
callq 0x447b0
jmp 0x1078af
movq -0x878(%rbp), %rdx
addq $0x14c0, %rdx           # imm = 0x14C0
leaq -0x5f8(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0x44760
jmp 0x1078d2
leaq 0xdaa7a(%rip), %rdx     # 0x1e2353
leaq -0x5d8(%rbp), %rdi
leaq -0x5f8(%rbp), %rsi
callq 0x441f0
jmp 0x1078ee
movq -0x878(%rbp), %rax
movl 0x13e8(%rax), %esi
decl %esi
leaq -0x638(%rbp), %rdi
callq 0x17e460
jmp 0x10790b
leaq -0x5b8(%rbp), %rdi
leaq -0x5d8(%rbp), %rsi
leaq -0x638(%rbp), %rdx
callq 0x9c7d0
jmp 0x107927
leaq 0xdaa25(%rip), %rdx     # 0x1e2353
leaq -0x598(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
callq 0x441f0
jmp 0x107943
leaq -0x5b8(%rbp), %rdi
callq 0x311e8
leaq -0x638(%rbp), %rdi
callq 0x311e8
leaq -0x5d8(%rbp), %rdi
callq 0x311e8
leaq -0x5f8(%rbp), %rdi
callq 0x311e8
leaq -0x618(%rbp), %rdi
callq 0x311e8
leaq 0xdc953(%rip), %rdx     # 0x1e42d9
leaq -0x658(%rbp), %rdi
leaq -0x598(%rbp), %rsi
callq 0x447b0
jmp 0x10799b
leaq -0x858(%rbp), %rdi
callq 0x2f5a0
jmp 0x1079a9
leaq -0x858(%rbp), %rdi
leaq -0x658(%rbp), %rsi
movl $0x10, %edx
callq 0x301a0
jmp 0x1079c3
movq 0x1cd586(%rip), %rdi    # 0x2d4f50
leaq 0xdc91b(%rip), %rsi     # 0x1e42ec
callq 0x2ff50
movq %rax, -0xcc0(%rbp)
jmp 0x1079df
movq -0xcc0(%rbp), %rdi
movq 0x1cd5db(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1079f4
leaq 0xdc8f1(%rip), %rsi     # 0x1e42ec
leaq -0x858(%rbp), %rdi
callq 0x2ff50
movq %rax, -0xcc8(%rbp)
jmp 0x107a10
movq -0xcc8(%rbp), %rdi
movq 0x1cd5aa(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x107a25
movl $0x0, -0x860(%rbp)
movq -0x878(%rbp), %rdi
movl -0x860(%rbp), %eax
movq %rax, -0xcd0(%rbp)
addq $0x18f0, %rdi           # imm = 0x18F0
callq 0x1258b0
movq %rax, %rcx
movq -0xcd0(%rbp), %rax
cmpq %rcx, %rax
jae 0x108420
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0x878(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xcd8(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0xcd8(%rbp), %edi
movl %eax, %esi
callq 0x17d3d0
movl %eax, -0xcd4(%rbp)
jmp 0x107aad
movq -0x878(%rbp), %rdi
movl -0xcd4(%rbp), %eax
movl %eax, -0x40c(%rbp)
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0x878(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xce0(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0xce0(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movl %eax, -0xcdc(%rbp)
jmp 0x107b04
movl -0xcdc(%rbp), %eax
movl %eax, -0x85c(%rbp)
movl $0x0, -0x864(%rbp)
movl -0x864(%rbp), %eax
movq %rax, -0xce8(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xce8(%rbp), %rax
cmpq %rcx, %rax
jae 0x10840a
movl $0x0, -0x530(%rbp)
movl $0x0, -0x868(%rbp)
movl -0x868(%rbp), %eax
movq %rax, -0xcf0(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xcf0(%rbp), %rax
cmpq %rcx, %rax
jae 0x1080f1
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movl (%rax), %eax
movl %eax, -0xcf4(%rbp)
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq %rax, %rcx
movl -0xcf4(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1080db
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movl (%rax), %eax
movl %eax, -0xcf8(%rbp)
movl -0x868(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movq %rax, %rcx
movl -0xcf8(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1080db
movl $0x0, -0x86c(%rbp)
movl -0x86c(%rbp), %eax
movq %rax, -0xd00(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x1258b0
movq %rax, %rcx
movq -0xd00(%rbp), %rax
cmpq %rcx, %rax
jae 0x1080d9
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movl (%rax), %eax
movl %eax, -0xd04(%rbp)
movl -0x86c(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movq %rax, %rcx
movl -0xd04(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1080c3
movl -0x85c(%rbp), %esi
movq 0x1cd2af(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xd10(%rbp)
jmp 0x107caf
movq -0xd10(%rbp), %rdi
leaq 0xd1842(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd18(%rbp)
jmp 0x107ccb
movq -0xd18(%rbp), %rdi
movl -0x40c(%rbp), %esi
callq 0x2f800
movq %rax, -0xd20(%rbp)
jmp 0x107ce6
movq -0xd20(%rbp), %rdi
leaq 0xd180b(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd28(%rbp)
jmp 0x107d02
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq -0xd28(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd30(%rbp)
jmp 0x107d30
movq -0xd30(%rbp), %rdi
leaq 0xd17c1(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd38(%rbp)
jmp 0x107d4c
movl -0x868(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movq -0xd38(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd40(%rbp)
jmp 0x107d7a
movq -0xd40(%rbp), %rdi
leaq 0xd1777(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd48(%rbp)
jmp 0x107d96
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0xd48(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd50(%rbp)
jmp 0x107dcb
movq -0xd50(%rbp), %rdi
leaq 0xd1726(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd58(%rbp)
jmp 0x107de7
movl -0x86c(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movq -0xd58(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd60(%rbp)
jmp 0x107e15
movq -0xd60(%rbp), %rdi
movq 0x1cd1a5(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x107e2a
movl -0x85c(%rbp), %esi
leaq -0x858(%rbp), %rdi
callq 0x2f800
movq %rax, -0xd68(%rbp)
jmp 0x107e45
movq -0xd68(%rbp), %rdi
leaq 0xd16ac(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd70(%rbp)
jmp 0x107e61
movq -0xd70(%rbp), %rdi
movl -0x40c(%rbp), %esi
callq 0x2f800
movq %rax, -0xd78(%rbp)
jmp 0x107e7c
movq -0xd78(%rbp), %rdi
leaq 0xd1675(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd80(%rbp)
jmp 0x107e98
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq -0xd80(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd88(%rbp)
jmp 0x107ec6
movq -0xd88(%rbp), %rdi
leaq 0xd162b(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xd90(%rbp)
jmp 0x107ee2
movl -0x868(%rbp), %eax
movl %eax, %esi
leaq -0x460(%rbp), %rdi
callq 0x123050
movq -0xd90(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xd98(%rbp)
jmp 0x107f10
movq -0xd98(%rbp), %rdi
leaq 0xd15e1(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xda0(%rbp)
jmp 0x107f2c
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0xda0(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xda8(%rbp)
jmp 0x107f61
movq -0xda8(%rbp), %rdi
leaq 0xd1590(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xdb0(%rbp)
jmp 0x107f7d
movl -0x86c(%rbp), %eax
movl %eax, %esi
leaq -0x408(%rbp), %rdi
callq 0x123050
movq -0xdb0(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xdb8(%rbp)
jmp 0x107fab
movq -0xdb8(%rbp), %rdi
movq 0x1cd00f(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x107fc0
movl $0x1, -0x530(%rbp)
jmp 0x1080c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x108061
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x108055
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x108049
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x10803d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x311e8
leaq -0x638(%rbp), %rdi
callq 0x311e8
leaq -0x5d8(%rbp), %rdi
callq 0x311e8
leaq -0x5f8(%rbp), %rdi
callq 0x311e8
leaq -0x618(%rbp), %rdi
callq 0x311e8
jmp 0x10849a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x10848e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0x108482
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x858(%rbp), %rdi
callq 0x304f0
jmp 0x108482
jmp 0x1080c5
movl -0x86c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x86c(%rbp)
jmp 0x107c20
jmp 0x1080db
jmp 0x1080dd
movl -0x868(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x868(%rbp)
jmp 0x107b5a
cmpl $0x0, -0x530(%rbp)
jne 0x1083f4
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movl (%rax), %eax
movl %eax, -0xdbc(%rbp)
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq %rax, %rcx
movl -0xdbc(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1083f4
movl -0x85c(%rbp), %esi
movq 0x1ccdfd(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xdc8(%rbp)
jmp 0x108161
movq -0xdc8(%rbp), %rdi
leaq 0xd1390(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xdd0(%rbp)
jmp 0x10817d
movq -0xdd0(%rbp), %rdi
movl -0x40c(%rbp), %esi
callq 0x2f800
movq %rax, -0xdd8(%rbp)
jmp 0x108198
movq -0xdd8(%rbp), %rdi
leaq 0xd1359(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xde0(%rbp)
jmp 0x1081b4
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq -0xde0(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xde8(%rbp)
jmp 0x1081e2
movq -0xde8(%rbp), %rdi
leaq 0xd130f(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xdf0(%rbp)
jmp 0x1081fe
movq -0xdf0(%rbp), %rdi
leaq 0xdc120(%rip), %rsi     # 0x1e432c
callq 0x2ff50
movq %rax, -0xdf8(%rbp)
jmp 0x10821a
movq -0xdf8(%rbp), %rdi
leaq 0xd12d7(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xe00(%rbp)
jmp 0x108236
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0xe00(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xe08(%rbp)
jmp 0x10826b
movq -0xe08(%rbp), %rdi
leaq 0xdc0b2(%rip), %rsi     # 0x1e432b
callq 0x2ff50
movq %rax, -0xe10(%rbp)
jmp 0x108287
movq -0xe10(%rbp), %rdi
movq 0x1ccd33(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x10829c
movl -0x85c(%rbp), %esi
leaq -0x858(%rbp), %rdi
callq 0x2f800
movq %rax, -0xe18(%rbp)
jmp 0x1082b7
movq -0xe18(%rbp), %rdi
leaq 0xd123a(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xe20(%rbp)
jmp 0x1082d3
movq -0xe20(%rbp), %rdi
movl -0x40c(%rbp), %esi
callq 0x2f800
movq %rax, -0xe28(%rbp)
jmp 0x1082ee
movq -0xe28(%rbp), %rdi
leaq 0xd1203(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xe30(%rbp)
jmp 0x10830a
movl -0x864(%rbp), %eax
movl %eax, %esi
leaq -0x4f0(%rbp), %rdi
callq 0x123050
movq -0xe30(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xe38(%rbp)
jmp 0x108338
movq -0xe38(%rbp), %rdi
leaq 0xd11b9(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xe40(%rbp)
jmp 0x108354
movq -0xe40(%rbp), %rdi
leaq 0xdbfca(%rip), %rsi     # 0x1e432c
callq 0x2ff50
movq %rax, -0xe48(%rbp)
jmp 0x108370
movq -0xe48(%rbp), %rdi
leaq 0xd1181(%rip), %rsi     # 0x1d94ff
callq 0x2ff50
movq %rax, -0xe50(%rbp)
jmp 0x10838c
movq -0x878(%rbp), %rdi
addq $0x18f0, %rdi           # imm = 0x18F0
movl -0x860(%rbp), %eax
movl %eax, %esi
callq 0x123050
movq -0xe50(%rbp), %rdi
movss 0x4(%rax), %xmm0
callq 0x30ce0
movq %rax, -0xe58(%rbp)
jmp 0x1083c1
movq -0xe58(%rbp), %rdi
leaq 0xdbf5c(%rip), %rsi     # 0x1e432b
callq 0x2ff50
movq %rax, -0xe60(%rbp)
jmp 0x1083dd
movq -0xe60(%rbp), %rdi
movq 0x1ccbdd(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1083f2
jmp 0x1083f4
jmp 0x1083f6
movl -0x864(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x864(%rbp)
jmp 0x107b1a
jmp 0x10840c
movl -0x860(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x860(%rbp)
jmp 0x107a2f
leaq -0x858(%rbp), %rdi
callq 0x304f0
leaq -0x658(%rbp), %rdi
callq 0x311e8
leaq -0x598(%rbp), %rdi
callq 0x311e8
leaq -0x520(%rbp), %rdi
callq 0x121190
leaq -0x4f0(%rbp), %rdi
callq 0x121190
leaq -0x490(%rbp), %rdi
callq 0x121190
leaq -0x460(%rbp), %rdi
callq 0x121190
leaq -0x408(%rbp), %rdi
callq 0x121190
jmp 0x1084d8
leaq -0x658(%rbp), %rdi
callq 0x311e8
leaq -0x598(%rbp), %rdi
callq 0x311e8
leaq -0x520(%rbp), %rdi
callq 0x121190
leaq -0x4f0(%rbp), %rdi
callq 0x121190
leaq -0x490(%rbp), %rdi
callq 0x121190
leaq -0x460(%rbp), %rdi
callq 0x121190
leaq -0x408(%rbp), %rdi
callq 0x121190
jmp 0x1084f4
leaq -0x298(%rbp), %rdi
callq 0x30910
jmp 0x1084e6
leaq -0x388(%rbp), %rdi
callq 0x1210b0
jmp 0x108570
leaq -0x388(%rbp), %rdi
callq 0x1210b0
jmp 0x1085a3
movq 0x1cca44(%rip), %rdi    # 0x2d4f50
leaq 0xdbe1b(%rip), %rsi     # 0x1e432e
callq 0x2ff50
movq %rax, -0xe68(%rbp)
jmp 0x108521
movq -0x880(%rbp), %rsi
movq -0xe68(%rbp), %rdi
callq 0x2f780
movq %rax, -0xe70(%rbp)
jmp 0x10853d
movq -0xe70(%rbp), %rdi
leaq 0xdbdfc(%rip), %rsi     # 0x1e4347
callq 0x2ff50
movq %rax, -0xe78(%rbp)
jmp 0x108559
movq -0xe78(%rbp), %rdi
movq 0x1cca61(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x10856e
jmp 0x108570
leaq -0x298(%rbp), %rdi
callq 0x304f0
leaq -0x88(%rbp), %rdi
callq 0x125a10
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0x30(%rbp), %rdi
callq 0x448d0
addq $0xe80, %rsp            # imm = 0xE80
popq %rbp
retq
leaq -0x298(%rbp), %rdi
callq 0x304f0
leaq -0x88(%rbp), %rdi
callq 0x125a10
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0x30(%rbp), %rdi
callq 0x448d0
movq -0x90(%rbp), %rdi
callq 0x30170
nopl (%rax)