// File: richardposner[P]BioNetFit2/src/code/Particle.cpp
// Function: subParticle::runModel(unsigned int, bool)
void subParticle::runModel(unsigned int iteration, bool localSearch) {

	unsigned int pID = parParticle->id_;
	if (parParticle->swarm_->options.verbosity >= 3) {
		cout << "RRR parParticle->id_: " << pID << endl;
	}
	Swarm * swp = parParticle->swarm_;  if(!swp){cout<<"subParticle::runModel: Invalid subParticle with no parent..."; return;}
	Model * mdl = parParticle->models.at(this->mid_);  if(!swp){cout<<"subParticle::runModel: Invalid subParticle with no model..."; return;}
	unsigned int mid = this->mid_;
	unsigned int subParID = parParticle->calcsubParID(mid);

	if ((swp->getNumModels()<1) || (mid<0) || (mid >=swp->getNumModels())){
		cout<<"subParticle::runModel. Number of models:" << swp->getNumModels() <<"subParticle id:" << mid<< endl;
		outputError("Something must be wrong. Particle can not be run. Quitting...");
	}


	// First get our path and filename variables set up for use in model generation, sim command, etc
	string bnglFilename = swp->getModelName(this->mid_,false)+"_"+toString(pID) + "_" + toString(iteration) + ".bngl";

	if (parParticle->swarm_->options.verbosity>= 3) {cout<<"Started running model for subParticle:["<<subParID <<":"<< pID  <<"-"<<mid_ <<"] model file is: " << bnglFilename<<".\n"; }

	string path = swp->options.jobOutputDir + toString(parParticle->currentGeneration_) + "/";
	string bnglFullPath = path + bnglFilename;

	string suffix = toString(pID) + "_" + toString(iteration);

	string pipePath;
	// Only need to generate files if we're in the first generation. In subsequent generations
	// the model generation is handled by breeding parents
	if (parParticle->currentGeneration_ == 1 && !localSearch) {
		if (mdl->getHasGenerateNetwork()){
			if (parParticle->swarm_->options.verbosity>= 3) cout<<"generating network...\n";
			if (swp->bootstrapCounter == 0) {
				//string netFilename = "base_"+toString(mid)+".net"; //Raquel: commented to fix problem with .net file name
				//string netFullPath = swp->options.jobOutputDir + netFilename; //Raquel: commented to fix problem with .net file name
				string path2 = swp->options.models.at(mid)->getName(); //Raquel: fixed problem with .net file name
				string basename1 = getFilename(path2); //Raquel: fixed problem with .net file name
				string netFilename = basename1 + "_base.net"; //Raquel: fixed problem with .net file name
				string netFullPath = swp->options.jobOutputDir + netFilename; //Raquel: fixed problem with .net file name
				if ((swp->options.jobOutputDir.substr(swp->options.jobOutputDir.size()-1,1)!="/") && (swp->options.jobOutputDir.substr(swp->options.jobOutputDir.size()-1,1)!="\\"))
					netFullPath = swp->options.jobOutputDir + "/" + netFilename;
				if (iteration == 1) {
					mdl->parseNet(netFullPath);
				}
			}
			//razi: check later
			mdl->outputModelWithParams(parParticle->simParams_.at(mid), path, bnglFilename, suffix, false, false, true, false, false);
		}
		else {
			//razi: check later
			mdl->outputModelWithParams(parParticle->simParams_.at(mid), path, bnglFilename, suffix, false, false, false, false, false);
		}
	}
	else if (localSearch) {
		cout << "regenerating models.." << endl;
		// And generate our models
		if (mdl->getHasGenerateNetwork()){
			// If we're using ODE solver, output .net file
			bnglFilename = boost::regex_replace(bnglFilename, boost::regex("bngl$"), string("net"));
			mdl->outputModelWithParams(parParticle->simParams_.at(mid), path, bnglFilename, suffix, false, false, false, false, true);
		}
		else {
			// If we're using network free simulation, output .bngl
			mdl->outputModelWithParams(parParticle->simParams_.at(mid), path, bnglFilename, suffix, false, false, false, false, false);
		}
	}

	ifstream bngfile(bnglFullPath);

	if(!bngfile){
		if (swp->options.verbosity >= 2) {
			cout << "BNGL file not found: " << bnglFullPath << endl;
		}
		swp->processLateParticles(parParticle->simParams_.at(mid), subParID, false, parParticle->currentGeneration_);
		swp->fixRunningParticle(subParID);
		//cout << "from particle: " << swp->particleCurrParamSets_.size() << endl;
		//cout << parParticle->simParams_.at(mid).size() << endl;


	}
	if (swp->options.verbosity>= 3) {
		cout << "RAQUEL GENERATION: " << parParticle->currentGeneration_ << " path" << path << endl;
	}
	// Generate .gdat pipes if we're using pipes

#ifdef PC_VER //pipe are defined only in linux operating systems
	if (swp->options.usePipes)
		outputError("Using pipes are not allowed in windows, disable use_pipes option in the config [.conf] file!!!");
#endif

	string outputSuffix;
	if (swp->options.usePipes) {
		for (std::map<std::string,Model::action>::iterator i = mdl->actions.begin(); i != mdl->actions.end(); ++i) {
			if (i->second.scanParam.size() > 0) {
				outputSuffix = ".scan";
			}
			else {
				outputSuffix = ".gdat";
			}

			//raquel: added line below to fix problem with real simulator file name
			//pipePath = swp->getModelName(this->mid_,false)+"_"+toString(pID) + "_" + toString(iteration) + ".gdat";
			//raquel commented below
			pipePath = path + i->first+ toString(pID) + "_" + toString(iteration) + outputSuffix; //new format to be consistent with bngl file
			if (parParticle->swarm_->options.verbosity >= 3) {
				cout << "Raquel: pipepath " << pipePath << endl;
				cout << "subParticle::runModel pp is: " << pipePath << endl;
			}
			createParticlePipe(pipePath.c_str());
		}
	}




	int ret = -1;
	if (swp->options.verbosity>=3) cout<<"subParticle::runModel: bngl command is:" << swp->options.bngCommand<<endl;
	//razi: generate random gdat if the simulation is set to random, only for test
	std::size_t found = swp->options.bngCommand.find("random");
	if (found!=std::string::npos){   //run artificial simulation
#ifndef TEST_SIMULATOR
		outputError("You are using the random simulator, but the macro is not activated. Recompile the code with TEST_SIMULATOR on !!!");
#endif
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout<<"\nsubParticle::runModel: Random Simulation is chosen for test, generating random result file !!!\n\n"; //mypause();
		}
//swp->printDetails();
//if (mid==1) {return;}
		string exp_file = swp->getExpPath(mid, 0);
//if (mid==1) return; //razi for test uncomment
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout<<"\nsubParticle::runModel: Tries to generate file from file :" << exp_file<<"\n."; //mypause();
		}
		string gdat_path = path +  swp->getExp(mid_,0)+ "_" + toString(pID) + "_" + toString(iteration) + ".gdat";
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout<<"\nsubParticle::runModel: Finished generating file: "<< gdat_path << "   from file :" << exp_file<<"\n.";// mypause();
		}
		ret = generate_gdat_file(exp_file, gdat_path, pID);
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout << "RAQUEL ret: " << ret << endl;
		}
	}else
	{
//if (mid==1) return; //razi for test uncomment
		// Construct our simulation command
		string command = swp->options.bngCommand + " --outdir " + path + " " + bnglFullPath + " >> " + path + toString(pID) + ".BNG_OUT 2>&1";
		if (swp->options.usePipes) {
			command += " &";
		}

		if (!checkIfFileExists(path)) {
			runCommand("mkdir " + path); //Raquel added this block
		}

		if (swp->options.verbosity >= 3) {
			cout << "subParticle::runModel: Running model with command: " << command << endl;
		}

		// Run simulation command
		//int ret = system(command.c_str());
		ret = system(command.c_str()); //Raquel: uncomented to run real Simulators, and removed the redeclaration of ret
	}


