// File: /workspace/github_cpp_makefile_star2_O1/richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::checkMasterMessages()
vector<unsigned int> Swarm::checkMasterMessages() {  //razi:  modified version, particles replaced with subparticles
	unsigned int pID, mid, NumNewlyFinishedParticles=0;
	std::vector<unsigned int> NewlyFinishedParticles;

	if (options.verbosity >= 3) {
		cout << "Checking messages" << endl;
	}

	// First let's check interswarm communication
	int numMessages = swarmComm->recvMessage(-1, 0, -1, true, swarmComm->univMessageReceiver);
	//if we set false in the boolean above, the program still works for multiple models, but doesn't work for single models, who knows why...
	if (numMessages >= 1) {
		if (options.verbosity >= 3) {
			cout << "Found " << numMessages << " messages" << endl;
		}

		pair <Pheromones::swarmMsgHolderIt, Pheromones::swarmMsgHolderIt> smhRange;

		smhRange = swarmComm->univMessageReceiver.equal_range(SIMULATION_END);

		for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {

			unsigned int subParID;
			subParID = sm->second.sender;

			pID = fcalcParID(subParID, options.models.size());
			mid= fcalcMID(subParID, options.models.size());

			fixRunningParticle(subParID);


			if (options.verbosity >= 3) {
				cout << "subParticle [" << subParID << ":"<< pID <<"-"<< mid <<"] finished simulation" << endl;
			}
			// Get an iterator to the particle in our list of running particles
			runningSubParticlesIterator_ = runningSubParticles_.find(subParID);
			// Then remove it
			if (runningSubParticlesIterator_ == runningSubParticles_.end()) {
				string errMsg = "Error: Couldn't remove subParticle " + toString(subParID) + " from runningParticle list.";

				if(options.verbosity >= 3) {

					cout << "Size of runningSubParticles_: " << runningSubParticles_.size() << endl;
					cout << "Subparticles in running list are: " << endl;

					for(auto myIt = runningSubParticles_.begin(); myIt != runningSubParticles_.end(); myIt++){
						cout << "first: " << *myIt << endl;

					}
					cout << "Done listing running particles. " << endl;
				}
				outputError(errMsg);
			}

			if(options.verbosity >= 3) {

				cout << "Master messages Added supar " << subParID << " to finnished list and removed it from running list" << endl;
			}
			runningSubParticles_.erase(runningSubParticlesIterator_);
			finishedSubParticles_.insert(subParID); //razi: add to the list
			++particleIterationCounter_[pID][mid];
			if(options.verbosity >= 5) {

				cout << "Master messages running sub" << runningSubParticles_.size() << " finished size " << finishedSubParticles_.size() << endl;
			}
			update_cur_particle_params(pID, mid, true); //razi: TODO  the same procedure should be done in other places, the slave sends theliust of free parameters for subparticle that should be reordered for particles

			//finishedsubParticles.push_back(subParID);


			//razi: was ++flightCounter_;    //razi increment the flight counter if this subparticle completes a particle
			NewlyFinishedParticles = update_finished_running_particles(); //update particle lists
			NumNewlyFinishedParticles = NewlyFinishedParticles.size(); //update particle lists
			flightCounter_=flightCounter_+ NumNewlyFinishedParticles;
			if (options.verbosity == 3) {
				cout << "Master NumNewlyFinishedParticles " <<  NumNewlyFinishedParticles << " Flightcounter " << flightCounter_ << endl;
			}
			unsigned int gen = currentGeneration;
			string paramsString;
			if (options.synchronicity == 1 || options.synchronicity == 0) { //Raquel testing
				if (options.fitType == "ga") {
					paramsString = "gen" + toString(gen) + "perm" + toString(subParID) + " ";
				}
				else if (options.fitType == "pso") {
					paramsString = "flock" + toString(gen) + "SubParticle" + toString(subParID) + " ";
				}

			}
			/*else if (options.synchronicity == 0) {
				// Increment our flight counter

				// TODO: This run summary contains 1 less particle than it should.
				// Output a run summary every outputEvery flights
				if (flightCounter_ % options.outputEvery == 0) {
					string outputPath = options.jobOutputDir + toString(flightCounter_) + "_summary.txt";
					outputRunSummary(outputPath);
				}

				paramsString = toString(flightCounter_) + " ";
			}
	*/
			// Store the parameters given to us by the particle


//cout<< "check messages: this part may need modifications ...."<<endl;

//razi: just for debugging, later del
/*int i1, i2;
cout<<"size 1:"<< subparticleCurrParamSets_.size()<<endl;
i1=0;
for (auto ii=subparticleCurrParamSets_.begin(); ii!=subparticleCurrParamSets_.end(); ii++){
	i2=0;
	for (auto jj=ii->second.begin(); jj!=ii->second.end(); jj++){
		cout<<"size [p-sp]: ["<< i1<<","<<i2 <<"]: "<< jj->second.size()<<endl;
		i2++;
	}i1++;
}
*/

			vector<double> paramsVec;
			int i = 0;
			for (vector<string>::iterator m = sm->second.message.begin() + 1; m != sm->second.message.end(); ++m) {
				paramsString += *m + " ";
//cout<<"paramsString["<<i<<"]= "<<paramsString<<endl; //mypause();
				paramsVec.push_back(stod(*m));
				if (options.fitType == "ga") {
					subparticleCurrParamSets_[pID][mid][i] = stod(*m);   //razi: the list and order of free params can be different for  different models
					if (options.verbosity>= 3) {
						cout << "pID " << pID << " mid " << mid << " i " << i << " *m " << *m << endl;
					}
					particleCurrParamSets_[pID][i] = stod(*m);
				}
				++i;
			}
			if(options.verbosity >= 5) {

cout<<i <<" Params collected for one subparticle: "<<paramsString<<endl; //mypause();
subparticleCurrParamSets_copy = subparticleCurrParamSets_;
particleCurrParamSets_copy = particleCurrParamSets_;

			}
			update_cur_particle_params(pID, mid, true); //razi: TODO  the same procedure should be done in other places, the slave sends theliust of free parameters for subparticle that should be reordered for particles

			if (options.verbosity>= 3) {cout << "params are stored" << endl;} //mypause();}

			double fitCalc = stod(sm->second.message[0]);
			if (options.verbosity>= 3) {cout << "fitCalc: " << fitCalc <<endl;} //mypause();}


			update_fitCalcs(); //razi: TODO: later develop and test this function
			if(options.verbosity >= 3) {

cout << "add to allGenFits fitCalc: " << fitCalc <<" params:" << paramsString<<endl; //mypause();
			}
			allGenFits.insert(pair<double, string>(fitCalc, order_params(paramsString, mid)));
			swarmBestFits_.insert(pair<double, unsigned int>(fitCalc, pID));
			subswarmBestFits_.insert(pair<double, unsigned int>(fitCalc, subParID));
			currentsubswarmBestFits_.insert(pair<double, unsigned int>(fitCalc, subParID));
			currentsubswarmBestFits_copy.insert(pair<double, unsigned int>(fitCalc, subParID));

			if(options.verbosity>=3){

				cout << "@@@@@@@@@@@@@@@@@ currentsubswarmBestFits_ size A " << currentsubswarmBestFits_.size() << " @@@@@@@@@@@@@@@@@@@@@@@@@@@@" << endl;

			}
//cout << "add to swarmBestFits_ fitCalc: " << fitCalc <<endl;mypause();

			if (options.fitType == "pso") {
				processParamsPSO(paramsVec, subParID, fitCalc);
			}

			if (options.fitType == "de") {
				processParamsDE(paramsVec, subParID, fitCalc);
			}
		}

		// TODO: When sending NEXT_GENERATION, make sure failed particles have actually run again. If not, they need re-launched.
		if(options.verbosity >= 5) {

			cout << "RAQUEL: before univMessageReceiver.equal_range(SIMULATION_FAIL)" << endl;
			cout << "Number of runnning subparticles before" << runningSubParticles_.size() << endl;
		}
		smhRange = swarmComm->univMessageReceiver.equal_range(SIMULATION_FAIL);
		if(options.verbosity >= 5) {

			cout << "RAQUEL: after univMessageReceiver.equal_range(SIMULATION_FAIL);" << endl;
		}
		for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {

			unsigned int subParID = sm->second.sender;
			pID = fcalcParID(subParID, options.models.size());
			mid= fcalcMID(subParID, options.models.size());

			fixRunningParticle(subParID);

			// Get an iterator to the particle in our list of running particles
			runningSubParticlesIterator_ = runningSubParticles_.find(subParID);
			if(options.verbosity >= 5) {

				cout << "Number of runnning subparticles before erasing" << runningSubParticles_.size() << endl;
			}


			if (runningSubParticlesIterator_ == runningSubParticles_.end()) {
				string errMsg = "Error: Couldn't remove particle " + toString(pID) +  "  SubParticle " + toString(subParID) + " from runningParticle list.";
				outputError(errMsg);
			}else{
				runningSubParticles_.erase(runningSubParticlesIterator_);
				if(options.verbosity >= 5) {

					cout << "RAQUEL Erased one subparticle fro running list " << endl;
					cout << "New size: " << runningSubParticles_.size() << endl;
				}
			}
			runningSubParticlesIterator_ = failedSubParticles_.find(subParID);
			if (runningSubParticlesIterator_== failedSubParticles_.end())  //add to the list of failed subparticles
				failedParticles_.insert(subParID);
			else{
				string errMsg = "Error: subparticle failed, but failure was already reported for particle " + toString(pID) +  "  SubParticle " + toString(subParID);
				outputError(errMsg);
			}
			update_finished_running_particles();


			cout << "Particle " << pID << " SubParticle:" << subParID << "  failed in gen " << currentGeneration << endl;

			// Store particle ID in our list of failed particles

		}
		if(options.verbosity >= 5) {

			cout << "RAQUEL: After for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {" << endl;
		}
		int messageCount = 0;
		if(options.verbosity >= 5) {

			cout << "RAQUEL: Before for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) { {" << endl;
		}
		smhRange = swarmComm->univMessageReceiver.equal_range(GET_RUNNING_PARTICLES);
		for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {

			vector<string> intParts;
			//for (auto i: runningParticles_) {
			for (auto i = runningSubParticles_.begin(); i != runningSubParticles_.end(); ++i) { //razi: get list of subparticles
				intParts.push_back(toString(*i));
			}
			messageCount++;
			//cout << "RAQUEL: Sending " << messageCount << " messages." << endl;
			//cout << "RAQUEL: sending message to subpar " << sm->second.sender << " message=Running_particles" << endl;
			swarmComm->sendToSwarm(0, sm->second.sender, SEND_RUNNING_PARTICLES, true, intParts);
			//cout << "RAQUEL: Sent " << messageCount << " messages." << endl;
		}

		if(options.verbosity >= 5) {

			cout << "RAQUEL: After for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) { {" << endl;
		}

		swarmComm->univMessageReceiver.clear();

	}

	// Now let's check for any external messages
	//checkExternalMessages();
	if (options.verbosity>= 4) {

		cout<<"checking message is finished.\n";
		cout << "RAQUEL: NewlyFinishedParticles = " << toString(NewlyFinishedParticles.size()) << endl;
	}

	return NewlyFinishedParticles;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x228, %rsp            # imm = 0x228
movq %rsi, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq %rdi, 0xf8(%rsp)
movq $0x0, 0x10(%rdi)
cmpl $0x3, 0x1614(%rsi)
jb 0x8df93
movq 0xe803c(%rip), %rbx     # 0x175f90
leaq 0x71c1f(%rip), %rsi     # 0xffb7a
movl $0x11, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe800a(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rdi
leaq 0x18(%rdi), %r9
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
pushq $-0x1
pushq $0x1
callq 0x6da7e
addq $0x10, %rsp
movl %eax, %ebx
testl %eax, %eax
jle 0x8f815
cmpl $0x3, 0x1614(%r14)
jb 0x8e031
movq 0xe7fbc(%rip), %rdi     # 0x175f90
leaq 0x6da5f(%rip), %rsi     # 0xfba3a
movl $0x6, %edx
callq 0x22ab0
movq 0xe7fa4(%rip), %rdi     # 0x175f90
movl %ebx, %esi
callq 0x231e0
movq %rax, %rbx
leaq 0x93e32(%rip), %rsi     # 0x121e2f
movl $0x9, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rdi
addq $0x18, %rdi
leaq 0x8(%rsp), %rsi
movl $0xd, (%rsi)
callq 0x696ce
cmpq %rdx, %rax
movq %r14, 0xa0(%rsp)
je 0x8f1d4
movq %rax, %rcx
leaq 0x1820(%r14), %rax
movq %rax, 0x1a8(%rsp)
leaq 0x1828(%r14), %rax
movq %rax, 0x120(%rsp)
leaq 0x1890(%r14), %rax
movq %rax, 0x1a0(%rsp)
leaq 0x1950(%r14), %rax
movq %rax, 0x198(%rsp)
leaq 0x14e0(%r14), %rax
movq %rax, 0xf0(%rsp)
leaq 0xc0(%rsp), %r13
leaq 0x18(%rsp), %r15
leaq 0x1460(%r14), %rax
movq %rax, 0x130(%rsp)
leaq 0x1400(%r14), %rax
movq %rax, 0x128(%rsp)
leaq 0x1490(%r14), %rax
movq %rax, 0x160(%rsp)
leaq 0x1430(%r14), %rax
movq %rax, 0x158(%rsp)
leaq 0x8(%r14), %rax
movq %rax, 0x190(%rsp)
leaq 0x1bd0(%r14), %rax
movq %rax, 0x188(%rsp)
leaq 0x1c00(%r14), %rax
movq %rax, 0x180(%rsp)
leaq 0x1c30(%r14), %rax
movq %rax, 0x178(%rsp)
leaq 0x1c60(%r14), %rax
movq %rax, 0x170(%rsp)
leaq 0x8(%rsp), %r12
movq %rdx, 0x168(%rsp)
movq %rcx, 0xa8(%rsp)
movl 0x34(%rcx), %edi
movl %edi, (%rsp)
movq 0x15c8(%r14), %rsi
subq 0x15c0(%r14), %rsi
shrq $0x3, %rsi
callq 0xbf2b8
movl %eax, 0x4(%rsp)
movl (%rsp), %edi
movq 0x15c8(%r14), %rsi
subq 0x15c0(%r14), %rsi
shrq $0x3, %rsi
callq 0xbf2ae
movl %eax, 0x54(%rsp)
movl (%rsp), %esi
movq %r14, %rdi
callq 0x961b2
cmpl $0x3, 0x1614(%r14)
jb 0x8e250
movl $0xd, %edx
movq 0xe7ddf(%rip), %rdi     # 0x175f90
leaq 0x719d4(%rip), %rsi     # 0xffb8c
callq 0x22ab0
movl (%rsp), %esi
movq 0xe7dc9(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x70382(%rip), %rsi     # 0xfe560
callq 0x22ab0
movl 0x4(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x73499(%rip), %rsi     # 0x10169a
callq 0x22ab0
movl 0x54(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
movl $0x15, %edx
movq %rax, %rdi
leaq 0x71976(%rip), %rsi     # 0xffb9a
callq 0x22ab0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x1830(%r14), %rcx
movq 0x120(%rsp), %rax
testq %rcx, %rcx
je 0x8e286
movl (%rsp), %edx
movq 0x120(%rsp), %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setb %sil
cmovaeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x8e26f
movq 0x120(%rsp), %rdx
movq %rdx, %rcx
cmpq %rdx, %rax
je 0x8e2a3
movl (%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovbq %rdx, %rax
movq %rax, %rcx
movq %rcx, 0x1850(%r14)
cmpq %rdx, %rcx
je 0x8f9de
cmpl $0x3, 0x1614(%r14)
jb 0x8e322
movl $0x1c, %edx
movq 0xe7cc7(%rip), %rdi     # 0x175f90
leaq 0x71983(%rip), %rsi     # 0xffc53
callq 0x22ab0
movl (%rsp), %esi
movq 0xe7cb1(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movl $0x33, %edx
movq %rax, %rdi
leaq 0x7197a(%rip), %rsi     # 0xffc70
callq 0x22ab0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x1850(%r14), %rsi
movq 0x1a8(%rsp), %rdi
callq 0xb0368
movq 0x1a0(%rsp), %rdi
movq %rsp, %rsi
callq 0xb01ce
movq 0x198(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0xa8802
movq %rax, %rdi
leaq 0x54(%rsp), %rsi
callq 0xa8866
incl (%rax)
cmpl $0x5, 0x1614(%r14)
jb 0x8e3ec
movl $0x1b, %edx
movq 0xe7c13(%rip), %rdi     # 0x175f90
leaq 0x71920(%rip), %rsi     # 0xffca4
callq 0x22ab0
movq 0x1848(%r14), %rsi
movq 0xe7bf9(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
leaq 0x71912(%rip), %rsi     # 0xffcc0
callq 0x22ab0
movq 0x18b8(%r14), %rsi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movl 0x4(%rsp), %esi
movl 0x54(%rsp), %edx
movq %r14, %rdi
movl $0x1, %ecx
callq 0x8b9dc
movq %r12, %rdi
movq %r14, %rsi
callq 0x96206
movq 0xf8(%rsp), %rdi
movq %r12, %rsi
callq 0xaf9f6
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x8e433
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x229c0
movq 0xf8(%rsp), %rax
movq 0x8(%rax), %rbx
subq (%rax), %rbx
shrq $0x2, %rbx
addl %ebx, 0x1d84(%r14)
cmpl $0x3, 0x1614(%r14)
jne 0x8e4cd
movl $0x21, %edx
movq 0xe7b2d(%rip), %rdi     # 0x175f90
leaq 0x71866(%rip), %rsi     # 0xffcd0
callq 0x22ab0
movl %ebx, %esi
movq 0xe7b18(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movl $0xf, %edx
movq %rax, %rdi
leaq 0x71863(%rip), %rsi     # 0xffcf2
callq 0x22ab0
movl 0x1d84(%r14), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movl 0x13e8(%r14), %ebx
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
movb $0x0, 0x70(%rsp)
movq 0xf0(%rsp), %r14
movq %r14, %rdi
leaq 0x63aab(%rip), %rsi     # 0xf1fa9
callq 0x22250
testl %eax, %eax
je 0x8e581
movq %r14, %rdi
leaq 0x709f1(%rip), %rsi     # 0xfef02
callq 0x22250
testl %eax, %eax
jne 0x8e9db
leaq 0x100(%rsp), %r14
movq %r14, %rdi
movl %ebx, %esi
callq 0xc03b8
movl $0x5, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x717c7(%rip), %rcx     # 0xffd0b
callq 0x22a80
leaq 0x40(%rsp), %r14
movq %r13, 0xb0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8e75a
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
jmp 0x8e762
leaq 0x100(%rsp), %r14
movq %r14, %rdi
movl %ebx, %esi
callq 0xc03b8
movl $0x3, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x7175b(%rip), %rcx     # 0xffd02
callq 0x22a80
movq %r13, 0xb0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x40(%rsp), %r14
je 0x8e5dd
movq %rdx, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
jmp 0x8e5e5
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb0(%rsp), %rdi
leaq 0x716f7(%rip), %rsi     # 0xffd06
callq 0x233b0
leaq 0x90(%rsp), %rsi
movq %rsi, 0x80(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8e648
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
jmp 0x8e64e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x88(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl (%rsp), %esi
leaq 0xd0(%rsp), %rdi
callq 0xc03b8
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x8e69b
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0xd8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x8e6d8
movl $0xf, %esi
leaq 0xe0(%rsp), %rdi
cmpq %rdi, 0xd0(%rsp)
je 0x8e6d3
movq 0xe0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8e6ef
movq 0xd0(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x222b0
jmp 0x8e700
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x30(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8e720
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x8e727
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x30(%rsp), %rdi
leaq 0x72ced(%rip), %rsi     # 0x10143d
callq 0x233b0
jmp 0x8e8d2
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb0(%rsp), %rdi
leaq 0x71585(%rip), %rsi     # 0xffd11
callq 0x233b0
leaq 0x90(%rsp), %rsi
movq %rsi, 0x80(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8e7c5
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
jmp 0x8e7cb
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x88(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl (%rsp), %esi
leaq 0xd0(%rsp), %rdi
callq 0xc03b8
movq 0x80(%rsp), %rcx
movl $0xf, %esi
leaq 0x90(%rsp), %rax
cmpq %rax, %rcx
je 0x8e818
movq 0x90(%rsp), %rsi
movq 0x88(%rsp), %r8
movq 0xd8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x8e855
movl $0xf, %esi
leaq 0xe0(%rsp), %rdi
cmpq %rdi, 0xd0(%rsp)
je 0x8e850
movq 0xe0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8e86c
movq 0xd0(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x222b0
jmp 0x8e87d
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x30(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8e89d
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x8e8a4
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x30(%rsp), %rdi
leaq 0x72b70(%rip), %rsi     # 0x10143d
callq 0x233b0
movq %r15, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8e8f5
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x8e8fc
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rdi
movq %r12, %rsi
callq 0x22bb0
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x8e938
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x8e94f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x8e974
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x8e999
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xb0(%rsp), %rdi
cmpq %r13, %rdi
je 0x8e9b6
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x8e9db
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movq $0x0, 0x90(%rsp)
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %r14
addq $0x20, %r14
cmpq 0x40(%rax), %r14
je 0x8ecbf
xorl %ebx, %ebx
movq %r15, 0x8(%rsp)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x32180
movq %r12, %rdi
leaq 0x72a0e(%rip), %rsi     # 0x10143d
callq 0x233b0
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x60(%rsp), %rdi
callq 0x222b0
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x8ea5f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%r14), %rbp
callq 0x22070
movq %rax, %r13
movl (%rax), %r15d
movl $0x0, (%rax)
movq %rbp, %rdi
movq %r12, %rsi
callq 0x22760
cmpq %rbp, 0x8(%rsp)
je 0x8f8e5
movl (%r13), %eax
testl %eax, %eax
je 0x8ea9b
cmpl $0x22, %eax
jne 0x8ea9f
jmp 0x8f8f1
movl %r15d, (%r13)
movsd %xmm0, 0x30(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x8ead1
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x88(%rsp)
movq 0xf0(%rsp), %rdi
jmp 0x8eaeb
leaq 0x80(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x68326
movq 0xf0(%rsp), %rdi
leaq 0x634b7(%rip), %rsi     # 0xf1fa9
callq 0x22250
testl %eax, %eax
jne 0x8ec9f
movq (%r14), %rbp
movl (%r13), %r15d
movl $0x0, (%r13)
movq %rbp, %rdi
movq %r12, %rsi
callq 0x22760
movsd %xmm0, 0x58(%rsp)
cmpq %rbp, 0x8(%rsp)
je 0x8f909
movl (%r13), %eax
testl %eax, %eax
je 0x8eb3c
cmpl $0x22, %eax
jne 0x8eb40
jmp 0x8f915
movl %r15d, (%r13)
movq 0x130(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0xa879e
movq %rax, %rdi
leaq 0x54(%rsp), %rsi
callq 0xa873a
movq (%rax), %rax
movsd 0x58(%rsp), %xmm0
movsd %xmm0, (%rax,%rbx,8)
movq 0xa0(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x8ec3e
movl $0x4, %edx
movq 0xe7402(%rip), %rdi     # 0x175f90
leaq 0x71188(%rip), %rsi     # 0xffd1d
callq 0x22ab0
movl 0x4(%rsp), %esi
movq 0xe73eb(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbp
movl $0x5, %edx
movq %rax, %rdi
leaq 0x6ab82(%rip), %rsi     # 0xf973e
callq 0x22ab0
movl 0x54(%rsp), %esi
movq %rbp, %rdi
callq 0x22650
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0x6a3ca(%rip), %rsi     # 0xf8fa9
callq 0x22ab0
movq %rbp, %rdi
movl %ebx, %esi
callq 0x231e0
movq %rax, %rbp
movl $0x4, %edx
movq %rax, %rdi
leaq 0x71122(%rip), %rsi     # 0xffd22
callq 0x22ab0
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbp, %rdi
callq 0x22ab0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbp, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rbp
movl (%r13), %r15d
movl $0x0, (%r13)
movq %rbp, %rdi
movq %r12, %rsi
callq 0x22760
movsd %xmm0, 0x58(%rsp)
cmpq %rbp, 0x8(%rsp)
je 0x8f8fd
movl (%r13), %eax
testl %eax, %eax
je 0x8ec7b
cmpl $0x22, %eax
jne 0x8ec7f
jmp 0x8f921
movl %r15d, (%r13)
movq 0x128(%rsp), %rdi
leaq 0x4(%rsp), %rsi
callq 0xa873a
movq (%rax), %rax
movsd 0x58(%rsp), %xmm0
movsd %xmm0, (%rax,%rbx,8)
incq %rbx
addq $0x20, %r14
movq 0xa8(%rsp), %rax
cmpq 0x40(%rax), %r14
leaq 0x18(%rsp), %r15
jne 0x8ea0e
jmp 0x8ecc1
xorl %ebx, %ebx
movq 0xa0(%rsp), %r14
cmpl $0x4, 0x1614(%r14)
jbe 0x8ed62
movq 0xe72b2(%rip), %rdi     # 0x175f90
movl %ebx, %esi
callq 0x231e0
movq %rax, %rbx
movl $0x27, %edx
movq %rax, %rdi
leaq 0x71030(%rip), %rsi     # 0xffd27
callq 0x22ab0
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x160(%rsp), %rdi
movq 0x130(%rsp), %rsi
callq 0xad152
movq 0x158(%rsp), %rdi
movq 0x128(%rsp), %rsi
callq 0xad45a
movl 0x4(%rsp), %esi
movl 0x54(%rsp), %edx
movq %r14, %rdi
movl $0x1, %ecx
callq 0x8b9dc
cmpl $0x3, 0x1614(%r14)
jb 0x8edcb
movl $0x11, %edx
movq 0xe7203(%rip), %rdi     # 0x175f90
leaq 0x70fbb(%rip), %rsi     # 0xffd4f
callq 0x22ab0
movq 0xe71f0(%rip), %rcx     # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe71d2(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rsp), %rax
movq 0x38(%rax), %rax
movq (%rax), %rbx
callq 0x22070
movq %rax, %r13
movl (%rax), %ebp
movl $0x0, (%rax)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x22760
movsd %xmm0, 0x58(%rsp)
cmpq %rbx, 0x8(%rsp)
je 0x8fa33
movl (%r13), %eax
testl %eax, %eax
je 0x8ee18
cmpl $0x22, %eax
jne 0x8ee1c
jmp 0x8fa3f
movl %ebp, (%r13)
cmpl $0x3, 0x1614(%r14)
leaq 0x18(%rsp), %r15
leaq 0xc0(%rsp), %r13
jb 0x8ee87
movl $0x9, %edx
movq 0xe7151(%rip), %rdi     # 0x175f90
leaq 0x70f2d(%rip), %rsi     # 0xffd73
callq 0x22ab0
movq 0xe713e(%rip), %rdi     # 0x175f90
movsd 0x58(%rsp), %xmm0
callq 0x23060
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq %r14, %rdi
callq 0x967f0
cmpl $0x3, 0x1614(%r14)
jb 0x8ef16
movl $0x1b, %edx
movq 0xe70eb(%rip), %rdi     # 0x175f90
leaq 0x70eb5(%rip), %rsi     # 0xffd61
callq 0x22ab0
movq 0xe70d8(%rip), %rdi     # 0x175f90
movsd 0x58(%rsp), %xmm0
callq 0x23060
movq %rax, %rbx
movl $0x8, %edx
movq %rax, %rdi
leaq 0x70ea8(%rip), %rsi     # 0xffd7d
callq 0x22ab0
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x148(%rsp), %rax
movq %rax, 0x138(%rsp)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
addq %rsi, %rdx
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
callq 0x32180
movl 0x54(%rsp), %ecx
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x9683e
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
leaq 0x20(%rsp), %rdx
movq %rdx, 0x10(%rsp)
movq 0x30(%rsp), %rax
leaq 0x40(%rsp), %rcx
cmpq %rcx, %rax
je 0x8ef8d
movq %rax, 0x10(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x20(%rsp)
jmp 0x8ef93
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq %rcx, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movq 0x190(%rsp), %rdi
movq %r12, %rsi
callq 0xb044a
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x8efdc
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8eff8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x8f01d
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x229c0
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movl 0x4(%rsp), %eax
movl %eax, 0x10(%rsp)
movq 0x188(%rsp), %rdi
movq %r12, %rsi
callq 0xaf774
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movl (%rsp), %eax
movl %eax, 0x10(%rsp)
movq 0x180(%rsp), %rdi
movq %r12, %rsi
callq 0xaf774
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movl (%rsp), %eax
movl %eax, 0x10(%rsp)
movq 0x178(%rsp), %rdi
movq %r12, %rsi
callq 0xaf774
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movl (%rsp), %eax
movl %eax, 0x10(%rsp)
movq 0x170(%rsp), %rdi
movq %r12, %rsi
callq 0xaf774
cmpl $0x3, 0x1614(%r14)
jb 0x8f11d
movl $0x32, %edx
movq 0xe6ed0(%rip), %rdi     # 0x175f90
leaq 0x70cbf(%rip), %rsi     # 0xffd86
callq 0x22ab0
movq 0x1c58(%r14), %rsi
movq 0xe6eb6(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movl $0x1d, %edx
movq %rax, %rdi
leaq 0x7039c(%rip), %rsi     # 0xff48d
callq 0x22ab0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xf0(%rsp), %rdi
leaq 0x6fdd6(%rip), %rsi     # 0xfef02
callq 0x22250
testl %eax, %eax
jne 0x8f14e
movl (%rsp), %edx
movq %r14, %rdi
leaq 0x80(%rsp), %rsi
movsd 0x58(%rsp), %xmm0
callq 0x8b3c2
movq 0xf0(%rsp), %rdi
leaq 0x9edbe(%rip), %rsi     # 0x12df1b
callq 0x22250
testl %eax, %eax
jne 0x8f17f
movl (%rsp), %edx
movq %r14, %rdi
leaq 0x80(%rsp), %rsi
movsd 0x58(%rsp), %xmm0
callq 0x8bfae
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x8f19c
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x229c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x8f1b8
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xa8(%rsp), %rcx
movq (%rcx), %rcx
movq 0x168(%rsp), %rdx
cmpq %rdx, %rcx
jne 0x8e145
cmpl $0x4, 0x1614(%r14)
jbe 0x8f27d
movq 0xe6da7(%rip), %rbx     # 0x175f90
leaq 0x70bc9(%rip), %rsi     # 0xffdb9
movl $0x3f, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe6d75(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xe6d61(%rip), %rdi     # 0x175f90
leaq 0x70bc3(%rip), %rsi     # 0xffdf9
movl $0x26, %edx
callq 0x22ab0
movq 0x1848(%r14), %rsi
movq 0xe6d42(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rdi
addq $0x18, %rdi
leaq 0x8(%rsp), %rsi
movl $0xe, (%rsi)
callq 0x696ce
movq %rdx, 0xa8(%rsp)
movq %rax, %rbx
cmpl $0x5, 0x1614(%r14)
jb 0x8f2ef
movq 0xe6ce0(%rip), %r15     # 0x175f90
leaq 0x70b69(%rip), %rsi     # 0xffe20
movl $0x3f, %edx
movq %r15, %rdi
callq 0x22ab0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe6cae(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
cmpq 0xa8(%rsp), %rbx
je 0x8f61d
leaq 0x1820(%r14), %rax
movq %rax, 0xf0(%rsp)
leaq 0x1828(%r14), %r12
leaq 0x1860(%r14), %r13
leaq 0x19d0(%r14), %rax
movq %rax, 0x58(%rsp)
movq 0xe6c63(%rip), %rbp     # 0x175f90
movl 0x34(%rbx), %edi
movl %edi, 0xd0(%rsp)
movq 0x15c8(%r14), %rsi
subq 0x15c0(%r14), %rsi
shrq $0x3, %rsi
callq 0xbf2b8
movl %eax, 0x4(%rsp)
movl 0xd0(%rsp), %edi
movq 0x15c8(%r14), %rsi
subq 0x15c0(%r14), %rsi
shrq $0x3, %rsi
callq 0xbf2ae
movl %eax, 0x54(%rsp)
movl 0xd0(%rsp), %esi
movq %r14, %rdi
callq 0x961b2
movq 0x1830(%r14), %rcx
movq %r12, %rax
testq %rcx, %rcx
je 0x8f3b3
movl 0xd0(%rsp), %edx
movq %r12, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setb %sil
cmovaeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x8f39c
movq %r12, %rcx
cmpq %r12, %rax
je 0x8f3cc
movl 0xd0(%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovbq %r12, %rax
movq %rax, %rcx
movq %rcx, 0x1850(%r14)
cmpl $0x5, 0x1614(%r14)
jb 0x8f42a
movl $0x2e, %edx
movq %rbp, %rdi
leaq 0x70a74(%rip), %rsi     # 0xffe60
callq 0x22ab0
movq 0x1848(%r14), %rsi
movq %rbp, %rdi
callq 0x22650
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x1850(%r14), %rsi
cmpq %r12, %rsi
je 0x8f92d
movq 0xf0(%rsp), %rdi
callq 0xb0368
cmpl $0x5, 0x1614(%r14)
jb 0x8f4de
movl $0x2f, %edx
movq %rbp, %rdi
leaq 0x70a5b(%rip), %rsi     # 0xffebf
callq 0x22ab0
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbp, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movl $0xa, %edx
movq %rbp, %rdi
leaq 0x70a4f(%rip), %rsi     # 0xffeef
callq 0x22ab0
movq 0x1848(%r14), %rsi
movq %rbp, %rdi
callq 0x22650
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x1868(%r14), %rcx
movq %r13, %rax
testq %rcx, %rcx
je 0x8f50e
movl 0xd0(%rsp), %edx
movq %r13, %rax
xorl %esi, %esi
cmpl %edx, 0x20(%rcx)
setb %sil
cmovaeq %rcx, %rax
movq 0x10(%rcx,%rsi,8), %rcx
testq %rcx, %rcx
jne 0x8f4f7
movq %r13, %rcx
cmpq %r13, %rax
je 0x8f527
movl 0xd0(%rsp), %ecx
cmpl 0x20(%rax), %ecx
cmovbq %r13, %rax
movq %rax, %rcx
movq %rcx, 0x1850(%r14)
cmpq %r13, %rcx
jne 0x8f987
movq 0x58(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xb01ce
leaq 0x210(%rsp), %rdi
movq %r14, %rsi
callq 0x96206
movq 0x210(%rsp), %rdi
testq %rdi, %rdi
je 0x8f576
movq 0x220(%rsp), %rsi
subq %rdi, %rsi
callq 0x229c0
movl $0x9, %edx
movq %rbp, %rdi
leaq 0x70930(%rip), %rsi     # 0xffeb5
callq 0x22ab0
movl 0x4(%rsp), %esi
movq %rbp, %rdi
callq 0x22650
movq %rax, %r15
movl $0xd, %edx
movq %rax, %rdi
leaq 0x6fe5e(%rip), %rsi     # 0xff406
callq 0x22ab0
movl 0xd0(%rsp), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
movl $0x10, %edx
movq %rax, %rdi
leaq 0x70976(%rip), %rsi     # 0xfff44
callq 0x22ab0
movl 0x13e8(%r14), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%rbx), %rbx
cmpq 0xa8(%rsp), %rbx
jne 0x8f32d
cmpl $0x4, 0x1614(%r14)
jbe 0x8f66d
movq 0xe6962(%rip), %rbx     # 0x175f90
leaq 0x70920(%rip), %rsi     # 0xfff55
movl $0x63, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe6930(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
cmpl $0x5, 0x1614(%r14)
jb 0x8f6bd
movq 0xe6912(%rip), %rbx     # 0x175f90
leaq 0x70934(%rip), %rsi     # 0xfffb9
movl $0x66, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe68e0(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rdi
addq $0x18, %rdi
leaq 0x8(%rsp), %rsi
movl $0xb, (%rsi)
callq 0x696ce
movq %rax, %rbx
cmpq %rdx, %rax
je 0x8f7b1
movq 0xa0(%rsp), %rax
leaq 0x1828(%rax), %r15
leaq 0x18(%rsp), %r14
leaq 0x60(%rsp), %r12
leaq 0x8(%rsp), %r13
movq %rdx, 0xa8(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
movq 0xa0(%rsp), %rax
movq 0x1838(%rax), %rbp
cmpq %r15, %rbp
je 0x8f768
movl 0x20(%rbp), %esi
movq %r13, %rdi
callq 0xc03b8
movq %r12, %rdi
movq %r13, %rsi
callq 0x6a77e
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x8f758
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbp, %rdi
callq 0x22ad0
movq %rax, %rbp
cmpq %r15, %rax
jne 0x8f72b
movq 0xa0(%rsp), %rax
movq (%rax), %rdi
movl 0x34(%rbx), %edx
subq $0x8, %rsp
xorl %esi, %esi
movl $0xc, %ecx
movl $0x1, %r8d
movq %r12, %r9
pushq $-0x1
callq 0x6bfb0
addq $0x10, %rsp
movq %r12, %rdi
callq 0x31a9e
movq (%rbx), %rbx
movq 0xa8(%rsp), %rdx
cmpq %rdx, %rbx
jne 0x8f706
movq 0xa0(%rsp), %r14
cmpl $0x4, 0x1614(%r14)
jbe 0x8f809
movq 0xe67c6(%rip), %rbx     # 0x175f90
leaq 0x7084f(%rip), %rsi     # 0x100020
movl $0x65, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe6794(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rdi
addq $0x18, %rdi
callq 0x68e70
cmpl $0x4, 0x1614(%r14)
jb 0x8f8cb
movq 0xe6766(%rip), %rdi     # 0x175f90
leaq 0x70855(%rip), %rsi     # 0x100086
movl $0x1e, %edx
callq 0x22ab0
movq 0xe674e(%rip), %rdi     # 0x175f90
leaq 0x7085c(%rip), %rsi     # 0x1000a5
movl $0x21, %edx
callq 0x22ab0
movq 0xf8(%rsp), %rax
movq 0x8(%rax), %rsi
subq (%rax), %rsi
sarq $0x2, %rsi
leaq 0x8(%rsp), %rdi
callq 0xc04b6
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0xe670f(%rip), %rdi     # 0x175f90
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8f8cb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rax
addq $0x228, %rsp            # imm = 0x228
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x62e6f(%rip), %rdi     # 0xf275b
callq 0x225a0
leaq 0x62e63(%rip), %rdi     # 0xf275b
callq 0x22e40
leaq 0x62e57(%rip), %rdi     # 0xf275b
callq 0x225a0
leaq 0x62e4b(%rip), %rdi     # 0xf275b
callq 0x225a0
leaq 0x62e3f(%rip), %rdi     # 0xf275b
callq 0x22e40
leaq 0x62e33(%rip), %rdi     # 0xf275b
callq 0x22e40
movl 0x4(%rsp), %esi
leaq 0xb0(%rsp), %rdi
callq 0xc03b8
leaq 0x7054a(%rip), %rcx     # 0xffe8f
leaq 0xb0(%rsp), %rdi
movl $0x20, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x90(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fa4b
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x8fa5e
movl 0x4(%rsp), %esi
leaq 0x80(%rsp), %rdi
callq 0xc03b8
leaq 0x7055b(%rip), %rcx     # 0xffefa
leaq 0x80(%rsp), %rdi
movl $0x49, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x40(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fab1
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x8fabe
movl (%rsp), %esi
leaq 0x30(%rsp), %rdi
callq 0xc03b8
leaq 0x701be(%rip), %rcx     # 0xffbb0
leaq 0x30(%rsp), %rdi
movl $0x23, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x70(%rsp), %rcx
movq %rcx, 0x60(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fb0e
movups (%rcx), %xmm0
leaq 0x70(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x8fb1b
leaq 0x62d21(%rip), %rdi     # 0xf275b
callq 0x225a0
leaq 0x62d15(%rip), %rdi     # 0xf275b
callq 0x22e40
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
movq 0x8(%rax), %rdx
leaq 0x80(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x7042c(%rip), %rsi     # 0xffeb0
callq 0x233b0
leaq 0x40(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fb70
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x8fb7d
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
leaq 0x30(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x703cf(%rip), %rsi     # 0xffeb0
callq 0x233b0
leaq 0x70(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fc0e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x8fc1b
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq 0x8(%rax), %rdx
leaq 0x60(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x70096(%rip), %rsi     # 0xffbd4
callq 0x233b0
leaq 0x18(%rsp), %rcx
movq %rcx, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fcac
movups (%rcx), %xmm0
leaq 0x18(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x8fcb9
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xd0(%rsp), %esi
leaq 0x100(%rsp), %rdi
callq 0xc03b8
movq 0x30(%rsp), %rcx
movq 0x38(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x8fbce
movq 0x40(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8fbf7
leaq 0x110(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8fbee
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8fe62
movq 0x100(%rsp), %rsi
leaq 0x30(%rsp), %rdi
callq 0x222b0
jmp 0x8fe73
movq %rdx, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x68(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xd0(%rsp), %esi
leaq 0xb0(%rsp), %rdi
callq 0xc03b8
movq 0x60(%rsp), %rcx
movq 0x68(%rsp), %r8
movq 0xb8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x8fc6c
movq 0x70(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8fc95
leaq 0xc0(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8fc8c
movq 0xc0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8fef5
movq 0xb0(%rsp), %rsi
leaq 0x60(%rsp), %rdi
callq 0x222b0
jmp 0x8ff06
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x8fced
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8fd09
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xa0(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x8fe27
movq 0xe626b(%rip), %rdi     # 0x175f90
leaq 0x6fec4(%rip), %rsi     # 0xffbf0
movl $0x1e, %edx
callq 0x22ab0
movq 0xa0(%rsp), %rax
movq 0x1848(%rax), %rsi
movq 0xe6244(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xe620e(%rip), %rbx     # 0x175f90
leaq 0x6fe86(%rip), %rsi     # 0xffc0f
movl $0x22, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe61dc(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa0(%rsp), %rax
movq 0x1838(%rax), %rbx
movq 0x120(%rsp), %r14
cmpq %r14, %rbx
jne 0x900e9
movq 0xe61a8(%rip), %rbx     # 0x175f90
leaq 0x6fe43(%rip), %rsi     # 0xffc32
movl $0x20, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0xe6176(%rip), %rdi     # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x200(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1f0(%rsp), %rdi
callq 0x32180
leaq 0x1f0(%rsp), %rsi
movq 0xa0(%rsp), %rdi
callq 0x78b66
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x70(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
jne 0x8fe90
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
jmp 0x8fe9d
movq %rsi, 0x60(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x70(%rsp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x68(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x6fd13(%rip), %rsi     # 0xffbd4
leaq 0x60(%rsp), %rdi
callq 0x233b0
leaq 0x18(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8fff8
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x90005
leaq 0xb0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
jne 0x8ff23
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
jmp 0x8ff30
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ff6e
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0x8ff85
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x8ff9c
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ffbd
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1c0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1b0(%rsp), %rdi
callq 0x32180
leaq 0x1b0(%rsp), %rsi
movq 0xa0(%rsp), %rdi
callq 0x78b66
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x90038
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x90059
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
cmpq %r15, %rdi
je 0x90070
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x9008d
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x900ae
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1e0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1d0(%rsp), %rdi
callq 0x32180
leaq 0x1d0(%rsp), %rsi
movq 0xa0(%rsp), %rdi
callq 0x78b66
movq 0xe5ea0(%rip), %r15     # 0x175f90
leaq 0x6952a(%rip), %r12     # 0xf9621
movl $0x7, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x22ab0
movl 0x20(%rbx), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r13, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq %rbx, %rdi
callq 0x22ad0
movq %rax, %rbx
cmpq %r14, %rax
jne 0x900f7
jmp 0x8fde1
jmp 0x9029d
movq %rax, %rbx
movq 0x1d0(%rsp), %rdi
cmpq %r14, %rdi
je 0x9017b
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x9017b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
jne 0x90338
jmp 0x905ed
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x90326
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90326
jmp 0x90323
movq %rax, %rbx
leaq 0x70(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9022e
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x9022e
movq %rax, %rbx
movq 0x1f0(%rsp), %rdi
cmpq %r14, %rdi
je 0x902a0
movq 0x200(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x902a0
movq %rax, %rbx
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x90268
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90268
movq %rax, %rbx
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x90284
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90284
jmp 0x9059c
jmp 0x9059c
jmp 0x9059c
jmp 0x9059c
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0x902da
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x902da
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %r15, %rdi
je 0x902fd
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x902fd
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
jmp 0x9032f
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x90367
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90367
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x90387
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90387
movq %rax, %rbx
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x903ac
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x903ac
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x905ed
movq 0x18(%rsp), %rsi
jmp 0x905e5
jmp 0x9059c
jmp 0x9059c
jmp 0x903dd
jmp 0x903fe
jmp 0x903d3
jmp 0x903d8
jmp 0x903f9
jmp 0x90499
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x905ed
movq 0x40(%rsp), %rsi
jmp 0x905e5
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x905ed
movq 0x90(%rsp), %rsi
jmp 0x905e5
movq %rax, %rbx
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x905ed
movq 0xc0(%rsp), %rsi
jmp 0x905e5
jmp 0x9059c
movq %rax, %rbx
jmp 0x90426
movq %rax, %rbx
jmp 0x9044b
movq %rax, %rbx
movq 0x30(%rsp), %rdi
cmpq %r14, %rdi
je 0x90401
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x90401
movq %rax, %rbx
jmp 0x90470
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x90426
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x9044b
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x90470
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x905d1
movq 0x110(%rsp), %rsi
incq %rsi
jmp 0x905cc
movq %rax, %rbx
jmp 0x905d1
jmp 0x9059c
jmp 0x9059c
jmp 0x9059c
jmp 0x9059c
jmp 0x905b1
movq %rax, %rbx
jmp 0x904fa
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x904de
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x904fa
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x138(%rsp), %rdi
leaq 0x148(%rsp), %rax
cmpq %rax, %rdi
je 0x905b4
movq 0x148(%rsp), %rsi
jmp 0x90565
jmp 0x905b1
jmp 0x905b1
jmp 0x905b1
jmp 0x905b1
jmp 0x9059c
jmp 0x9056f
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x905b4
movl %ebp, (%r13)
jmp 0x905b4
jmp 0x905b1
jmp 0x905b1
jmp 0x905b1
jmp 0x905a1
jmp 0x905a1
jmp 0x905b1
jmp 0x90553
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x905b4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x905b4
movq %rax, %rbx
jmp 0x9058e
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x9058e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x60(%rsp), %rdi
callq 0x31a9e
jmp 0x905ed
jmp 0x9059c
movq %rax, %rbx
jmp 0x905ed
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x905b4
movl %r15d, (%r13)
jmp 0x905b4
movq %rax, %rbx
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x905d1
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x229c0
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x905ed
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x90609
movq 0x10(%rax), %rsi
subq %rdi, %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop