// File: 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
movq %rsp, %rbp
subq $0xaa0, %rsp            # imm = 0xAA0
movq %rdi, -0x6f0(%rbp)
movq %rdi, %rax
movq %rax, -0x6e8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x6e0(%rbp)
movl $0x0, -0x1c(%rbp)
movb $0x0, -0x1d(%rbp)
callq 0xb2010
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x101523
movq 0x1d3a6a(%rip), %rdi    # 0x2d4f50
leaq 0xe126c(%rip), %rsi     # 0x1e2759
callq 0x2ff50
movq %rax, -0x6f8(%rbp)
jmp 0x1014fb
movq -0x6f8(%rbp), %rdi
movq 0x1d3abf(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101510
jmp 0x101523
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x103827
movq -0x6e0(%rbp), %rax
movq (%rax), %rdi
movq %rdi, %r9
addq $0x18, %r9
movq %rsp, %rax
movl $0xffffffff, 0x8(%rax)  # imm = 0xFFFFFFFF
movl $0x1, (%rax)
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
movl %ecx, %esi
callq 0xcefc0
movl %eax, -0x6fc(%rbp)
jmp 0x101560
movl -0x6fc(%rbp), %eax
movl %eax, -0x30(%rbp)
cmpl $0x1, -0x30(%rbp)
jl 0x103746
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x1015ea
movq 0x1d39c6(%rip), %rdi    # 0x2d4f50
leaq 0xdcf11(%rip), %rsi     # 0x1de4a2
callq 0x2ff50
movq %rax, -0x708(%rbp)
jmp 0x10159f
movq -0x708(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x2f800
movq %rax, -0x710(%rbp)
jmp 0x1015b7
movq -0x710(%rbp), %rdi
leaq 0x103c4e(%rip), %rsi    # 0x205213
callq 0x2ff50
movq %rax, -0x718(%rbp)
jmp 0x1015d3
movq -0x718(%rbp), %rdi
movq 0x1d39e7(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1015e8
jmp 0x1015ea
leaq -0x40(%rbp), %rdi
callq 0xb3700
jmp 0x1015f5
movq -0x6e0(%rbp), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0xd, -0x54(%rbp)
leaq -0x54(%rbp), %rsi
callq 0xb3750
movq %rdx, -0x728(%rbp)
movq %rax, -0x720(%rbp)
jmp 0x101623
movq -0x728(%rbp), %rax
movq -0x720(%rbp), %rcx
movq %rcx, -0x50(%rbp)
movq %rax, -0x48(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xb3790
movq -0x40(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x40(%rbp), %rsi
addq $0x8, %rsi
leaq -0x60(%rbp), %rdi
callq 0xb37c0
testb $0x1, %al
jne 0x101668
jmp 0x102b75
leaq -0x60(%rbp), %rdi
callq 0xb3190
movq -0x6e0(%rbp), %rdi
movl 0x2c(%rax), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x730(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x730(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movl %eax, -0x72c(%rbp)
jmp 0x1016a8
movq -0x6e0(%rbp), %rdi
movl -0x72c(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x64(%rbp), %eax
movl %eax, -0x738(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x738(%rbp), %edi
movl %eax, %esi
callq 0x17d3d0
movl %eax, -0x734(%rbp)
jmp 0x1016e2
movq -0x6e0(%rbp), %rdi
movl -0x734(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x64(%rbp), %esi
callq 0x109e60
jmp 0x1016fc
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x1017df
movq 0x1d3839(%rip), %rdi    # 0x2d4f50
leaq 0xe104d(%rip), %rsi     # 0x1e276b
callq 0x2ff50
movq %rax, -0x740(%rbp)
jmp 0x10172c
movq -0x740(%rbp), %rdi
movl -0x64(%rbp), %esi
callq 0x30640
movq %rax, -0x748(%rbp)
jmp 0x101744
movq -0x748(%rbp), %rdi
leaq 0xdf94e(%rip), %rsi     # 0x1e10a0
callq 0x2ff50
movq %rax, -0x750(%rbp)
jmp 0x101760
movq -0x750(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, -0x758(%rbp)
jmp 0x101778
movq -0x758(%rbp), %rdi
leaq 0xe2ba6(%rip), %rsi     # 0x1e432c
callq 0x2ff50
movq %rax, -0x760(%rbp)
jmp 0x101794
movq -0x760(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x30640
movq %rax, -0x768(%rbp)
jmp 0x1017ac
movq -0x768(%rbp), %rdi
leaq 0xe0fbf(%rip), %rsi     # 0x1e2779
callq 0x2ff50
movq %rax, -0x770(%rbp)
jmp 0x1017c8
movq -0x770(%rbp), %rdi
movq 0x1d37f2(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1017dd
jmp 0x1017df
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
leaq -0x64(%rbp), %rsi
callq 0x123530
movq %rax, -0x778(%rbp)
jmp 0x1017ff
movq -0x6e0(%rbp), %rdi
movq -0x778(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, 0x1850(%rdi)
movq %rdi, %rax
addq $0x1850, %rax           # imm = 0x1850
movq %rax, -0x780(%rbp)
addq $0x1820, %rdi           # imm = 0x1820
callq 0x1233c0
movq -0x780(%rbp), %rdi
movq %rax, -0x78(%rbp)
leaq -0x78(%rbp), %rsi
callq 0x123570
testb $0x1, %al
jne 0x101855
jmp 0x101aff
movl -0x64(%rbp), %esi
leaq -0xd8(%rbp), %rdi
callq 0x17e460
jmp 0x101866
leaq 0xe0f22(%rip), %rsi     # 0x1e278f
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rdx
callq 0x8e0f0
jmp 0x101882
leaq 0xe0f2a(%rip), %rdx     # 0x1e27b3
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x441f0
jmp 0x10189e
leaq -0xb8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x101a92
movq 0x1d367f(%rip), %rdi    # 0x2d4f50
leaq 0xe0ef7(%rip), %rsi     # 0x1e27cf
callq 0x2ff50
movq %rax, -0x788(%rbp)
jmp 0x1018e6
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123340
movq -0x788(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x790(%rbp)
jmp 0x101911
movq -0x790(%rbp), %rdi
movq 0x1d36a9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101926
movq 0x1d3623(%rip), %rdi    # 0x2d4f50
leaq 0xe0eba(%rip), %rsi     # 0x1e27ee
callq 0x2ff50
movq %rax, -0x798(%rbp)
jmp 0x101942
movq -0x798(%rbp), %rdi
movq 0x1d3678(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101957
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123360
movq %rax, -0xe0(%rbp)
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x1233c0
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x123390
testb $0x1, %al
jne 0x1019a7
jmp 0x101a5f
movq 0x1d35a2(%rip), %rdi    # 0x2d4f50
leaq 0xda4c7(%rip), %rsi     # 0x1dbe7c
callq 0x2ff50
movq %rax, -0x7a0(%rbp)
jmp 0x1019c3
leaq -0xe0(%rbp), %rdi
callq 0x1233f0
movq -0x7a0(%rbp), %rdi
movl (%rax), %esi
callq 0x30640
movq %rax, -0x7a8(%rbp)
jmp 0x1019e6
movq -0x7a8(%rbp), %rdi
movq 0x1d35d4(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1019fb
jmp 0x1019fd
leaq -0xe0(%rbp), %rdi
xorl %esi, %esi
callq 0x1235a0
movq %rax, -0xf0(%rbp)
jmp 0x101971
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101aee
movq 0x1d34ea(%rip), %rdi    # 0x2d4f50
leaq 0xe0da4(%rip), %rsi     # 0x1e2811
callq 0x2ff50
movq %rax, -0x7b0(%rbp)
jmp 0x101a7b
movq -0x7b0(%rbp), %rdi
movq 0x1d353f(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101a90
jmp 0x101a92
leaq -0x110(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x2f300
jmp 0x101aa7
movq -0x6e0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xeada0
jmp 0x101abc
leaq -0x110(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
jmp 0x101aff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x101b76
movq 0x1d343a(%rip), %rdi    # 0x2d4f50
leaq 0xe0d15(%rip), %rsi     # 0x1e2832
callq 0x2ff50
movq %rax, -0x7b8(%rbp)
jmp 0x101b2b
movq -0x7b8(%rbp), %rdi
movl -0x64(%rbp), %esi
callq 0x30640
movq %rax, -0x7c0(%rbp)
jmp 0x101b43
movq -0x7c0(%rbp), %rdi
leaq 0xe0cfe(%rip), %rsi     # 0x1e284f
callq 0x2ff50
movq %rax, -0x7c8(%rbp)
jmp 0x101b5f
movq -0x7c8(%rbp), %rdi
movq 0x1d345b(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101b74
jmp 0x101b76
movq -0x6e0(%rbp), %rax
movq %rax, %rdi
addq $0x1820, %rdi           # imm = 0x1820
movq 0x1850(%rax), %rax
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rsi
callq 0x1235e0
movq %rax, -0x7d0(%rbp)
jmp 0x101baa
movq -0x6e0(%rbp), %rdi
movq -0x7d0(%rbp), %rax
movq %rax, -0x120(%rbp)
addq $0x1890, %rdi           # imm = 0x1890
leaq -0x64(%rbp), %rsi
callq 0x123270
movb %dl, -0x7d9(%rbp)
movq %rax, -0x7d8(%rbp)
jmp 0x101bde
movq -0x6e0(%rbp), %rdi
movb -0x7d9(%rbp), %al
movq -0x7d8(%rbp), %rcx
movq %rcx, -0x130(%rbp)
movb %al, -0x128(%rbp)
addq $0x1950, %rdi           # imm = 0x1950
leaq -0x14(%rbp), %rsi
callq 0x1230c0
movq %rax, -0x7e8(%rbp)
jmp 0x101c18
movq -0x7e8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x123620
movq %rax, -0x7f0(%rbp)
jmp 0x101c31
movq -0x6e0(%rbp), %rax
movq -0x7f0(%rbp), %rcx
movl (%rcx), %edx
addl $0x1, %edx
movl %edx, (%rcx)
cmpl $0x5, 0x1614(%rax)
jb 0x101cf8
movq 0x1d32f6(%rip), %rdi    # 0x2d4f50
leaq 0xe0c22(%rip), %rsi     # 0x1e2883
callq 0x2ff50
movq %rax, -0x7f8(%rbp)
jmp 0x101c6f
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123340
movq -0x7f8(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x800(%rbp)
jmp 0x101c9a
movq -0x800(%rbp), %rdi
leaq 0xe0bf7(%rip), %rsi     # 0x1e289f
callq 0x2ff50
movq %rax, -0x808(%rbp)
jmp 0x101cb6
movq -0x6e0(%rbp), %rdi
addq $0x1890, %rdi           # imm = 0x1890
callq 0x123340
movq -0x808(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x810(%rbp)
jmp 0x101ce1
movq -0x810(%rbp), %rdi
movq 0x1d32d9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101cf6
jmp 0x101cf8
movq -0x6e0(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl $0x1, %ecx
callq 0xfeea0
jmp 0x101d11
movq -0x6e0(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x109ef0
jmp 0x101d26
movq -0x6f0(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x122bc0
leaq -0x148(%rbp), %rdi
callq 0xb2400
movq -0x6f0(%rbp), %rdi
callq 0xb46f0
movq %rax, %rcx
movq -0x6e0(%rbp), %rax
movl %ecx, -0x1c(%rbp)
movl 0x1d84(%rax), %ecx
addl -0x1c(%rbp), %ecx
movl %ecx, 0x1d84(%rax)
cmpl $0x3, 0x1614(%rax)
jne 0x101e03
movq 0x1d31cf(%rip), %rdi    # 0x2d4f50
leaq 0xe0b27(%rip), %rsi     # 0x1e28af
callq 0x2ff50
movq %rax, -0x818(%rbp)
jmp 0x101d96
movq -0x818(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x30640
movq %rax, -0x820(%rbp)
jmp 0x101dae
movq -0x820(%rbp), %rdi
leaq 0xe0b15(%rip), %rsi     # 0x1e28d1
callq 0x2ff50
movq %rax, -0x828(%rbp)
jmp 0x101dca
movq -0x828(%rbp), %rdi
movq -0x6e0(%rbp), %rax
movl 0x1d84(%rax), %esi
callq 0x30640
movq %rax, -0x830(%rbp)
jmp 0x101dec
movq -0x830(%rbp), %rdi
movq 0x1d31ce(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x101e01
jmp 0x101e03
movq -0x6e0(%rbp), %rax
movl 0x13e8(%rax), %eax
movl %eax, -0x14c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x2f880
movq -0x6e0(%rbp), %rax
movb 0x1618(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
je 0x101e54
movq -0x6e0(%rbp), %rax
movb 0x1618(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x1021bf
movq -0x6e0(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xd2575(%rip), %rsi     # 0x1d43de
callq 0x44930
movb %al, -0x831(%rbp)
jmp 0x101e76
movb -0x831(%rbp), %al
testb $0x1, %al
jne 0x101e85
jmp 0x102010
movl -0x14c(%rbp), %esi
leaq -0x210(%rbp), %rdi
callq 0x17e460
jmp 0x101e99
leaq 0xe0a41(%rip), %rsi     # 0x1e28e1
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rdx
callq 0x8e0f0
jmp 0x101eb5
leaq 0xe0a29(%rip), %rdx     # 0x1e28e5
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x441f0
jmp 0x101ed1
movl -0x64(%rbp), %esi
leaq -0x230(%rbp), %rdi
callq 0x17e460
jmp 0x101ee2
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
leaq -0x230(%rbp), %rdx
callq 0x9c7d0
jmp 0x101efe
leaq 0xe21ca(%rip), %rdx     # 0x1e40cf
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x441f0
jmp 0x101f1a
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x2fd80
leaq -0x190(%rbp), %rdi
callq 0x311e8
leaq -0x1b0(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
leaq -0x210(%rbp), %rdi
callq 0x311e8
jmp 0x1021bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102b64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101fff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101ff3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x101fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
leaq -0x210(%rbp), %rdi
callq 0x311e8
jmp 0x102b64
movq -0x6e0(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xdfa1d(%rip), %rsi     # 0x1e1a42
callq 0x44930
movb %al, -0x832(%rbp)
jmp 0x102032
movb -0x832(%rbp), %al
testb $0x1, %al
jne 0x102041
jmp 0x1021bb
movl -0x14c(%rbp), %esi
leaq -0x2d0(%rbp), %rdi
callq 0x17e460
jmp 0x102055
leaq 0xe088e(%rip), %rsi     # 0x1e28ea
leaq -0x2b0(%rbp), %rdi
leaq -0x2d0(%rbp), %rdx
callq 0x8e0f0
jmp 0x102071
leaq 0xe0878(%rip), %rdx     # 0x1e28f0
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x441f0
jmp 0x10208d
movl -0x64(%rbp), %esi
leaq -0x2f0(%rbp), %rdi
callq 0x17e460
jmp 0x10209e
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
callq 0x9c7d0
jmp 0x1020ba
leaq 0xe200e(%rip), %rdx     # 0x1e40cf
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x441f0
jmp 0x1020d6
leaq -0x170(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x2fd80
leaq -0x250(%rbp), %rdi
callq 0x311e8
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x2f0(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
leaq -0x2d0(%rbp), %rdi
callq 0x311e8
jmp 0x1021bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x1021aa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10219e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102192
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102186
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x2f0(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
leaq -0x2d0(%rbp), %rdi
callq 0x311e8
jmp 0x102b64
jmp 0x1021bd
jmp 0x1021bf
leaq -0x308(%rbp), %rdi
callq 0xb2580
movl $0x0, -0x30c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
callq 0x458f0
movq %rax, -0x320(%rbp)
leaq -0x320(%rbp), %rdi
movl $0x1, %esi
callq 0x8b080
movq %rax, -0x318(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
callq 0x45920
movq %rax, -0x328(%rbp)
leaq -0x318(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x45860
testb $0x1, %al
jne 0x102249
jmp 0x10253c
leaq -0x318(%rbp), %rdi
callq 0x8aed0
movq %rax, %rsi
leaq 0xe1e70(%rip), %rdx     # 0x1e40cf
leaq -0x348(%rbp), %rdi
callq 0x447b0
jmp 0x10226d
leaq -0x170(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2f1e0
jmp 0x102282
leaq -0x348(%rbp), %rdi
callq 0x311e8
leaq -0x318(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44830
movsd %xmm0, -0x840(%rbp)
jmp 0x1022b0
movsd -0x840(%rbp), %xmm0
movsd %xmm0, -0x350(%rbp)
leaq -0x308(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0xb2630
jmp 0x1022d5
movq -0x6e0(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xd20f4(%rip), %rsi     # 0x1d43de
callq 0x44930
movb %al, -0x841(%rbp)
jmp 0x1022f7
movb -0x841(%rbp), %al
testb $0x1, %al
jne 0x102306
jmp 0x10251c
leaq -0x318(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44830
movsd %xmm0, -0x850(%rbp)
jmp 0x102328
movq -0x6e0(%rbp), %rdi
addq $0x1460, %rdi           # imm = 0x1460
leaq -0x14(%rbp), %rsi
callq 0x122e80
movq %rax, -0x858(%rbp)
jmp 0x102348
movq -0x858(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x122da0
movq %rax, -0x860(%rbp)
jmp 0x102361
movq -0x860(%rbp), %rdi
movslq -0x30c(%rbp), %rsi
callq 0xb2610
movsd -0x850(%rbp), %xmm0
movq %rax, %rcx
movq -0x6e0(%rbp), %rax
movsd %xmm0, (%rcx)
cmpl $0x3, 0x1614(%rax)
jb 0x1024bb
movq 0x1d2bb2(%rip), %rdi    # 0x2d4f50
leaq 0xe0557(%rip), %rsi     # 0x1e28fc
callq 0x2ff50
movq %rax, -0x868(%rbp)
jmp 0x1023b3
movq -0x868(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, -0x870(%rbp)
jmp 0x1023cb
movq -0x870(%rbp), %rdi
leaq 0xd9bc0(%rip), %rsi     # 0x1dbf99
callq 0x2ff50
movq %rax, -0x878(%rbp)
jmp 0x1023e7
movq -0x878(%rbp), %rdi
movl -0x18(%rbp), %esi
callq 0x30640
movq %rax, -0x880(%rbp)
jmp 0x1023ff
movq -0x880(%rbp), %rdi
leaq 0xd93f7(%rip), %rsi     # 0x1db804
callq 0x2ff50
movq %rax, -0x888(%rbp)
jmp 0x10241b
movq -0x888(%rbp), %rdi
movl -0x30c(%rbp), %esi
callq 0x2f800
movq %rax, -0x890(%rbp)
jmp 0x102436
movq -0x890(%rbp), %rdi
leaq 0xe04bd(%rip), %rsi     # 0x1e2901
callq 0x2ff50
movq %rax, -0x898(%rbp)
jmp 0x102452
leaq -0x318(%rbp), %rdi
callq 0x8aed0
movq -0x898(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, -0x8a0(%rbp)
jmp 0x102476
movq -0x8a0(%rbp), %rdi
movq 0x1d2b44(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x10248b
jmp 0x1024bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102b58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x311e8
jmp 0x102b58
leaq -0x318(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44830
movsd %xmm0, -0x8a8(%rbp)
jmp 0x1024dd
movq -0x6e0(%rbp), %rdi
addq $0x1400, %rdi           # imm = 0x1400
leaq -0x14(%rbp), %rsi
callq 0x122da0
movq %rax, -0x8b0(%rbp)
jmp 0x1024fd
movq -0x8b0(%rbp), %rdi
movslq -0x30c(%rbp), %rsi
callq 0xb2610
movsd -0x8a8(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x30c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30c(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x8aef0
jmp 0x10220d
movq -0x6e0(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x1025f8
movl -0x30c(%rbp), %esi
movq 0x1d29f3(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0x8b8(%rbp)
jmp 0x10256b
movq -0x8b8(%rbp), %rdi
leaq 0xe038d(%rip), %rsi     # 0x1e2906
callq 0x2ff50
movq %rax, -0x8c0(%rbp)
jmp 0x102587
movq -0x8c0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x2f780
movq %rax, -0x8c8(%rbp)
jmp 0x1025a3
movq -0x8c8(%rbp), %rdi
movq 0x1d2a17(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1025b8
movq -0x6e0(%rbp), %rdi
movq %rdi, %rsi
addq $0x1460, %rsi           # imm = 0x1460
addq $0x1490, %rdi           # imm = 0x1490
callq 0x123700
jmp 0x1025d7
movq -0x6e0(%rbp), %rdi
movq %rdi, %rsi
addq $0x1400, %rsi           # imm = 0x1400
addq $0x1430, %rdi           # imm = 0x1430
callq 0x123730
jmp 0x1025f6
jmp 0x1025f8
movq -0x6e0(%rbp), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
movl $0x1, %ecx
callq 0xfeea0
jmp 0x102611
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x102654
movq 0x1d2928(%rip), %rdi    # 0x2d4f50
leaq 0xe02ff(%rip), %rsi     # 0x1e292e
callq 0x2ff50
movq %rax, -0x8d0(%rbp)
jmp 0x10263d
movq -0x8d0(%rbp), %rdi
movq 0x1d297d(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102652
jmp 0x102654
leaq -0x60(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x30, %rdi
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x8e0(%rbp)
callq 0x449e0
movq -0x8e0(%rbp), %rsi
movq %rax, %rdi
callq 0x44830
movsd %xmm0, -0x8d8(%rbp)
jmp 0x10268d
movq -0x6e0(%rbp), %rax
movsd -0x8d8(%rbp), %xmm0
movsd %xmm0, -0x358(%rbp)
cmpl $0x3, 0x1614(%rax)
jb 0x1026fd
movq 0x1d289c(%rip), %rdi    # 0x2d4f50
leaq 0xe0297(%rip), %rsi     # 0x1e2952
callq 0x2ff50
movq %rax, -0x8e8(%rbp)
jmp 0x1026c9
movq -0x8e8(%rbp), %rdi
movsd -0x358(%rbp), %xmm0
callq 0x30710
movq %rax, -0x8f0(%rbp)
jmp 0x1026e6
movq -0x8f0(%rbp), %rdi
movq 0x1d28d4(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1026fb
jmp 0x1026fd
movq -0x6e0(%rbp), %rdi
callq 0x10a780
jmp 0x10270b
movq -0x6e0(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x1027a7
movq 0x1d282a(%rip), %rdi    # 0x2d4f50
leaq 0xe0213(%rip), %rsi     # 0x1e2940
callq 0x2ff50
movq %rax, -0x8f8(%rbp)
jmp 0x10273b
movq -0x8f8(%rbp), %rdi
movsd -0x358(%rbp), %xmm0
callq 0x30710
movq %rax, -0x900(%rbp)
jmp 0x102758
movq -0x900(%rbp), %rdi
leaq 0xe01f6(%rip), %rsi     # 0x1e295c
callq 0x2ff50
movq %rax, -0x908(%rbp)
jmp 0x102774
movq -0x908(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x2f780
movq %rax, -0x910(%rbp)
jmp 0x102790
movq -0x910(%rbp), %rdi
movq 0x1d282a(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1027a5
jmp 0x1027a7
movq -0x6e0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x918(%rbp)
leaq -0x3c0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x2f300
jmp 0x1027ce
movq -0x6e0(%rbp), %rsi
movl -0x18(%rbp), %ecx
leaq -0x3a0(%rbp), %rdi
leaq -0x3c0(%rbp), %rdx
callq 0x10a7d0
jmp 0x1027ed
leaq -0x380(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x3a0(%rbp), %rdx
callq 0x123790
jmp 0x102809
movq -0x918(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x123760
movq %rax, -0x920(%rbp)
jmp 0x102825
movq -0x920(%rbp), %rax
movq %rax, -0x3c8(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x1237d0
leaq -0x3a0(%rbp), %rdi
callq 0x311e8
leaq -0x3c0(%rbp), %rdi
callq 0x311e8
movq -0x6e0(%rbp), %rax
addq $0x1bd0, %rax           # imm = 0x1BD0
movq %rax, -0x928(%rbp)
leaq -0x3d8(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x14(%rbp), %rdx
callq 0x123240
jmp 0x102884
movq -0x928(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x122340
movq %rax, -0x930(%rbp)
jmp 0x1028a0
movq -0x6e0(%rbp), %rax
movq -0x930(%rbp), %rcx
movq %rcx, -0x3e0(%rbp)
addq $0x1c00, %rax           # imm = 0x1C00
movq %rax, -0x938(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x64(%rbp), %rdx
callq 0x123240
jmp 0x1028db
movq -0x938(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x122340
movq %rax, -0x940(%rbp)
jmp 0x1028f7
movq -0x6e0(%rbp), %rax
movq -0x940(%rbp), %rcx
movq %rcx, -0x3f8(%rbp)
addq $0x1c30, %rax           # imm = 0x1C30
movq %rax, -0x948(%rbp)
leaq -0x408(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x64(%rbp), %rdx
callq 0x123240
jmp 0x102932
movq -0x948(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x122340
movq %rax, -0x950(%rbp)
jmp 0x10294e
movq -0x6e0(%rbp), %rax
movq -0x950(%rbp), %rcx
movq %rcx, -0x410(%rbp)
addq $0x1c60, %rax           # imm = 0x1C60
movq %rax, -0x958(%rbp)
leaq -0x420(%rbp), %rdi
leaq -0x358(%rbp), %rsi
leaq -0x64(%rbp), %rdx
callq 0x123240
jmp 0x102989
movq -0x958(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x122340
movq %rax, -0x960(%rbp)
jmp 0x1029a5
movq -0x6e0(%rbp), %rax
movq -0x960(%rbp), %rcx
movq %rcx, -0x428(%rbp)
cmpl $0x3, 0x1614(%rax)
jb 0x102a92
movq 0x1d2582(%rip), %rdi    # 0x2d4f50
leaq 0xdff90(%rip), %rsi     # 0x1e2965
callq 0x2ff50
movq %rax, -0x968(%rbp)
jmp 0x1029e3
movq -0x6e0(%rbp), %rdi
addq $0x1c30, %rdi           # imm = 0x1C30
callq 0x122680
movq -0x968(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x970(%rbp)
jmp 0x102a0e
movq -0x970(%rbp), %rdi
leaq 0xdf5b1(%rip), %rsi     # 0x1e1fcd
callq 0x2ff50
movq %rax, -0x978(%rbp)
jmp 0x102a2a
movq -0x978(%rbp), %rdi
movq 0x1d2590(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102a3f
jmp 0x102a92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102a81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102a75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x1237d0
leaq -0x3a0(%rbp), %rdi
callq 0x311e8
leaq -0x3c0(%rbp), %rdi
callq 0x311e8
jmp 0x102b58
movq -0x6e0(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0xdef9b(%rip), %rsi     # 0x1e1a42
callq 0x44930
movb %al, -0x979(%rbp)
jmp 0x102ab4
movb -0x979(%rbp), %al
testb $0x1, %al
jne 0x102ac0
jmp 0x102ae2
movq -0x6e0(%rbp), %rdi
movl -0x64(%rbp), %edx
movsd -0x358(%rbp), %xmm0
leaq -0x308(%rbp), %rsi
callq 0xfe560
jmp 0x102ae0
jmp 0x102ae2
movq -0x6e0(%rbp), %rdi
addq $0x14e0, %rdi           # imm = 0x14E0
leaq 0x10ea04(%rip), %rsi    # 0x2114fb
callq 0x44930
movb %al, -0x97a(%rbp)
jmp 0x102b04
movb -0x97a(%rbp), %al
testb $0x1, %al
jne 0x102b10
jmp 0x102b32
movq -0x6e0(%rbp), %rdi
movl -0x64(%rbp), %edx
movsd -0x358(%rbp), %xmm0
leaq -0x308(%rbp), %rsi
callq 0xff550
jmp 0x102b30
jmp 0x102b32
leaq -0x308(%rbp), %rdi
callq 0xb2660
leaq -0x170(%rbp), %rdi
callq 0x311e8
leaq -0x60(%rbp), %rdi
callq 0xb37f0
jmp 0x10164e
leaq -0x308(%rbp), %rdi
callq 0xb2660
leaq -0x170(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq -0x6e0(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x102c18
movq 0x1d23c0(%rip), %rdi    # 0x2d4f50
leaq 0xdfe01(%rip), %rsi     # 0x1e2998
callq 0x2ff50
movq %rax, -0x988(%rbp)
jmp 0x102ba5
movq -0x988(%rbp), %rdi
movq 0x1d2415(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102bba
movq 0x1d238f(%rip), %rdi    # 0x2d4f50
leaq 0xdfe10(%rip), %rsi     # 0x1e29d8
callq 0x2ff50
movq %rax, -0x990(%rbp)
jmp 0x102bd6
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123340
movq -0x990(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x998(%rbp)
jmp 0x102c01
movq -0x998(%rbp), %rdi
movq 0x1d23b9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102c16
jmp 0x102c18
movq -0x6e0(%rbp), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0xe, -0x43c(%rbp)
leaq -0x43c(%rbp), %rsi
callq 0xb3750
movq %rdx, -0x9a8(%rbp)
movq %rax, -0x9a0(%rbp)
jmp 0x102c4c
movq -0x9a8(%rbp), %rax
movq -0x9a0(%rbp), %rcx
movq %rcx, -0x438(%rbp)
movq %rax, -0x430(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0xb3790
movq -0x6e0(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x102cbb
movq 0x1d22c1(%rip), %rdi    # 0x2d4f50
leaq 0xdfd69(%rip), %rsi     # 0x1e29ff
callq 0x2ff50
movq %rax, -0x9b0(%rbp)
jmp 0x102ca4
movq -0x9b0(%rbp), %rdi
movq 0x1d2316(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102cb9
jmp 0x102cbb
movq -0x40(%rbp), %rax
movq %rax, -0x448(%rbp)
leaq -0x40(%rbp), %rsi
addq $0x8, %rsi
leaq -0x448(%rbp), %rdi
callq 0xb37c0
testb $0x1, %al
jne 0x102ce3
jmp 0x103482
leaq -0x448(%rbp), %rdi
callq 0xb3190
movq -0x6e0(%rbp), %rdi
movl 0x2c(%rax), %eax
movl %eax, -0x44c(%rbp)
movl -0x44c(%rbp), %eax
movl %eax, -0x9b8(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x9b8(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movl %eax, -0x9b4(%rbp)
jmp 0x102d2c
movq -0x6e0(%rbp), %rdi
movl -0x9b4(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x44c(%rbp), %eax
movl %eax, -0x9c0(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x9c0(%rbp), %edi
movl %eax, %esi
callq 0x17d3d0
movl %eax, -0x9bc(%rbp)
jmp 0x102d69
movq -0x6e0(%rbp), %rdi
movl -0x9bc(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x44c(%rbp), %esi
callq 0x109e60
jmp 0x102d86
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
leaq -0x44c(%rbp), %rsi
callq 0x123530
movq %rax, -0x9c8(%rbp)
jmp 0x102da9
movq -0x6e0(%rbp), %rax
movq -0x9c8(%rbp), %rcx
movq %rcx, -0x458(%rbp)
movq -0x458(%rbp), %rcx
movq %rcx, 0x1850(%rax)
cmpl $0x5, 0x1614(%rax)
jb 0x102e33
movq 0x1d2174(%rip), %rdi    # 0x2d4f50
leaq 0xdfc5c(%rip), %rsi     # 0x1e2a3f
callq 0x2ff50
movq %rax, -0x9d0(%rbp)
jmp 0x102df1
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123340
movq -0x9d0(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x9d8(%rbp)
jmp 0x102e1c
movq -0x9d8(%rbp), %rdi
movq 0x1d219e(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x102e31
jmp 0x102e33
movq -0x6e0(%rbp), %rdi
movq %rdi, %rax
addq $0x1850, %rax           # imm = 0x1850
movq %rax, -0x9e0(%rbp)
addq $0x1820, %rdi           # imm = 0x1820
callq 0x1233c0
movq -0x9e0(%rbp), %rdi
movq %rax, -0x460(%rbp)
leaq -0x460(%rbp), %rsi
callq 0x123570
testb $0x1, %al
jne 0x102e79
jmp 0x10304d
movl -0x14(%rbp), %esi
leaq -0x500(%rbp), %rdi
callq 0x17e460
jmp 0x102e8a
leaq 0xdfbdd(%rip), %rsi     # 0x1e2a6e
leaq -0x4e0(%rbp), %rdi
leaq -0x500(%rbp), %rdx
callq 0x8e0f0
jmp 0x102ea6
leaq 0xdfbe2(%rip), %rdx     # 0x1e2a8f
leaq -0x4c0(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x441f0
jmp 0x102ec2
movl -0x44c(%rbp), %esi
leaq -0x520(%rbp), %rdi
callq 0x17e460
jmp 0x102ed6
leaq -0x4a0(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
leaq -0x520(%rbp), %rdx
callq 0x9c7d0
jmp 0x102ef2
leaq 0xdf8ba(%rip), %rdx     # 0x1e27b3
leaq -0x480(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x441f0
jmp 0x102f0e
leaq -0x4a0(%rbp), %rdi
callq 0x311e8
leaq -0x520(%rbp), %rdi
callq 0x311e8
leaq -0x4c0(%rbp), %rdi
callq 0x311e8
leaq -0x4e0(%rbp), %rdi
callq 0x311e8
leaq -0x500(%rbp), %rdi
callq 0x311e8
leaq -0x540(%rbp), %rdi
leaq -0x480(%rbp), %rsi
callq 0x2f300
jmp 0x102f5f
movq -0x6e0(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0xeada0
jmp 0x102f74
leaq -0x540(%rbp), %rdi
callq 0x311e8
leaq -0x480(%rbp), %rdi
callq 0x311e8
jmp 0x103134
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x103005
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102ff9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102fed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x102fe1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x311e8
leaq -0x520(%rbp), %rdi
callq 0x311e8
leaq -0x4c0(%rbp), %rdi
callq 0x311e8
leaq -0x4e0(%rbp), %rdi
callq 0x311e8
leaq -0x500(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10303c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x311e8
leaq -0x480(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq -0x6e0(%rbp), %rax
movq %rax, %rdi
addq $0x1820, %rdi           # imm = 0x1820
movq 0x1850(%rax), %rax
movq %rax, -0x548(%rbp)
movq -0x548(%rbp), %rsi
callq 0x1235e0
movq %rax, -0x9e8(%rbp)
jmp 0x103081
movq -0x6e0(%rbp), %rax
movq -0x9e8(%rbp), %rcx
movq %rcx, -0x550(%rbp)
cmpl $0x5, 0x1614(%rax)
jb 0x103132
movq 0x1d1ea6(%rip), %rdi    # 0x2d4f50
leaq 0xdf9ed(%rip), %rsi     # 0x1e2a9e
callq 0x2ff50
movq %rax, -0x9f0(%rbp)
jmp 0x1030bf
movq -0x9f0(%rbp), %rdi
movq 0x1d1efb(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1030d4
movq 0x1d1e75(%rip), %rdi    # 0x2d4f50
leaq 0xdf9ec(%rip), %rsi     # 0x1e2ace
callq 0x2ff50
movq %rax, -0x9f8(%rbp)
jmp 0x1030f0
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123340
movq -0x9f8(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0xa00(%rbp)
jmp 0x10311b
movq -0xa00(%rbp), %rdi
movq 0x1d1e9f(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x103130
jmp 0x103132
jmp 0x103134
movq -0x6e0(%rbp), %rdi
addq $0x1858, %rdi           # imm = 0x1858
leaq -0x44c(%rbp), %rsi
callq 0x123530
movq %rax, -0xa08(%rbp)
jmp 0x103157
movq -0x6e0(%rbp), %rdi
movq -0xa08(%rbp), %rax
movq %rax, -0x558(%rbp)
movq -0x558(%rbp), %rax
movq %rax, 0x1850(%rdi)
movq %rdi, %rax
addq $0x1850, %rax           # imm = 0x1850
movq %rax, -0xa10(%rbp)
addq $0x1858, %rdi           # imm = 0x1858
callq 0x1233c0
movq -0xa10(%rbp), %rdi
movq %rax, -0x560(%rbp)
leaq -0x560(%rbp), %rsi
callq 0x123570
testb $0x1, %al
jne 0x1031b6
jmp 0x1031fe
movq -0x6e0(%rbp), %rdi
addq $0x19d0, %rdi           # imm = 0x19D0
leaq -0x44c(%rbp), %rsi
callq 0x123270
movb %dl, -0xa19(%rbp)
movq %rax, -0xa18(%rbp)
jmp 0x1031df
movb -0xa19(%rbp), %al
movq -0xa18(%rbp), %rcx
movq %rcx, -0x570(%rbp)
movb %al, -0x568(%rbp)
jmp 0x103390
movl -0x14(%rbp), %esi
leaq -0x5f0(%rbp), %rdi
callq 0x17e460
jmp 0x10320f
leaq 0xdf8c3(%rip), %rsi     # 0x1e2ad9
leaq -0x5d0(%rbp), %rdi
leaq -0x5f0(%rbp), %rdx
callq 0x8e0f0
jmp 0x10322b
leaq 0xdf85d(%rip), %rdx     # 0x1e2a8f
leaq -0x5b0(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x441f0
jmp 0x103247
movl -0x44c(%rbp), %esi
leaq -0x610(%rbp), %rdi
callq 0x17e460
jmp 0x10325b
leaq -0x590(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
leaq -0x610(%rbp), %rdx
callq 0x9c7d0
jmp 0x103277
leaq -0x610(%rbp), %rdi
callq 0x311e8
leaq -0x5b0(%rbp), %rdi
callq 0x311e8
leaq -0x5d0(%rbp), %rdi
callq 0x311e8
leaq -0x5f0(%rbp), %rdi
callq 0x311e8
leaq -0x630(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x2f300
jmp 0x1032bc
movq -0x6e0(%rbp), %rdi
leaq -0x630(%rbp), %rsi
callq 0xeada0
jmp 0x1032d1
leaq -0x630(%rbp), %rdi
callq 0x311e8
leaq -0x590(%rbp), %rdi
callq 0x311e8
jmp 0x103390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x103348
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10333c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x103330
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x311e8
leaq -0x5b0(%rbp), %rdi
callq 0x311e8
leaq -0x5d0(%rbp), %rdi
callq 0x311e8
leaq -0x5f0(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x10337f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x311e8
leaq -0x590(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movq -0x6e0(%rbp), %rsi
leaq -0x648(%rbp), %rdi
callq 0x109ef0
jmp 0x1033a5
leaq -0x648(%rbp), %rdi
callq 0xb2400
movq 0x1d1b98(%rip), %rdi    # 0x2d4f50
leaq 0xdf6d5(%rip), %rsi     # 0x1e2a94
callq 0x2ff50
movq %rax, -0xa28(%rbp)
jmp 0x1033cd
movq -0xa28(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, -0xa30(%rbp)
jmp 0x1033e5
movq -0xa30(%rbp), %rdi
leaq 0xdeb53(%rip), %rsi     # 0x1e1f46
callq 0x2ff50
movq %rax, -0xa38(%rbp)
jmp 0x103401
movq -0xa38(%rbp), %rdi
movl -0x44c(%rbp), %esi
callq 0x30640
movq %rax, -0xa40(%rbp)
jmp 0x10341c
movq -0xa40(%rbp), %rdi
leaq 0xdf6f9(%rip), %rsi     # 0x1e2b23
callq 0x2ff50
movq %rax, -0xa48(%rbp)
jmp 0x103438
movq -0xa48(%rbp), %rdi
movq -0x6e0(%rbp), %rax
movl 0x13e8(%rax), %esi
callq 0x30640
movq %rax, -0xa50(%rbp)
jmp 0x10345a
movq -0xa50(%rbp), %rdi
movq 0x1d1b60(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x10346f
jmp 0x103471
leaq -0x448(%rbp), %rdi
callq 0xb37f0
jmp 0x102cc6
movq -0x6e0(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x1034c5
movq 0x1d1ab7(%rip), %rdi    # 0x2d4f50
leaq 0xdf694(%rip), %rsi     # 0x1e2b34
callq 0x2ff50
movq %rax, -0xa58(%rbp)
jmp 0x1034ae
movq -0xa58(%rbp), %rdi
movq 0x1d1b0c(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1034c3
jmp 0x1034c5
movq -0x6e0(%rbp), %rax
movl $0x0, -0x64c(%rbp)
cmpl $0x5, 0x1614(%rax)
jb 0x103512
movq 0x1d1a6a(%rip), %rdi    # 0x2d4f50
leaq 0xdf6ab(%rip), %rsi     # 0x1e2b98
callq 0x2ff50
movq %rax, -0xa60(%rbp)
jmp 0x1034fb
movq -0xa60(%rbp), %rdi
movq 0x1d1abf(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x103510
jmp 0x103512
movq -0x6e0(%rbp), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0xb, -0x664(%rbp)
leaq -0x664(%rbp), %rsi
callq 0xb3750
movq %rdx, -0xa70(%rbp)
movq %rax, -0xa68(%rbp)
jmp 0x103546
movq -0xa70(%rbp), %rax
movq -0xa68(%rbp), %rcx
movq %rcx, -0x660(%rbp)
movq %rax, -0x658(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x660(%rbp), %rsi
callq 0xb3790
movq -0x40(%rbp), %rax
movq %rax, -0x670(%rbp)
leaq -0x40(%rbp), %rsi
addq $0x8, %rsi
leaq -0x670(%rbp), %rdi
callq 0xb37c0
testb $0x1, %al
jne 0x10359a
jmp 0x1036f0
leaq -0x688(%rbp), %rdi
callq 0x448b0
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x123360
movq %rax, -0x690(%rbp)
movq -0x6e0(%rbp), %rdi
addq $0x1820, %rdi           # imm = 0x1820
callq 0x1233c0
movq %rax, -0x698(%rbp)
leaq -0x690(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0x123390
testb $0x1, %al
jne 0x1035f3
jmp 0x103669
leaq -0x690(%rbp), %rdi
callq 0x1233f0
movl (%rax), %esi
leaq -0x6b8(%rbp), %rdi
callq 0x17e460
jmp 0x10360f
leaq -0x688(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0xb39c0
jmp 0x103624
leaq -0x6b8(%rbp), %rdi
callq 0x311e8
leaq -0x690(%rbp), %rdi
callq 0x123410
jmp 0x1035c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x1036df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x311e8
jmp 0x1036df
movq -0x6e0(%rbp), %rax
movl -0x64c(%rbp), %ecx
incl %ecx
movl %ecx, -0x64c(%rbp)
movq (%rax), %rax
movq %rax, -0xa78(%rbp)
leaq -0x670(%rbp), %rdi
callq 0xb3190
movq -0xa78(%rbp), %rdi
movl 0x2c(%rax), %edx
movq %rsp, %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
xorl %esi, %esi
movl $0xc, %ecx
movl $0x1, %r8d
leaq -0x688(%rbp), %r9
callq 0xcd520
jmp 0x1036c2
leaq -0x688(%rbp), %rdi
callq 0x448d0
leaq -0x670(%rbp), %rdi
callq 0xb37f0
jmp 0x10357d
leaq -0x688(%rbp), %rdi
callq 0x448d0
jmp 0x103827
movq -0x6e0(%rbp), %rax
cmpl $0x5, 0x1614(%rax)
jb 0x103733
movq 0x1d1849(%rip), %rdi    # 0x2d4f50
leaq 0xdf4f1(%rip), %rsi     # 0x1e2bff
callq 0x2ff50
movq %rax, -0xa80(%rbp)
jmp 0x10371c
movq -0xa80(%rbp), %rdi
movq 0x1d189e(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x103731
jmp 0x103733
movq -0x6e0(%rbp), %rax
movq (%rax), %rdi
addq $0x18, %rdi
callq 0xb31c0
movq -0x6e0(%rbp), %rax
cmpl $0x4, 0x1614(%rax)
jb 0x103801
movq 0x1d17ef(%rip), %rdi    # 0x2d4f50
leaq 0xdf4fd(%rip), %rsi     # 0x1e2c65
callq 0x2ff50
jmp 0x10376f
movq 0x1d17da(%rip), %rdi    # 0x2d4f50
leaq 0xdf507(%rip), %rsi     # 0x1e2c84
callq 0x2ff50
movq %rax, -0xa88(%rbp)
jmp 0x10378b
movq -0x6f0(%rbp), %rdi
callq 0xb46f0
movq %rax, %rsi
leaq -0x6d8(%rbp), %rdi
callq 0x17e4f0
jmp 0x1037a8
movq -0xa88(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
callq 0x2f780
movq %rax, -0xa90(%rbp)
jmp 0x1037c4
movq -0xa90(%rbp), %rdi
movq 0x1d17f6(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x1037d9
leaq -0x6d8(%rbp), %rdi
callq 0x311e8
jmp 0x103801
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x6d8(%rbp), %rdi
callq 0x311e8
jmp 0x103827
movb $0x1, -0x1d(%rbp)
testb $0x1, -0x1d(%rbp)
jne 0x103817
movq -0x6f0(%rbp), %rdi
callq 0xb2400
movq -0x6e8(%rbp), %rax
addq $0xaa0, %rsp            # imm = 0xAA0
popq %rbp
retq
movq -0x6f0(%rbp), %rdi
callq 0xb2400
movq -0x28(%rbp), %rdi
callq 0x30170
nopl (%rax)