//if (mid==1) return; //razi for test uncomment

	// Check for simulation command success
	//Raquel: changed this temporarily
	if (ret == 0 || ret==-1 ) { // TODO: Need to check for simulation status when using pipes. Going by return code doesn't work there because we're using the & operator

		// really not sure how we can do this easily
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout<<"subParticle::runModel: simulation completed successfully. Lets collect data ...\n"; //mypause();
		}
		string outputSuffix;
		// Save our simulation outputs to data objects
		for (std::map<std::string,Model::action>::iterator action = mdl->actions.begin(); action != mdl->actions.end(); ++action) {
			if (action->second.scanParam.size() > 0) {
				outputSuffix = ".scan";
				//cout<<"Particle::runModel: A1\n";
			}
			else {
				//cout<<"Particle::runModel: A2\n";
				outputSuffix = ".gdat";
			}
//cout<<"Particle::runModel: A3\n"; //mypause();
			//razi: this is the gdatfile including the simulation results for [ParID,subParID,iteration]
			string dataPath = path + action->first + "_" + toString(pID) + "_" + toString(iteration) + outputSuffix;  //was string dataPath = path + action->first + "_" + toString(id_) + "_" + toString(iteration) + outputSuffix;
			//cout<<"Particle::runModel: A3 dataPath :"<<dataPath<<endl; //mypause();
			if (swp->options.verbosity>=3) cout<<"subParticle::runModel: Adding the results as a data object.  action:"<< action->first<< " datafile:"<<dataPath<<"   model id:"<< mid << "  iteration:" << iteration << endl;
			parParticle->dataFiles_.at(mid)[action->first].insert(pair<int, Data*>(iteration, new Data(dataPath, swp, false, mid)));

			if (parParticle->swarm_->options.verbosity >= 3) {
				cout << "RAQUEL COUNT AT MID " << mid << " = " << parParticle->dataFiles_.at(mid).count(action->first) << endl;
			}

			if (swp->options.verbosity>=3) cout<<"subParticle::runModel: Lets check if done properly. File:"<< parParticle->dataFiles_.at(mid)[action->first][iteration]->getPath() << "exists.\n";

			//cout<<"Particle::runModel: A4\n";
		}
	}
	else {
		// If our return code is not 0, tell the master that the simulation failed
		if (parParticle->swarm_->options.verbosity >= 3) {
			cout << "RAQUEL ret " << ret << endl;

			cout << "subParticle::runModel: I failed completing runmodel ..." << endl; //mypause();
		}
		swp->swarmComm->sendToSwarm(int(subParID), 0, SIMULATION_FAIL, true, swp->swarmComm->univMessageSender);
	}
	if (parParticle->swarm_->options.verbosity >= 3) {

		cout<<"subParticle::runModel: runmodel finished ...\n";
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1130, %rsp           # imm = 0x1130
movb %dl, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
andb $0x1, %al
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xe50(%rbp)
movq (%rax), %rcx
movl 0x40(%rcx), %ecx
movl %ecx, -0x14(%rbp)
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa5cdd
movq 0x22f299(%rip), %rdi    # 0x2d4f50
leaq 0x135485(%rip), %rsi    # 0x1db143
callq 0x2ff50
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, %rdi
movq 0x22f2f0(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xa5d11
movq 0x22f250(%rip), %rdi    # 0x2d4f50
leaq 0x135453(%rip), %rsi    # 0x1db15a
callq 0x2ff50
jmp 0xa8611
movq -0xe50(%rbp), %rax
movq (%rax), %rdi
addq $0x78, %rdi
movl 0x8(%rax), %eax
movl %eax, %esi
callq 0x45190
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0xa5d4f
movq 0x22f212(%rip), %rdi    # 0x2d4f50
leaq 0x135452(%rip), %rsi    # 0x1db197
callq 0x2ff50
jmp 0xa8611
movq -0xe50(%rbp), %rax
movl 0x8(%rax), %ecx
movl %ecx, -0x2c(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %esi
callq 0xac1e0
movl %eax, -0x30(%rbp)
movq -0x20(%rbp), %rdi
callq 0x8dec0
cmpl $0x1, %eax
jb 0xa5da0
cmpl $0x0, -0x2c(%rbp)
jb 0xa5da0
movl -0x2c(%rbp), %eax
movl %eax, -0xe54(%rbp)
movq -0x20(%rbp), %rdi
callq 0x8dec0
movl %eax, %ecx
movl -0xe54(%rbp), %eax
cmpl %ecx, %eax
jb 0xa5e73
movq 0x22f1a9(%rip), %rdi    # 0x2d4f50
leaq 0x135425(%rip), %rsi    # 0x1db1d3
callq 0x2ff50
movq %rax, -0xe68(%rbp)
movq -0x20(%rbp), %rdi
callq 0x8dec0
movq -0xe68(%rbp), %rdi
movl %eax, %esi
callq 0x30640
movq %rax, %rdi
leaq 0x135421(%rip), %rsi    # 0x1db1fc
callq 0x2ff50
movq %rax, %rdi
movl -0x2c(%rbp), %esi
callq 0x30640
movq %rax, %rdi
movq 0x22f1d3(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
leaq -0x51(%rbp), %rdi
movq %rdi, -0xe60(%rbp)
callq 0x30a70
movq -0xe60(%rbp), %rdx
leaq 0x1353f4(%rip), %rsi    # 0x1db20c
leaq -0x50(%rbp), %rdi
callq 0x44470
jmp 0xa5e23
leaq -0x50(%rbp), %rdi
callq 0x17e420
jmp 0xa5e2e
leaq -0x50(%rbp), %rdi
callq 0x311e8
leaq -0x51(%rbp), %rdi
callq 0x311c0
jmp 0xa5e73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa5e65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x311e8
leaq -0x51(%rbp), %rdi
callq 0x311c0
jmp 0xa866e
movq -0xe50(%rbp), %rax
movq -0x20(%rbp), %rsi
movl 0x8(%rax), %edx
leaq -0x128(%rbp), %rdi
movq %rdi, -0xe70(%rbp)
xorl %ecx, %ecx
callq 0xec790
movq -0xe70(%rbp), %rsi
leaq 0x1347c3(%rip), %rdx    # 0x1da667
leaq -0x108(%rbp), %rdi
callq 0x441f0
jmp 0xa5eb2
movl -0x14(%rbp), %esi
leaq -0x148(%rbp), %rdi
callq 0x17e460
jmp 0xa5ec3
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
leaq -0x148(%rbp), %rdx
callq 0x9c7d0
jmp 0xa5edf
leaq 0x134781(%rip), %rdx    # 0x1da667
leaq -0xc8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x441f0
jmp 0xa5efb
movl -0xc(%rbp), %esi
leaq -0x168(%rbp), %rdi
callq 0x17e460
jmp 0xa5f0c
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0x168(%rbp), %rdx
callq 0x9c7d0
jmp 0xa5f28
leaq 0x135c4f(%rip), %rdx    # 0x1dbb7e
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x441f0
jmp 0xa5f44
leaq -0xa8(%rbp), %rdi
callq 0x311e8
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0xc8(%rbp), %rdi
callq 0x311e8
leaq -0xe8(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x108(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa617b
movq 0x22ef93(%rip), %rdi    # 0x2d4f50
leaq 0x135286(%rip), %rsi    # 0x1db24a
callq 0x2ff50
movq %rax, -0xe78(%rbp)
jmp 0xa5fd2
movq -0xe78(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x30640
movq %rax, -0xe80(%rbp)
jmp 0xa5fea
movq -0xe80(%rbp), %rdi
leaq 0x13b0a8(%rip), %rsi    # 0x1e10a0
callq 0x2ff50
movq %rax, -0xe88(%rbp)
jmp 0xa6006
movq -0xe88(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, -0xe90(%rbp)
jmp 0xa601e
movq -0xe90(%rbp), %rdi
leaq 0x13e300(%rip), %rsi    # 0x1e432c
callq 0x2ff50
movq %rax, -0xe98(%rbp)
jmp 0xa603a
movq -0xe98(%rbp), %rdi
movq -0xe50(%rbp), %rax
movl 0x8(%rax), %esi
callq 0x30640
movq %rax, -0xea0(%rbp)
jmp 0xa6059
movq -0xea0(%rbp), %rdi
leaq 0x13520b(%rip), %rsi    # 0x1db272
callq 0x2ff50
movq %rax, -0xea8(%rbp)
jmp 0xa6075
movq -0xea8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x2f780
movq %rax, -0xeb0(%rbp)
jmp 0xa6091
movq -0xeb0(%rbp), %rdi
leaq 0x13e0e0(%rip), %rsi    # 0x1e417f
callq 0x2ff50
jmp 0xa60a6
jmp 0xa617b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa614d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6141
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6135
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6129
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa611d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x311e8
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0xc8(%rbp), %rdi
callq 0x311e8
leaq -0xe8(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x108(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
jmp 0xa866e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8662
movq -0xe50(%rbp), %rax
movq -0x20(%rbp), %rcx
addq $0x1520, %rcx           # imm = 0x1520
movq %rcx, -0xeb8(%rbp)
movq (%rax), %rax
movl 0xb0(%rax), %esi
leaq -0x1c8(%rbp), %rdi
callq 0x17e460
jmp 0xa61ab
movq -0xeb8(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
leaq -0x1c8(%rbp), %rdx
callq 0xb3380
jmp 0xa61c7
leaq 0x13c185(%rip), %rdx    # 0x1e2353
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x441f0
jmp 0xa61e3
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
leaq -0x1c8(%rbp), %rdi
callq 0x311e8
leaq -0x1e8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x50f10
jmp 0xa6217
movl -0x14(%rbp), %esi
leaq -0x248(%rbp), %rdi
callq 0x17e460
jmp 0xa6228
leaq 0x134438(%rip), %rdx    # 0x1da667
leaq -0x228(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x441f0
jmp 0xa6244
movl -0xc(%rbp), %esi
leaq -0x268(%rbp), %rdi
callq 0x17e460
jmp 0xa6255
leaq -0x208(%rbp), %rdi
leaq -0x228(%rbp), %rsi
leaq -0x268(%rbp), %rdx
callq 0x9c7d0
jmp 0xa6271
leaq -0x268(%rbp), %rdi
callq 0x311e8
leaq -0x228(%rbp), %rdi
callq 0x311e8
leaq -0x248(%rbp), %rdi
callq 0x311e8
leaq -0x288(%rbp), %rdi
callq 0x2f880
movq -0xe50(%rbp), %rax
movq (%rax), %rax
cmpl $0x1, 0xb0(%rax)
jne 0xa6a69
testb $0x1, -0xd(%rbp)
jne 0xa6a69
movq -0x28(%rbp), %rdi
callq 0x9cbc0
movb %al, -0xeb9(%rbp)
jmp 0xa62d3
movb -0xeb9(%rbp), %al
testb $0x1, %al
jne 0xa62e2
jmp 0xa6900
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa63d5
movq 0x22ec49(%rip), %rdi    # 0x2d4f50
leaq 0x134f76(%rip), %rsi    # 0x1db284
callq 0x2ff50
jmp 0xa6315
jmp 0xa63d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6340
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
leaq -0x1c8(%rbp), %rdi
callq 0x311e8
jmp 0xa8662
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8656
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa864a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa63b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa63a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x311e8
leaq -0x228(%rbp), %rdi
callq 0x311e8
leaq -0x248(%rbp), %rdi
callq 0x311e8
jmp 0xa864a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8632
movq -0x20(%rbp), %rax
cmpl $0x0, 0x13ec(%rax)
jne 0xa6799
movq -0x20(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0xec8(%rbp)
jmp 0xa6404
movq -0xec8(%rbp), %rax
movq (%rax), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x8e140
jmp 0xa641c
leaq -0x2e8(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x2f300
jmp 0xa6431
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x17d590
jmp 0xa6446
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
leaq 0x134e42(%rip), %rdx    # 0x1db29b
leaq -0x308(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x447b0
jmp 0xa646e
movq -0x20(%rbp), %rsi
addq $0x1520, %rsi           # imm = 0x1520
leaq -0x328(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0x50f10
jmp 0xa648e
movq -0x20(%rbp), %rdi
addq $0x1520, %rdi           # imm = 0x1520
movq %rdi, -0xed0(%rbp)
callq 0x2f720
movq -0xed0(%rbp), %rsi
movq %rax, %rdx
decq %rdx
movb $0x0, -0x369(%rbp)
leaq -0x348(%rbp), %rdi
movl $0x1, %ecx
callq 0x30b40
jmp 0xa64cc
leaq 0x13be80(%rip), %rsi    # 0x1e2353
leaq -0x348(%rbp), %rdi
callq 0x45af0
movb %al, -0xed1(%rbp)
jmp 0xa64e7
movb -0xed1(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0xed2(%rbp)
jne 0xa64fc
jmp 0xa6563
movq -0x20(%rbp), %rdi
addq $0x1520, %rdi           # imm = 0x1520
movq %rdi, -0xee0(%rbp)
callq 0x2f720
movq -0xee0(%rbp), %rsi
movq %rax, %rdx
decq %rdx
leaq -0x368(%rbp), %rdi
movl $0x1, %ecx
callq 0x30b40
jmp 0xa6533
movb $0x1, -0x369(%rbp)
leaq 0x133fa3(%rip), %rsi    # 0x1da4e4
leaq -0x368(%rbp), %rdi
callq 0x45af0
movb %al, -0xee1(%rbp)
jmp 0xa6555
movb -0xee1(%rbp), %al
movb %al, -0xed2(%rbp)
jmp 0xa6563
movb -0xed2(%rbp), %al
movb %al, -0xee2(%rbp)
testb $0x1, -0x369(%rbp)
jne 0xa657a
jmp 0xa6586
leaq -0x368(%rbp), %rdi
callq 0x311e8
leaq -0x348(%rbp), %rdi
callq 0x311e8
movb -0xee2(%rbp), %al
testb $0x1, %al
jne 0xa65a1
jmp 0xa66cf
movq -0x20(%rbp), %rsi
addq $0x1520, %rsi           # imm = 0x1520
leaq 0x13bda0(%rip), %rdx    # 0x1e2353
leaq -0x3b0(%rbp), %rdi
callq 0x447b0
jmp 0xa65c1
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
leaq -0x308(%rbp), %rdx
callq 0x44760
jmp 0xa65dd
leaq -0x328(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x2fd80
leaq -0x390(%rbp), %rdi
callq 0x311e8
leaq -0x3b0(%rbp), %rdi
callq 0x311e8
jmp 0xa66cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6788
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
jmp 0xa6788
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa677c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6770
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6764
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa66a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
testb $0x1, -0x369(%rbp)
jne 0xa6693
jmp 0xa669f
leaq -0x368(%rbp), %rdi
callq 0x311e8
jmp 0xa66a1
leaq -0x348(%rbp), %rdi
callq 0x311e8
jmp 0xa6764
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x311e8
jmp 0xa6764
cmpl $0x1, -0xc(%rbp)
jne 0xa6732
movq -0x28(%rbp), %rax
movq %rax, -0xef0(%rbp)
leaq -0x3d0(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x2f300
jmp 0xa66f5
movq -0xef0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x998e0
jmp 0xa670a
leaq -0x3d0(%rbp), %rdi
callq 0x311e8
jmp 0xa6732
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x311e8
jmp 0xa6764
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x2a8(%rbp), %rdi
callq 0x311e8
jmp 0xa6799
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x2a8(%rbp), %rdi
callq 0x311e8
jmp 0xa8632
movq -0xe50(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0xf00(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0xef8(%rbp)
jmp 0xa67c1
movq -0xef8(%rbp), %rsi
leaq -0x400(%rbp), %rdi
callq 0x9c620
jmp 0xa67d6
leaq -0x420(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f300
jmp 0xa67eb
leaq -0x440(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x2f300
jmp 0xa6800
leaq -0x460(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2f300
jmp 0xa6815
movq -0xf00(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x1, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x400(%rbp), %rsi
leaq -0x420(%rbp), %rdx
leaq -0x440(%rbp), %rcx
leaq -0x460(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0xa6860
leaq -0x460(%rbp), %rdi
callq 0x311e8
leaq -0x440(%rbp), %rdi
callq 0x311e8
leaq -0x420(%rbp), %rdi
callq 0x311e8
leaq -0x400(%rbp), %rdi
callq 0x8de70
jmp 0xa6a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa68ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa68e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa68d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x311e8
leaq -0x440(%rbp), %rdi
callq 0x311e8
leaq -0x420(%rbp), %rdi
callq 0x311e8
leaq -0x400(%rbp), %rdi
callq 0x8de70
jmp 0xa8632
movq -0xe50(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0xf10(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0xf08(%rbp)
jmp 0xa6928
movq -0xf08(%rbp), %rsi
leaq -0x490(%rbp), %rdi
callq 0x9c620
jmp 0xa693d
leaq -0x4b0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f300
jmp 0xa6952
leaq -0x4d0(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x2f300
jmp 0xa6967
leaq -0x4f0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2f300
jmp 0xa697c
movq -0xf10(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x490(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x4d0(%rbp), %rcx
leaq -0x4f0(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0xa69c7
leaq -0x4f0(%rbp), %rdi
callq 0x311e8
leaq -0x4d0(%rbp), %rdi
callq 0x311e8
leaq -0x4b0(%rbp), %rdi
callq 0x311e8
leaq -0x490(%rbp), %rdi
callq 0x8de70
jmp 0xa6a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6a53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6a3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x311e8
leaq -0x4d0(%rbp), %rdi
callq 0x311e8
leaq -0x4b0(%rbp), %rdi
callq 0x311e8
leaq -0x490(%rbp), %rdi
callq 0x8de70
jmp 0xa8632
jmp 0xa6e8c
testb $0x1, -0xd(%rbp)
je 0xa6e8a
movq 0x22e4d6(%rip), %rdi    # 0x2d4f50
leaq 0x134824(%rip), %rsi    # 0x1db2a5
callq 0x2ff50
movq %rax, -0xf18(%rbp)
jmp 0xa6a8f
movq -0xf18(%rbp), %rdi
movq 0x22e52b(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa6aa4
movq -0x28(%rbp), %rdi
callq 0x9cbc0
movb %al, -0xf19(%rbp)
jmp 0xa6ab5
movb -0xf19(%rbp), %al
testb $0x1, %al
jne 0xa6ac4
jmp 0xa6d24
leaq 0x133cd3(%rip), %rsi    # 0x1da79e
leaq -0x520(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0xa6adb
leaq -0x541(%rbp), %rdi
movq %rdi, -0xf28(%rbp)
callq 0x30a70
movq -0xf28(%rbp), %rdx
leaq 0x1347a5(%rip), %rsi    # 0x1db2a1
leaq -0x540(%rbp), %rdi
callq 0x44470
jmp 0xa6b0a
leaq -0x510(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0x520(%rbp), %rdx
leaq -0x540(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0xa6b30
leaq -0x88(%rbp), %rdi
leaq -0x510(%rbp), %rsi
movq %rsi, -0xf40(%rbp)
callq 0x2fd80
movq -0xf40(%rbp), %rdi
callq 0x311e8
leaq -0x540(%rbp), %rdi
callq 0x311e8
leaq -0x541(%rbp), %rdi
callq 0x311c0
leaq -0x520(%rbp), %rdi
callq 0x441d0
movq -0xe50(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0xf38(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0xf30(%rbp)
jmp 0xa6ba2
movq -0xf30(%rbp), %rsi
leaq -0x578(%rbp), %rdi
callq 0x9c620
jmp 0xa6bb7
leaq -0x598(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f300
jmp 0xa6bcc
leaq -0x5b8(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x2f300
jmp 0xa6be1
leaq -0x5d8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2f300
jmp 0xa6bf6
movq -0xf38(%rbp), %rdi
movq %rsp, %rax
movl $0x1, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x578(%rbp), %rsi
leaq -0x598(%rbp), %rdx
leaq -0x5b8(%rbp), %rcx
leaq -0x5d8(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0xa6c41
leaq -0x5d8(%rbp), %rdi
callq 0x311e8
leaq -0x5b8(%rbp), %rdi
callq 0x311e8
leaq -0x598(%rbp), %rdi
callq 0x311e8
leaq -0x578(%rbp), %rdi
callq 0x8de70
jmp 0xa6e88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6c9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x311e8
leaq -0x541(%rbp), %rdi
callq 0x311c0
leaq -0x520(%rbp), %rdi
callq 0x441d0
jmp 0xa8632
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6d07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6cfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x5d8(%rbp), %rdi
callq 0x311e8
leaq -0x5b8(%rbp), %rdi
callq 0x311e8
leaq -0x598(%rbp), %rdi
callq 0x311e8
leaq -0x578(%rbp), %rdi
callq 0x8de70
jmp 0xa8632
movq -0xe50(%rbp), %rax
movq -0x28(%rbp), %rcx
movq %rcx, -0xf50(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0xf48(%rbp)
jmp 0xa6d4c
movq -0xf48(%rbp), %rsi
leaq -0x608(%rbp), %rdi
callq 0x9c620
jmp 0xa6d61
leaq -0x628(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f300
jmp 0xa6d76
leaq -0x648(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x2f300
jmp 0xa6d8b
leaq -0x668(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x2f300
jmp 0xa6da0
movq -0xf50(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x608(%rbp), %rsi
leaq -0x628(%rbp), %rdx
leaq -0x648(%rbp), %rcx
leaq -0x668(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0xa6deb
leaq -0x668(%rbp), %rdi
callq 0x311e8
leaq -0x648(%rbp), %rdi
callq 0x311e8
leaq -0x628(%rbp), %rdi
callq 0x311e8
leaq -0x608(%rbp), %rdi
callq 0x8de70
jmp 0xa6e88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6e77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6e6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa6e5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x311e8
leaq -0x648(%rbp), %rdi
callq 0x311e8
leaq -0x628(%rbp), %rdi
callq 0x311e8
leaq -0x608(%rbp), %rdi
callq 0x8de70
jmp 0xa8632
jmp 0xa6e8a
jmp 0xa6e8c
leaq -0x870(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
movl $0x8, %edx
callq 0x30d80
jmp 0xa6ea6
movq -0x870(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x870(%rbp,%rax), %rdi
callq 0x2f0d0
movb %al, -0xf51(%rbp)
jmp 0xa6ec6
movb -0xf51(%rbp), %al
testb $0x1, %al
jne 0xa6ed5
jmp 0xa6fe3
movq -0x20(%rbp), %rax
cmpl $0x2, 0x1614(%rax)
jb 0xa6f42
movq 0x22e067(%rip), %rdi    # 0x2d4f50
leaq 0x1343cb(%rip), %rsi    # 0x1db2bb
callq 0x2ff50
movq %rax, -0xf60(%rbp)
jmp 0xa6efe
movq -0xf60(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x2f780
movq %rax, -0xf68(%rbp)
jmp 0xa6f1a
movq -0xf68(%rbp), %rdi
movq 0x22e0a0(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa6f2f
jmp 0xa6f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8626
movq -0xe50(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, -0xf78(%rbp)
movq (%rax), %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0xf70(%rbp)
jmp 0xa6f6a
movq -0xf70(%rbp), %rsi
leaq -0x8a0(%rbp), %rdi
callq 0x9c620
jmp 0xa6f7f
movq -0xf78(%rbp), %rdi
movq -0xe50(%rbp), %rax
movl -0x30(%rbp), %edx
movq (%rax), %rax
movl 0xb0(%rax), %r8d
leaq -0x8a0(%rbp), %rsi
xorl %ecx, %ecx
callq 0x104010
jmp 0xa6faa
leaq -0x8a0(%rbp), %rdi
callq 0x8de70
movq -0x20(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x109e60
jmp 0xa6fc4
jmp 0xa6fe3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x8a0(%rbp), %rdi
callq 0x8de70
jmp 0xa8626
movq -0x20(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7084
movq 0x22df55(%rip), %rdi    # 0x2d4f50
leaq 0x1342cf(%rip), %rsi    # 0x1db2d1
callq 0x2ff50
movq %rax, -0xf80(%rbp)
jmp 0xa7010
movq -0xf80(%rbp), %rdi
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movl 0xb0(%rax), %esi
callq 0x30640
movq %rax, -0xf88(%rbp)
jmp 0xa7035
movq -0xf88(%rbp), %rdi
leaq 0x1342a2(%rip), %rsi    # 0x1db2e5
callq 0x2ff50
movq %rax, -0xf90(%rbp)
jmp 0xa7051
movq -0xf90(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f780
movq %rax, -0xf98(%rbp)
jmp 0xa706d
movq -0xf98(%rbp), %rdi
movq 0x22df4d(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa7082
jmp 0xa7084
leaq -0x8c0(%rbp), %rdi
callq 0x2f880
movq -0x20(%rbp), %rax
testb $0x1, 0x1630(%rax)
je 0xa73e5
movq -0x28(%rbp), %rdi
callq 0x451f0
movq %rax, -0x8c8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x45250
movq %rax, -0x8d0(%rbp)
leaq -0x8c8(%rbp), %rdi
leaq -0x8d0(%rbp), %rsi
callq 0x45220
testb $0x1, %al
jne 0xa70dd
jmp 0xa73e3
leaq -0x8c8(%rbp), %rdi
callq 0x452f0
movq %rax, %rdi
addq $0x20, %rdi
addq $0x48, %rdi
callq 0x2f720
cmpq $0x0, %rax
jbe 0xa7127
leaq 0x1341e5(%rip), %rsi    # 0x1db2eb
leaq -0x8c0(%rbp), %rdi
callq 0x2f9d0
jmp 0xa7114
jmp 0xa713e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa861a
leaq 0x1341c3(%rip), %rsi    # 0x1db2f1
leaq -0x8c0(%rbp), %rdi
callq 0x2f9d0
jmp 0xa713c
jmp 0xa713e
leaq -0x8c8(%rbp), %rdi
callq 0x452f0
movq %rax, %rdx
leaq -0x970(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x50f10
jmp 0xa7162
movl -0x14(%rbp), %esi
leaq -0x990(%rbp), %rdi
callq 0x17e460
jmp 0xa7173
leaq -0x950(%rbp), %rdi
leaq -0x970(%rbp), %rsi
leaq -0x990(%rbp), %rdx
callq 0x9c7d0
jmp 0xa718f
leaq 0x1334d1(%rip), %rdx    # 0x1da667
leaq -0x930(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x441f0
jmp 0xa71ab
movl -0xc(%rbp), %esi
leaq -0x9b0(%rbp), %rdi
callq 0x17e460
jmp 0xa71bc
leaq -0x910(%rbp), %rdi
leaq -0x930(%rbp), %rsi
leaq -0x9b0(%rbp), %rdx
callq 0x9c7d0
jmp 0xa71d8
leaq -0x8f0(%rbp), %rdi
leaq -0x910(%rbp), %rsi
leaq -0x8c0(%rbp), %rdx
callq 0x44760
jmp 0xa71f4
leaq -0x288(%rbp), %rdi
leaq -0x8f0(%rbp), %rsi
callq 0x2fd80
leaq -0x8f0(%rbp), %rdi
callq 0x311e8
leaq -0x910(%rbp), %rdi
callq 0x311e8
leaq -0x9b0(%rbp), %rdi
callq 0x311e8
leaq -0x930(%rbp), %rdi
callq 0x311e8
leaq -0x950(%rbp), %rdi
callq 0x311e8
leaq -0x990(%rbp), %rdi
callq 0x311e8
leaq -0x970(%rbp), %rdi
callq 0x311e8
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa73ba
movq 0x22dcd0(%rip), %rdi    # 0x2d4f50
leaq 0x134070(%rip), %rsi    # 0x1db2f7
callq 0x2ff50
movq %rax, -0xfa0(%rbp)
jmp 0xa7295
movq -0xfa0(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x2f780
movq %rax, -0xfa8(%rbp)
jmp 0xa72b1
movq -0xfa8(%rbp), %rdi
movq 0x22dd09(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa72c6
movq 0x22dc83(%rip), %rdi    # 0x2d4f50
leaq 0x134035(%rip), %rsi    # 0x1db309
callq 0x2ff50
movq %rax, -0xfb0(%rbp)
jmp 0xa72e2
movq -0xfb0(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x2f780
movq %rax, -0xfb8(%rbp)
jmp 0xa72fe
movq -0xfb8(%rbp), %rdi
movq 0x22dcbc(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa7313
jmp 0xa73ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa73a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa739d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7391
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7385
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7379
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x910(%rbp), %rdi
callq 0x311e8
leaq -0x9b0(%rbp), %rdi
callq 0x311e8
leaq -0x930(%rbp), %rdi
callq 0x311e8
leaq -0x950(%rbp), %rdi
callq 0x311e8
leaq -0x990(%rbp), %rdi
callq 0x311e8
leaq -0x970(%rbp), %rdi
callq 0x311e8
jmp 0xa861a
leaq -0x288(%rbp), %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x17e0b0
jmp 0xa73d0
jmp 0xa73d2
leaq -0x8c8(%rbp), %rdi
callq 0x45460
jmp 0xa70b1
jmp 0xa73e5
movl $0xffffffff, -0x9b4(%rbp) # imm = 0xFFFFFFFF
movq -0x20(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa744f
movq 0x22db4d(%rip), %rdi    # 0x2d4f50
leaq 0x133f1d(%rip), %rsi    # 0x1db327
callq 0x2ff50
movq %rax, -0xfc0(%rbp)
jmp 0xa7418
movq -0xfc0(%rbp), %rdi
movq -0x20(%rbp), %rsi
addq $0x1540, %rsi           # imm = 0x1540
callq 0x2f780
movq %rax, -0xfc8(%rbp)
jmp 0xa7438
movq -0xfc8(%rbp), %rdi
movq 0x22db82(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa744d
jmp 0xa744f
movq -0x20(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x80, %rdi
leaq 0x12c5fd(%rip), %rsi    # 0x1d3a65
xorl %eax, %eax
movl %eax, %edx
callq 0x2f060
movq %rax, -0x9c0(%rbp)
cmpq $-0x1, -0x9c0(%rbp)
je 0xa796b
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa74b7
movq 0x22daa9(%rip), %rdi    # 0x2d4f50
leaq 0x133ea1(%rip), %rsi    # 0x1db34f
callq 0x2ff50
jmp 0xa74b5
jmp 0xa74b7
movq -0x20(%rbp), %rsi
movl -0x2c(%rbp), %edx
leaq -0x9e0(%rbp), %rdi
xorl %ecx, %ecx
callq 0xb33d0
jmp 0xa74ce
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7548
movq 0x22da61(%rip), %rdi    # 0x2d4f50
leaq 0x133ebb(%rip), %rsi    # 0x1db3b1
callq 0x2ff50
movq %rax, -0xfd0(%rbp)
jmp 0xa7504
movq -0xfd0(%rbp), %rdi
leaq -0x9e0(%rbp), %rsi
callq 0x2f780
movq %rax, -0xfd8(%rbp)
jmp 0xa7520
movq -0xfd8(%rbp), %rdi
leaq 0x13a4ee(%rip), %rsi    # 0x1e1a1c
callq 0x2ff50
jmp 0xa7535
jmp 0xa7548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa795a
movq -0xe50(%rbp), %rax
movq -0x20(%rbp), %rsi
movl 0x8(%rax), %edx
leaq -0xac0(%rbp), %rdi
xorl %ecx, %ecx
callq 0xec6c0
jmp 0xa7566
leaq -0xaa0(%rbp), %rdi
leaq -0x188(%rbp), %rsi
leaq -0xac0(%rbp), %rdx
callq 0xb3380
jmp 0xa7582
leaq 0x1330de(%rip), %rdx    # 0x1da667
leaq -0xa80(%rbp), %rdi
leaq -0xaa0(%rbp), %rsi
callq 0x441f0
jmp 0xa759e
movl -0x14(%rbp), %esi
leaq -0xae0(%rbp), %rdi
callq 0x17e460
jmp 0xa75af
leaq -0xa60(%rbp), %rdi
leaq -0xa80(%rbp), %rsi
leaq -0xae0(%rbp), %rdx
callq 0x9c7d0
jmp 0xa75cb
leaq 0x133095(%rip), %rdx    # 0x1da667
leaq -0xa40(%rbp), %rdi
leaq -0xa60(%rbp), %rsi
callq 0x441f0
jmp 0xa75e7
movl -0xc(%rbp), %esi
leaq -0xb00(%rbp), %rdi
callq 0x17e460
jmp 0xa75f8
leaq -0xa20(%rbp), %rdi
leaq -0xa40(%rbp), %rsi
leaq -0xb00(%rbp), %rdx
callq 0x9c7d0
jmp 0xa7614
leaq 0x133cd6(%rip), %rdx    # 0x1db2f1
leaq -0xa00(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
callq 0x441f0
jmp 0xa7630
leaq -0xa20(%rbp), %rdi
callq 0x311e8
leaq -0xb00(%rbp), %rdi
callq 0x311e8
leaq -0xa40(%rbp), %rdi
callq 0x311e8
leaq -0xa60(%rbp), %rdi
callq 0x311e8
leaq -0xae0(%rbp), %rdi
callq 0x311e8
leaq -0xa80(%rbp), %rdi
callq 0x311e8
leaq -0xaa0(%rbp), %rdi
callq 0x311e8
leaq -0xac0(%rbp), %rdi
callq 0x311e8
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7825
movq 0x22d89b(%rip), %rdi    # 0x2d4f50
leaq 0x133d30(%rip), %rsi    # 0x1db3ec
callq 0x2ff50
movq %rax, -0xfe0(%rbp)
jmp 0xa76ca
movq -0xfe0(%rbp), %rdi
leaq -0xa00(%rbp), %rsi
callq 0x2f780
movq %rax, -0xfe8(%rbp)
jmp 0xa76e6
movq -0xfe8(%rbp), %rdi
leaq 0x133d2b(%rip), %rsi    # 0x1db41f
callq 0x2ff50
movq %rax, -0xff0(%rbp)
jmp 0xa7702
movq -0xff0(%rbp), %rdi
leaq -0x9e0(%rbp), %rsi
callq 0x2f780
movq %rax, -0xff8(%rbp)
jmp 0xa771e
movq -0xff8(%rbp), %rdi
leaq 0x13a2f0(%rip), %rsi    # 0x1e1a1c
callq 0x2ff50
jmp 0xa7733
jmp 0xa7825
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa77bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xa20(%rbp), %rdi
callq 0x311e8
leaq -0xb00(%rbp), %rdi
callq 0x311e8
leaq -0xa40(%rbp), %rdi
callq 0x311e8
leaq -0xa60(%rbp), %rdi
callq 0x311e8
leaq -0xae0(%rbp), %rdi
callq 0x311e8
leaq -0xa80(%rbp), %rdi
callq 0x311e8
leaq -0xaa0(%rbp), %rdi
callq 0x311e8
leaq -0xac0(%rbp), %rdi
callq 0x311e8
jmp 0xa795a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa794e
leaq -0xb20(%rbp), %rdi
leaq -0x9e0(%rbp), %rsi
callq 0x2f300
jmp 0xa783a
leaq -0xb40(%rbp), %rdi
leaq -0xa00(%rbp), %rsi
callq 0x2f300
jmp 0xa784f
movl -0x14(%rbp), %edx
leaq -0xb20(%rbp), %rdi
leaq -0xb40(%rbp), %rsi
callq 0x17c790
movl %eax, -0xffc(%rbp)
jmp 0xa786d
movl -0xffc(%rbp), %eax
movl %eax, -0x9b4(%rbp)
leaq -0xb40(%rbp), %rdi
callq 0x311e8
leaq -0xb20(%rbp), %rdi
callq 0x311e8
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7931
movq 0x22d69a(%rip), %rdi    # 0x2d4f50
leaq 0x133b71(%rip), %rsi    # 0x1db42e
callq 0x2ff50
movq %rax, -0x1008(%rbp)
jmp 0xa78cb
movq -0x1008(%rbp), %rdi
movl -0x9b4(%rbp), %esi
callq 0x2f800
movq %rax, -0x1010(%rbp)
jmp 0xa78e6
movq -0x1010(%rbp), %rdi
movq 0x22d6d4(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa78fb
jmp 0xa7931
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb40(%rbp), %rdi
callq 0x311e8
leaq -0xb20(%rbp), %rdi
callq 0x311e8
jmp 0xa794e
leaq -0xa00(%rbp), %rdi
callq 0x311e8
leaq -0x9e0(%rbp), %rdi
callq 0x311e8
jmp 0xa7d42
leaq -0xa00(%rbp), %rdi
callq 0x311e8
leaq -0x9e0(%rbp), %rdi
callq 0x311e8
jmp 0xa861a
movq -0x20(%rbp), %rsi
addq $0x1540, %rsi           # imm = 0x1540
leaq 0x133abe(%rip), %rdx    # 0x1db43b
leaq -0xc40(%rbp), %rdi
callq 0x447b0
jmp 0xa798b
leaq -0xc20(%rbp), %rdi
leaq -0xc40(%rbp), %rsi
leaq -0x188(%rbp), %rdx
callq 0x44760
jmp 0xa79a7
leaq 0x13c721(%rip), %rdx    # 0x1e40cf
leaq -0xc00(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
callq 0x441f0
jmp 0xa79c3
leaq -0xbe0(%rbp), %rdi
leaq -0xc00(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
callq 0x44760
jmp 0xa79df
leaq 0x133a60(%rip), %rdx    # 0x1db446
leaq -0xbc0(%rbp), %rdi
leaq -0xbe0(%rbp), %rsi
callq 0x441f0
jmp 0xa79fb
leaq -0xba0(%rbp), %rdi
leaq -0xbc0(%rbp), %rsi
leaq -0x188(%rbp), %rdx
callq 0x44760
jmp 0xa7a17
movl -0x14(%rbp), %esi
leaq -0xc60(%rbp), %rdi
callq 0x17e460
jmp 0xa7a28
leaq -0xb80(%rbp), %rdi
leaq -0xba0(%rbp), %rsi
leaq -0xc60(%rbp), %rdx
callq 0x9c7d0
jmp 0xa7a44
leaq 0x133a00(%rip), %rdx    # 0x1db44b
leaq -0xb60(%rbp), %rdi
leaq -0xb80(%rbp), %rsi
callq 0x441f0
jmp 0xa7a60
leaq -0xb80(%rbp), %rdi
callq 0x311e8
leaq -0xc60(%rbp), %rdi
callq 0x311e8
leaq -0xba0(%rbp), %rdi
callq 0x311e8
leaq -0xbc0(%rbp), %rdi
callq 0x311e8
leaq -0xbe0(%rbp), %rdi
callq 0x311e8
leaq -0xc00(%rbp), %rdi
callq 0x311e8
leaq -0xc20(%rbp), %rdi
callq 0x311e8
leaq -0xc40(%rbp), %rdi
callq 0x311e8
movq -0x20(%rbp), %rax
testb $0x1, 0x1630(%rax)
je 0xa7bd8
leaq 0x133981(%rip), %rsi    # 0x1db459
leaq -0xb60(%rbp), %rdi
callq 0x2f330
jmp 0xa7ae6
jmp 0xa7bd8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7bb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7baa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7b9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7b92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7b86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7b7a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7b6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xb80(%rbp), %rdi
callq 0x311e8
leaq -0xc60(%rbp), %rdi
callq 0x311e8
leaq -0xba0(%rbp), %rdi
callq 0x311e8
leaq -0xbc0(%rbp), %rdi
callq 0x311e8
leaq -0xbe0(%rbp), %rdi
callq 0x311e8
leaq -0xc00(%rbp), %rdi
callq 0x311e8
leaq -0xc20(%rbp), %rdi
callq 0x311e8
leaq -0xc40(%rbp), %rdi
callq 0x311e8
jmp 0xa861a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa7d31
leaq -0xc80(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x2f300
jmp 0xa7bed
leaq -0xc80(%rbp), %rdi
callq 0x17d410
movl %eax, -0x1014(%rbp)
jmp 0xa7c01
movl -0x1014(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x1015(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x311e8
movb -0x1015(%rbp), %al
testb $0x1, %al
jne 0xa7c2d
jmp 0xa7c9f
leaq 0x132b63(%rip), %rsi    # 0x1da797
leaq -0xca0(%rbp), %rdi
leaq -0x188(%rbp), %rdx
callq 0x44240
jmp 0xa7c49
leaq -0xca0(%rbp), %rdi
callq 0x17e3f0
jmp 0xa7c57
leaq -0xca0(%rbp), %rdi
callq 0x311e8
jmp 0xa7c9f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xc80(%rbp), %rdi
callq 0x311e8
jmp 0xa7d31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xca0(%rbp), %rdi
callq 0x311e8
jmp 0xa7d31
movq -0x20(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7cfb
movq 0x22d29d(%rip), %rdi    # 0x2d4f50
leaq 0x1337a2(%rip), %rsi    # 0x1db45c
callq 0x2ff50
movq %rax, -0x1020(%rbp)
jmp 0xa7cc8
movq -0x1020(%rbp), %rdi
leaq -0xb60(%rbp), %rsi
callq 0x2f780
movq %rax, -0x1028(%rbp)
jmp 0xa7ce4
movq -0x1028(%rbp), %rdi
movq 0x22d2d6(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa7cf9
jmp 0xa7cfb
leaq -0xb60(%rbp), %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x31130
movl %eax, -0x102c(%rbp)
jmp 0xa7d17
movl -0x102c(%rbp), %eax
movl %eax, -0x9b4(%rbp)
leaq -0xb60(%rbp), %rdi
callq 0x311e8
jmp 0xa7d42
leaq -0xb60(%rbp), %rdi
callq 0x311e8
jmp 0xa861a
cmpl $0x0, -0x9b4(%rbp)
je 0xa7d58
cmpl $-0x1, -0x9b4(%rbp)
jne 0xa84c7
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa7d89
movq 0x22d1d7(%rip), %rdi    # 0x2d4f50
leaq 0x133710(%rip), %rsi    # 0x1db490
callq 0x2ff50
jmp 0xa7d87
jmp 0xa7d89
leaq -0xcc0(%rbp), %rdi
callq 0x2f880
movq -0x28(%rbp), %rdi
callq 0x451f0
movq %rax, -0xcc8(%rbp)
movq -0x28(%rbp), %rdi
callq 0x45250
movq %rax, -0xcd0(%rbp)
leaq -0xcc8(%rbp), %rdi
leaq -0xcd0(%rbp), %rsi
callq 0x45220
testb $0x1, %al
jne 0xa7dd1
jmp 0xa84a5
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq %rax, %rdi
addq $0x20, %rdi
addq $0x48, %rdi
callq 0x2f720
cmpq $0x0, %rax
jbe 0xa7e1b
leaq 0x1334f1(%rip), %rsi    # 0x1db2eb
leaq -0xcc0(%rbp), %rdi
callq 0x2f9d0
jmp 0xa7e08
jmp 0xa7e32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa84b6
leaq 0x1334cf(%rip), %rsi    # 0x1db2f1
leaq -0xcc0(%rbp), %rdi
callq 0x2f9d0
jmp 0xa7e30
jmp 0xa7e32
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq %rax, %rdx
leaq -0xd90(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x50f10
jmp 0xa7e56
leaq 0x13280a(%rip), %rdx    # 0x1da667
leaq -0xd70(%rbp), %rdi
leaq -0xd90(%rbp), %rsi
callq 0x441f0
jmp 0xa7e72
movl -0x14(%rbp), %esi
leaq -0xdb0(%rbp), %rdi
callq 0x17e460
jmp 0xa7e83
leaq -0xd50(%rbp), %rdi
leaq -0xd70(%rbp), %rsi
leaq -0xdb0(%rbp), %rdx
callq 0x9c7d0
jmp 0xa7e9f
leaq 0x1327c1(%rip), %rdx    # 0x1da667
leaq -0xd30(%rbp), %rdi
leaq -0xd50(%rbp), %rsi
callq 0x441f0
jmp 0xa7ebb
movl -0xc(%rbp), %esi
leaq -0xdd0(%rbp), %rdi
callq 0x17e460
jmp 0xa7ecc
leaq -0xd10(%rbp), %rdi
leaq -0xd30(%rbp), %rsi
leaq -0xdd0(%rbp), %rdx
callq 0x9c7d0
jmp 0xa7ee8
leaq -0xcf0(%rbp), %rdi
leaq -0xd10(%rbp), %rsi
leaq -0xcc0(%rbp), %rdx
callq 0x44760
jmp 0xa7f04
leaq -0xd10(%rbp), %rdi
callq 0x311e8
leaq -0xdd0(%rbp), %rdi
callq 0x311e8
leaq -0xd30(%rbp), %rdi
callq 0x311e8
leaq -0xd50(%rbp), %rdi
callq 0x311e8
leaq -0xdb0(%rbp), %rdi
callq 0x311e8
leaq -0xd70(%rbp), %rdi
callq 0x311e8
leaq -0xd90(%rbp), %rdi
callq 0x311e8
movq -0x20(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa8133
movq 0x22cfe0(%rip), %rdi    # 0x2d4f50
leaq 0x13356a(%rip), %rsi    # 0x1db4e1
callq 0x2ff50
movq %rax, -0x1038(%rbp)
jmp 0xa7f85
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq -0x1038(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, -0x1040(%rbp)
jmp 0xa7fa9
movq -0x1040(%rbp), %rdi
leaq 0x13356f(%rip), %rsi    # 0x1db526
callq 0x2ff50
movq %rax, -0x1048(%rbp)
jmp 0xa7fc5
movq -0x1048(%rbp), %rdi
leaq -0xcf0(%rbp), %rsi
callq 0x2f780
movq %rax, -0x1050(%rbp)
jmp 0xa7fe1
movq -0x1050(%rbp), %rdi
leaq 0x133542(%rip), %rsi    # 0x1db531
callq 0x2ff50
movq %rax, -0x1058(%rbp)
jmp 0xa7ffd
movq -0x1058(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x30640
movq %rax, -0x1060(%rbp)
jmp 0xa8015
movq -0x1060(%rbp), %rdi
leaq 0x13351b(%rip), %rsi    # 0x1db53e
callq 0x2ff50
movq %rax, -0x1068(%rbp)
jmp 0xa8031
movq -0x1068(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x30640
movq %rax, -0x1070(%rbp)
jmp 0xa8049
movq -0x1070(%rbp), %rdi
movq 0x22cf71(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa805e
jmp 0xa8133
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8111
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8105
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa80f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa80ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa80e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa80d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd10(%rbp), %rdi
callq 0x311e8
leaq -0xdd0(%rbp), %rdi
callq 0x311e8
leaq -0xd30(%rbp), %rdi
callq 0x311e8
leaq -0xd50(%rbp), %rdi
callq 0x311e8
leaq -0xdb0(%rbp), %rdi
callq 0x311e8
leaq -0xd70(%rbp), %rdi
callq 0x311e8
leaq -0xd90(%rbp), %rdi
callq 0x311e8
jmp 0xa84b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa8497
movq -0xe50(%rbp), %rax
movq (%rax), %rdi
addq $0x90, %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb3430
movq %rax, -0x1078(%rbp)
jmp 0xa8157
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq -0x1078(%rbp), %rdi
movq %rax, %rsi
callq 0xb3470
movq %rax, -0x1080(%rbp)
jmp 0xa817b
movl $0x160, %edi            # imm = 0x160
callq 0x2f3b0
movq %rax, -0x1088(%rbp)
jmp 0xa818e
movb $0x1, -0xe09(%rbp)
leaq -0xe08(%rbp), %rdi
leaq -0xcf0(%rbp), %rsi
callq 0x2f300
jmp 0xa81aa
movq -0x1088(%rbp), %rdi
movq -0x20(%rbp), %rdx
movl -0x2c(%rbp), %r8d
leaq -0xe08(%rbp), %rsi
xorl %ecx, %ecx
callq 0x8b790
jmp 0xa81c9
movq -0x1088(%rbp), %rax
movb $0x0, -0xe09(%rbp)
movq %rax, -0xde8(%rbp)
leaq -0xde0(%rbp), %rdi
leaq -0xc(%rbp), %rsi
leaq -0xde8(%rbp), %rdx
callq 0xb3590
jmp 0xa81f7
movq -0x1080(%rbp), %rdi
leaq -0xde0(%rbp), %rsi
callq 0xb3550
movb %dl, -0x1091(%rbp)
movq %rax, -0x1090(%rbp)
jmp 0xa8219
movb -0x1091(%rbp), %al
movq -0x1090(%rbp), %rcx
movq %rcx, -0xe20(%rbp)
movb %al, -0xe18(%rbp)
leaq -0xe08(%rbp), %rdi
callq 0x311e8
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa836f
movq 0x22ccec(%rip), %rdi    # 0x2d4f50
leaq 0x1332e0(%rip), %rsi    # 0x1db54b
callq 0x2ff50
movq %rax, -0x10a0(%rbp)
jmp 0xa8279
movq -0x10a0(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x30640
movq %rax, -0x10a8(%rbp)
jmp 0xa8291
movq -0x10a8(%rbp), %rdi
leaq 0x13608f(%rip), %rsi    # 0x1de32e
callq 0x2ff50
movq %rax, -0x10b0(%rbp)
jmp 0xa82ad
movq -0xe50(%rbp), %rax
movq (%rax), %rdi
addq $0x90, %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb3430
movq %rax, -0x10b8(%rbp)
jmp 0xa82d1
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq -0x10b8(%rbp), %rdi
movq %rax, %rsi
callq 0xb35c0
movq %rax, -0x10c0(%rbp)
jmp 0xa82f5
movq -0x10c0(%rbp), %rsi
movq -0x10b0(%rbp), %rdi
callq 0x30cf0
movq %rax, -0x10c8(%rbp)
jmp 0xa8311
movq -0x10c8(%rbp), %rdi
movq 0x22cca9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa8326
jmp 0xa836f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa834e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe08(%rbp), %rdi
callq 0x311e8
testb $0x1, -0xe09(%rbp)
jne 0xa8359
jmp 0xa836a
movq -0x1088(%rbp), %rdi
movl $0x160, %esi            # imm = 0x160
callq 0x2f2a0
jmp 0xa8497
movq -0x20(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa847a
movq 0x22cbc9(%rip), %rdi    # 0x2d4f50
leaq 0x1331d2(%rip), %rsi    # 0x1db560
callq 0x2ff50
movq %rax, -0x10d0(%rbp)
jmp 0xa839c
movq -0xe50(%rbp), %rax
movq (%rax), %rdi
addq $0x90, %rdi
movl -0x2c(%rbp), %eax
movl %eax, %esi
callq 0xb3430
movq %rax, -0x10d8(%rbp)
jmp 0xa83c0
leaq -0xcc8(%rbp), %rdi
callq 0x452f0
movq -0x10d8(%rbp), %rdi
movq %rax, %rsi
callq 0xb3470
movq %rax, -0x10e0(%rbp)
jmp 0xa83e4
movq -0x10e0(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, -0xe44(%rbp)
leaq -0xe44(%rbp), %rsi
callq 0xb3620
movq %rax, -0x10e8(%rbp)
jmp 0xa8409
movq -0x10e8(%rbp), %rax
movq (%rax), %rsi
leaq -0xe40(%rbp), %rdi
callq 0x8dce0
jmp 0xa8421
movq -0x10d0(%rbp), %rdi
leaq -0xe40(%rbp), %rsi
callq 0x2f780
movq %rax, -0x10f0(%rbp)
jmp 0xa843d
movq -0x10f0(%rbp), %rdi
leaq 0x13314f(%rip), %rsi    # 0x1db59a
callq 0x2ff50
jmp 0xa8452
leaq -0xe40(%rbp), %rdi
callq 0x311e8
jmp 0xa847a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe40(%rbp), %rdi
callq 0x311e8
jmp 0xa8497
leaq -0xcf0(%rbp), %rdi
callq 0x311e8
leaq -0xcc8(%rbp), %rdi
callq 0x45460
jmp 0xa7da5
leaq -0xcf0(%rbp), %rdi
callq 0x311e8
jmp 0xa84b6
leaq -0xcc0(%rbp), %rdi
callq 0x311e8
jmp 0xa858c
leaq -0xcc0(%rbp), %rdi
callq 0x311e8
jmp 0xa861a
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa8560
movq 0x22ca68(%rip), %rdi    # 0x2d4f50
leaq 0x1330b4(%rip), %rsi    # 0x1db5a3
callq 0x2ff50
movq %rax, -0x10f8(%rbp)
jmp 0xa84fd
movq -0x10f8(%rbp), %rdi
movl -0x9b4(%rbp), %esi
callq 0x2f800
movq %rax, -0x1100(%rbp)
jmp 0xa8518
movq -0x1100(%rbp), %rdi
movq 0x22caa2(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa852d
movq 0x22ca1c(%rip), %rdi    # 0x2d4f50
leaq 0x133074(%rip), %rsi    # 0x1db5af
callq 0x2ff50
movq %rax, -0x1108(%rbp)
jmp 0xa8549
movq -0x1108(%rbp), %rdi
movq 0x22ca71(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xa855e
jmp 0xa8560
movq -0x20(%rbp), %rax
movq (%rax), %r9
movl -0x30(%rbp), %esi
movq %rsp, %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
xorl %edx, %edx
movl $0xe, %ecx
movl $0x1, %r8d
movq %r9, %rdi
callq 0xcd520
jmp 0xa858a
jmp 0xa858c
movq -0xe50(%rbp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xa85bd
movq 0x22c9a3(%rip), %rdi    # 0x2d4f50
leaq 0x133033(%rip), %rsi    # 0x1db5e7
callq 0x2ff50
jmp 0xa85bb
jmp 0xa85bd
leaq -0x8c0(%rbp), %rdi
callq 0x311e8
leaq -0x870(%rbp), %rdi
callq 0x2f0e0
leaq -0x288(%rbp), %rdi
callq 0x311e8
leaq -0x208(%rbp), %rdi
callq 0x311e8
leaq -0x1e8(%rbp), %rdi
callq 0x311e8
leaq -0x188(%rbp), %rdi
callq 0x311e8
leaq -0x88(%rbp), %rdi
callq 0x311e8
addq $0x1130, %rsp           # imm = 0x1130
popq %rbp
retq
leaq -0x8c0(%rbp), %rdi
callq 0x311e8
leaq -0x870(%rbp), %rdi
callq 0x2f0e0
leaq -0x288(%rbp), %rdi
callq 0x311e8
leaq -0x208(%rbp), %rdi
callq 0x311e8
leaq -0x1e8(%rbp), %rdi
callq 0x311e8
leaq -0x188(%rbp), %rdi
callq 0x311e8
leaq -0x88(%rbp), %rdi
callq 0x311e8
movq -0x60(%rbp), %rdi
callq 0x30170
nopw (%rax,%rax)