// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x7d8, %rsp            # imm = 0x7D8
movl %edx, %ebp
movl %esi, 0xc(%rsp)
movq %rdi, %r14
movq (%rdi), %rax
movl 0x40(%rax), %r15d
movq 0xa8(%rax), %rcx
cmpl $0x3, 0x1614(%rcx)
jb 0x55ff6
movq 0x12000e(%rip), %rbx    # 0x175fa8
leaq 0xa2963(%rip), %rsi     # 0xf8904
movl $0x16, %edx
movq %rbx, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r14), %rax
movq 0xa8(%rax), %rcx
testq %rcx, %rcx
je 0x56eef
movq %r15, 0x148(%rsp)
movq %rcx, 0xb8(%rsp)
movq %r14, (%rsp)
movl 0x8(%r14), %esi
movq 0x78(%rax), %rcx
movq 0x80(%rax), %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq %rsi, %rdx
jbe 0x591fd
movq (%rcx,%rsi,8), %rcx
movq %rcx, 0x100(%rsp)
movl 0x40(%rax), %r15d
movq 0xb8(%rsp), %r14
movq 0x15c8(%r14), %r12
subq 0x15c0(%r14), %r12
shrq $0x3, %r12
movq %rsi, 0x90(%rsp)
cmpl %r12d, %esi
jb 0x56143
movq 0x11ff3d(%rip), %rbx    # 0x175fa8
leaq 0xa28e6(%rip), %rsi     # 0xf8958
movl $0x28, %edx
movq %rbx, %rdi
callq 0x22ab0
movq 0x15c8(%r14), %rax
subq 0x15c0(%r14), %rax
shrq $0x3, %rax
movl %eax, %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0xa28dc(%rip), %rsi     # 0xf8981
movl $0xf, %edx
movq %rax, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq 0x90(%rsp), %rsi
callq 0x22650
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x4d0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xa2892(%rip), %rsi     # 0xf8991
leaq 0xa28c8(%rip), %rdx     # 0xf89ce
leaq 0x4c0(%rsp), %rbx
movq %rbx, %rdi
callq 0x321d2
movq %rbx, %rdi
callq 0xbfa27
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
movq 0xb8(%rsp), %r14
je 0x56143
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movl 0x8(%rax), %edx
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x79f68
leaq 0xa1cb1(%rip), %rsi     # 0xf7e17
movq %rbx, %rdi
callq 0x233b0
leaq 0xa8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5619e
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x561a6
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe0(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %r8
movq 0xe8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x56204
movq 0xa8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x56230
leaq 0xf0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x5622b
movq 0xf0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5623f
leaq 0x98(%rsp), %rdi
callq 0x222b0
jmp 0x56250
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x180(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x5627d
movq %rsi, 0x170(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x180(%rsp)
jmp 0x56283
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x178(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa1b6d(%rip), %rsi     # 0xf7e17
leaq 0x170(%rsp), %rdi
callq 0x233b0
leaq 0x118(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x562e7
movq %rdx, 0x108(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x118(%rsp)
jmp 0x562ed
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x110(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xbfa49
movq 0x108(%rsp), %rcx
movq 0x110(%rsp), %r8
movq 0x38(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
leaq 0x118(%rsp), %rsi
cmpq %rsi, %rcx
je 0x56349
movq 0x118(%rsp), %rdi
movq 0x30(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x5636c
leaq 0x40(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x56367
movq 0x40(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5637b
leaq 0x108(%rsp), %rdi
callq 0x222b0
jmp 0x56389
leaq 0x30(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x4f0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x563b6
movq %rsi, 0x4e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4f0(%rsp)
jmp 0x563bc
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x4e8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa2f20(%rip), %rsi     # 0xf9303
leaq 0x4e0(%rsp), %rdi
callq 0x233b0
leaq 0x208(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56420
movq %rdx, 0x1f8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x208(%rsp)
jmp 0x56426
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x200(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x4f0(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x56462
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5647d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x564a2
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x564c3
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
decl %r15d
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x564e7
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
imull %r12d, %r15d
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x56508
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0x90(%rsp), %r12
je 0x56531
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
leal (%r12,%r15), %eax
incl %eax
movl %eax, 0x1d0(%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rcx
cmpl $0x3, 0x1614(%rcx)
movq 0xb8(%rsp), %r15
jb 0x56623
movq 0x11fa40(%rip), %rdi    # 0x175fa8
leaq 0xa2460(%rip), %rsi     # 0xf89cf
movl $0x27, %edx
callq 0x22ab0
movl 0x1d0(%rsp), %esi
movq 0x11fa21(%rip), %rdi    # 0x175fa8
callq 0x22650
movq %rax, %rbx
leaq 0xa803a(%rip), %rsi     # 0xfe5d0
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq 0x148(%rsp), %rsi
callq 0x22650
movq %rax, %rbx
leaq 0xab0c4(%rip), %rsi     # 0x101681
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rsp), %rax
movl 0x8(%rax), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0xa2414(%rip), %rsi     # 0xf89f7
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
leaq 0xaaec5(%rip), %rsi     # 0x1014d4
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movl 0xb0(%rax), %esi
leaq 0x170(%rsp), %rdi
callq 0xbfa49
movq 0x1520(%r15), %rcx
movq 0x1528(%r15), %r8
leaq 0x170(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x4e0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56681
movq %rdx, 0x4e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4f0(%rsp)
jmp 0x56688
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x4e0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa91a9(%rip), %rsi     # 0xff857
callq 0x233b0
leaq 0x118(%rsp), %rsi
movq %rsi, 0x108(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x566e7
movq %rdx, 0x108(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x118(%rsp)
jmp 0x566ed
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x110(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x56725
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x5674a
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x170(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x335a4
leaq 0x1b0(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
leaq 0xa1694(%rip), %rsi     # 0xf7e17
leaq 0x1b0(%rsp), %rdi
callq 0x233b0
movq %r14, 0x4e0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x567bc
movq %rdx, 0x4e0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x4f0(%rsp)
jmp 0x567c3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x4e8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe0(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xbfa49
movq 0x4e0(%rsp), %rcx
movq 0x4e8(%rsp), %r8
movq 0xe8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r14, %rcx
je 0x5681d
movq 0x4f0(%rsp), %rdi
movq 0xe0(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x56849
movl $0xf, %edi
leaq 0xf0(%rsp), %r9
cmpq %r9, %rsi
je 0x56844
movq 0xf0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x56858
leaq 0x4e0(%rsp), %rdi
callq 0x222b0
jmp 0x56869
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r13, 0x98(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x56892
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x5689a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x568df
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x568fc
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x56921
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1c0(%rsp), %rax
movq %rax, 0x1b0(%rsp)
movq $0x0, 0x1b8(%rsp)
movb $0x0, 0x1c0(%rsp)
movq (%rsp), %rax
movq (%rax), %rax
cmpl $0x1, 0xb0(%rax)
setne %cl
orb %bpl, %cl
je 0x56bdb
testb %bpl, %bpl
je 0x573bd
movq 0x11f639(%rip), %rbx    # 0x175fa8
leaq 0xa20b4(%rip), %rsi     # 0xf8a2a
movl $0x15, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x11f607(%rip), %rdi    # 0x175fa8
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x100(%rsp), %rax
cmpb $0x1, 0xb8(%rax)
jne 0x56f18
leaq 0xa1584(%rip), %rsi     # 0xf7f4e
leaq 0xe0(%rsp), %rdi
xorl %edx, %edx
callq 0x3186e
leaq 0x350(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xa203a(%rip), %rsi     # 0xf8a26
leaq 0xa2036(%rip), %rdx     # 0xf8a29
leaq 0x340(%rsp), %rdi
callq 0x321d2
leaq 0x4e0(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
leaq 0xe0(%rsp), %rdx
leaq 0x340(%rsp), %rcx
xorl %r8d, %r8d
callq 0x4a0a3
leaq 0x1f8(%rsp), %rdi
leaq 0x4e0(%rsp), %rbx
movq %rbx, %rsi
callq 0x22bb0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x56a58
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x340(%rsp), %rdi
cmpq %r15, %rdi
je 0x56a75
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xe8(%rsp), %rdi
callq 0x32268
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5920b
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x748(%rsp), %rdi
callq 0x51772
leaq 0x470(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x460(%rsp), %rdi
callq 0x3213c
leaq 0x330(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x320(%rsp), %rdi
callq 0x3213c
leaq 0x310(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x300(%rsp), %rdi
callq 0x3213c
xorl %eax, %eax
leaq 0x748(%rsp), %rbx
leaq 0x460(%rsp), %rdx
leaq 0x320(%rsp), %rcx
leaq 0x300(%rsp), %r8
movq 0x100(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq $0x1
pushq %rax
pushq %rax
pushq %rax
callq 0x4ebec
addq $0x20, %rsp
movq 0x300(%rsp), %rdi
cmpq %r12, %rdi
je 0x56ba9
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x320(%rsp), %rdi
cmpq %r15, %rdi
movq 0x90(%rsp), %r12
je 0x56bce
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x460(%rsp), %rdi
jmp 0x5739d
movq 0x100(%rsp), %rcx
cmpb $0x1, 0xb8(%rcx)
jne 0x56d9e
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x56c18
movq 0x11f3a1(%rip), %rdi    # 0x175fa8
leaq 0xa1dfb(%rip), %rsi     # 0xf8a09
movl $0x16, %edx
callq 0x22ab0
cmpl $0x0, 0x13ec(%r15)
jne 0x57249
movq 0x15c0(%r15), %rax
movq 0x15c8(%r15), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r12, %rdx
jbe 0x5922d
movq (%rax,%r12,8), %rax
leaq 0x4e0(%rsp), %rdi
movq %r14, (%rdi)
movq 0x68(%rax), %rsi
movq 0x70(%rax), %rdx
addq %rsi, %rdx
callq 0x3213c
leaq 0x410(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x4e0(%rsp), %rsi
movq 0x4e8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x400(%rsp), %rdi
callq 0x3213c
leaq 0xe0(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0xbeb1d
movq 0x400(%rsp), %rdi
cmpq %rbx, %rdi
je 0x56cc1
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
addq %rsi, %rdx
callq 0x3213c
leaq 0xa1d33(%rip), %rsi     # 0xf8a20
leaq 0x30(%rsp), %rdi
callq 0x233b0
leaq 0x1520(%r15), %rbx
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %rbx, %rsi
callq 0x335a4
movq 0x1528(%r15), %rdx
decq %rdx
leaq 0x10(%rsp), %rdi
movl $0x1, %ecx
movq %rbx, %rsi
callq 0x22a00
leaq 0xa8b24(%rip), %rsi     # 0xff857
leaq 0x10(%rsp), %rdi
callq 0x22250
testl %eax, %eax
je 0x57070
movq 0x1528(%r15), %rdx
decq %rdx
leaq 0x50(%rsp), %rdi
movl $0x1, %ecx
movq %rbx, %rsi
callq 0x22a00
leaq 0xa0f2c(%rip), %rsi     # 0xf7c94
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x22250
testl %eax, %eax
setne %bpl
movq (%rbx), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x57072
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x57072
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5920b
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x778(%rsp), %rdi
callq 0x51772
leaq 0x490(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x480(%rsp), %rdi
callq 0x3213c
leaq 0x390(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x380(%rsp), %rdi
callq 0x3213c
leaq 0x370(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x360(%rsp), %rdi
callq 0x3213c
xorl %eax, %eax
leaq 0x778(%rsp), %rbx
leaq 0x480(%rsp), %rdx
leaq 0x380(%rsp), %rcx
leaq 0x360(%rsp), %r8
movq 0x100(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq %rax
pushq %rax
callq 0x4ebec
addq $0x20, %rsp
movq 0x360(%rsp), %rdi
cmpq %r12, %rdi
je 0x56ebd
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x380(%rsp), %rdi
cmpq %r15, %rdi
movq 0x90(%rsp), %r12
je 0x56ee2
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x480(%rsp), %rdi
jmp 0x5739d
movq 0x11f0b2(%rip), %rdi    # 0x175fa8
leaq 0xa1a1e(%rip), %rsi     # 0xf891b
movl $0x3c, %edx
addq $0x7d8, %rsp            # imm = 0x7D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5920b
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x718(%rsp), %rdi
callq 0x51772
leaq 0x450(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x440(%rsp), %rdi
callq 0x3213c
leaq 0x2f0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2e0(%rsp), %rdi
callq 0x3213c
leaq 0x2d0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2c0(%rsp), %rdi
callq 0x3213c
xorl %eax, %eax
leaq 0x718(%rsp), %rbx
leaq 0x440(%rsp), %rdx
leaq 0x2e0(%rsp), %rcx
leaq 0x2c0(%rsp), %r8
movq 0x100(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq %rax
pushq %rax
callq 0x4ebec
addq $0x20, %rsp
movq 0x2c0(%rsp), %rdi
cmpq %r12, %rdi
je 0x5703e
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
movq 0x90(%rsp), %r12
je 0x57063
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x440(%rsp), %rdi
jmp 0x5739d
xorl %ebp, %ebp
leaq 0x20(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x5708e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
testb %bpl, %bpl
je 0x57163
movq %r15, %rax
leaq 0x60(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1520(%rax), %rsi
movq 0x1528(%rax), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x3213c
leaq 0xa8792(%rip), %rsi     # 0xff857
leaq 0x50(%rsp), %rdi
callq 0x233b0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x50(%rsp), %rdi
callq 0x222b0
movq %r12, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57106
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5710e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x70(%rsp), %rdi
movq %rbx, %rsi
callq 0x22bb0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x5714c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x57163
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x1, 0xc(%rsp)
movq 0x90(%rsp), %r12
jne 0x571ca
leaq 0x3f0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3e0(%rsp), %rdi
callq 0x3213c
leaq 0x3e0(%rsp), %rsi
movq 0x100(%rsp), %rdi
callq 0x4e91a
movq 0x3e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x571ca
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x571eb
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x57207
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x5722c
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x57249
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5920b
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x7a8(%rsp), %rdi
callq 0x51772
leaq 0x4b0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4a0(%rsp), %rdi
callq 0x3213c
leaq 0x3d0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3c0(%rsp), %rdi
callq 0x3213c
leaq 0x3b0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3a0(%rsp), %rdi
callq 0x3213c
xorl %eax, %eax
leaq 0x7a8(%rsp), %rbx
leaq 0x4a0(%rsp), %rdx
leaq 0x3c0(%rsp), %rcx
leaq 0x3a0(%rsp), %r8
movq 0x100(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq $0x1
pushq %rax
callq 0x4ebec
addq $0x20, %rsp
movq 0x3a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x57370
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x3c0(%rsp), %rdi
cmpq %r15, %rdi
movq 0x90(%rsp), %r12
je 0x57395
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
movq 0xb8(%rsp), %r15
je 0x573b5
movq (%r14), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x4a472
leaq 0x4e0(%rsp), %rdi
leaq 0x170(%rsp), %rsi
movl $0x8, %edx
callq 0x23070
movq 0x4e0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x500(%rsp,%rax)
je 0x574dd
cmpl $0x2, 0x1614(%r15)
jb 0x57459
movq 0x11eba6(%rip), %rdi    # 0x175fa8
leaq 0xa1637(%rip), %rsi     # 0xf8a40
movl $0x15, %edx
callq 0x22ab0
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
movq 0x11eb7e(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
jbe 0x5921c
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x6e8(%rsp), %rdi
callq 0x51772
movq (%rsp), %rax
movq (%rax), %rax
movl 0xb0(%rax), %r8d
leaq 0x6e8(%rsp), %rsi
movq %r15, %rdi
movl 0x1d0(%rsp), %ebx
movl %ebx, %edx
xorl %ecx, %ecx
callq 0x9022a
leaq 0x6e8(%rsp), %rdi
callq 0x4a472
movq %r15, %rdi
movl %ebx, %esi
callq 0x95896
cmpl $0x3, 0x1614(%r15)
jb 0x57575
movq 0x11eab6(%rip), %rdi    # 0x175fa8
leaq 0xa155d(%rip), %rsi     # 0xf8a56
movl $0x13, %edx
callq 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movl 0xb0(%rax), %esi
movq 0x11ea91(%rip), %rdi    # 0x175fa8
callq 0x22650
movq %rax, %rbx
leaq 0xa1544(%rip), %rsi     # 0xf8a6a
movl $0x5, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0xf0(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq $0x0, 0xe8(%rsp)
movb $0x0, 0xf0(%rsp)
cmpb $0x1, 0x1630(%r15)
jne 0x57a51
movq 0x100(%rsp), %rax
movq 0x18(%rax), %rbx
leaq 0x8(%rax), %r15
cmpq %r15, %rbx
je 0x57a51
leaq 0x60(%rsp), %r12
leaq 0x20(%rsp), %r13
leaq 0x80(%rsp), %r14
cmpq $0x0, 0x90(%rbx)
movq 0xe8(%rsp), %rdx
leaq 0xa1487(%rip), %rcx     # 0xf8a70
leaq 0xa1486(%rip), %rax     # 0xf8a76
cmoveq %rax, %rcx
movl $0x5, %r8d
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
callq 0x22fb0
leaq 0x20(%rbx), %rdx
leaq 0xc0(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x335a4
leaq 0x128(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
movq 0xc0(%rsp), %rcx
movl $0xf, %edi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rcx
je 0x57659
movq 0xd0(%rsp), %rdi
movq 0xc8(%rsp), %r8
movq 0x128(%rsp), %rsi
movq 0x130(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x57699
movl $0xf, %edi
leaq 0x138(%rsp), %r9
cmpq %r9, %rsi
je 0x57694
movq 0x138(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x576a8
leaq 0xc0(%rsp), %rdi
callq 0x222b0
jmp 0x576b9
leaq 0x128(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r12, 0x50(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x576d9
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x576e1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x50(%rsp), %rdi
leaq 0xa070d(%rip), %rsi     # 0xf7e17
callq 0x233b0
movq %r13, 0x10(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57732
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x5773a
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x150(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xbfa49
movq 0x10(%rsp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0x57777
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %r8
movq 0x150(%rsp), %rsi
movq 0x158(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x577b4
movl $0xf, %edi
leaq 0x160(%rsp), %r9
cmpq %r9, %rsi
je 0x577af
movq 0x160(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x577c0
leaq 0x10(%rsp), %rdi
callq 0x222b0
jmp 0x577d1
leaq 0x150(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x70(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x577f4
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x577fb
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
leaq 0x70(%rsp), %rdi
callq 0x222b0
leaq 0x40(%rsp), %rbp
movq %rbp, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5785a
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x57861
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1b0(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x22bb0
movq 0x30(%rsp), %rdi
cmpq %rbp, %rdi
je 0x578a2
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x578bc
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x578e1
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x578f8
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r12, %rdi
je 0x5790f
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x57934
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x57959
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57a30
movl $0x11, %edx
movq 0x11e628(%rip), %rdi    # 0x175fa8
leaq 0xa10f5(%rip), %rsi     # 0xf8a7c
callq 0x22ab0
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x11e605(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbp, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movl $0x1d, %edx
movq 0x11e5ca(%rip), %rdi    # 0x175fa8
leaq 0xa10a9(%rip), %rsi     # 0xf8a8e
callq 0x22ab0
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
movq 0x11e5a7(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbp
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbp, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x1b0(%rsp), %rdi
callq 0xbf7a2
movq %rbx, %rdi
callq 0x22670
movq %rax, %rbx
cmpq %r15, %rax
jne 0x575d2
movq 0xb8(%rsp), %r15
cmpl $0x3, 0x1614(%r15)
jb 0x57abf
movq 0x11e53e(%rip), %rdi    # 0x175fa8
leaq 0xa103b(%rip), %rsi     # 0xf8aac
movl $0x27, %edx
callq 0x22ab0
movq 0x1540(%r15), %rsi
movq 0x1548(%r15), %rdx
movq 0x11e518(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x1540(%r15), %rdi
leaq 0x99b43(%rip), %rsi     # 0xf1610
movl $0x6, %ecx
xorl %edx, %edx
callq 0x231f0
cmpq $-0x1, %rax
leaq 0xa8(%rsp), %r13
movq 0x90(%rsp), %rbx
je 0x57c1e
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57b22
movq 0x11e497(%rip), %rdi    # 0x175fa8
leaq 0xa0fbc(%rip), %rsi     # 0xf8ad4
movl $0x61, %edx
callq 0x22ab0
leaq 0x70(%rsp), %rsi
movl %ebx, (%rsi)
leaq 0x1908(%r15), %rdi
callq 0x668de
movq (%rax), %rax
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x3213c
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57bad
movq 0x11e436(%rip), %rdi    # 0x175fa8
leaq 0xa0fbd(%rip), %rsi     # 0xf8b36
movl $0x3a, %edx
callq 0x22ab0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x11e414(%rip), %rdi    # 0x175fa8
callq 0x22ab0
leaq 0xa73ac(%rip), %rsi     # 0xfef4c
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rsp), %rax
movl 0x8(%rax), %edx
leaq 0x1d8(%rsp), %rdi
movq %r15, %rsi
xorl %ecx, %ecx
callq 0x79e6e
movq 0x108(%rsp), %rcx
movq 0x110(%rsp), %r8
leaq 0x1d8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x160(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57cb0
movq %rdx, 0x150(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x160(%rsp)
jmp 0x57cb7
leaq 0x1e8(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x1540(%r15), %rsi
movq 0x1548(%r15), %rdx
addq %rsi, %rdx
leaq 0x1d8(%rsp), %rdi
callq 0x3213c
leaq 0xa0f71(%rip), %rsi     # 0xf8bc0
leaq 0x1d8(%rsp), %rdi
callq 0x233b0
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
leaq 0x1d8(%rsp), %rdi
callq 0x222b0
leaq 0x160(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58247
movq %rdx, 0x150(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x160(%rsp)
jmp 0x5824e
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x150(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa013a(%rip), %rsi     # 0xf7e17
callq 0x233b0
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57d12
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x57d19
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x130(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x190(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
movq 0x128(%rsp), %rcx
movq 0x130(%rsp), %r8
movq 0x198(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x57d77
movq 0x138(%rsp), %rdi
movq 0x190(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x57da3
leaq 0x1a0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x57d9e
movq 0x1a0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x57db2
leaq 0x128(%rsp), %rdi
callq 0x222b0
jmp 0x57dc3
leaq 0x190(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xd0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x57df0
movq %rsi, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x57df6
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x9fffa(%rip), %rsi     # 0xf7e17
leaq 0xc0(%rsp), %rdi
callq 0x233b0
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57e51
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x57e59
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x218(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xbfa49
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %r8
movq 0x220(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x57ea7
movq 0x60(%rsp), %rdi
movq 0x218(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x57ed3
leaq 0x228(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x57ece
movq 0x228(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x57edf
leaq 0x50(%rsp), %rdi
callq 0x222b0
jmp 0x57ef0
leaq 0x218(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x20(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x57f14
movq %rsi, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x57f1a
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa0b38(%rip), %rsi     # 0xf8a76
leaq 0x10(%rsp), %rdi
callq 0x233b0
leaq 0x80(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57f76
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x57f7e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57fb1
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x228(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57fd2
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x57fe9
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0xa8(%rsp), %r13
je 0x58012
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58033
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x58050
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
cmpq %r14, %rdi
je 0x5806d
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5808e
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x58110
movq 0x11defc(%rip), %rdi    # 0x175fa8
leaq 0xa0abe(%rip), %rsi     # 0xf8b71
movl $0x32, %edx
callq 0x22ab0
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq 0x11deda(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbx
leaq 0xa0ac7(%rip), %rsi     # 0xf8ba4
movl $0xe, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
leaq 0xa6e49(%rip), %rsi     # 0xfef4c
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
leaq 0x2b0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2a0(%rsp), %rdi
callq 0x3213c
leaq 0x290(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x280(%rsp), %rdi
callq 0x3213c
leaq 0x2a0(%rsp), %rdi
leaq 0x280(%rsp), %rsi
movq 0x148(%rsp), %rdx
callq 0xbddc8
movl %eax, %ebx
movq 0x280(%rsp), %rdi
cmpq %r15, %rdi
je 0x58198
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
movq 0xb8(%rsp), %r15
je 0x581bd
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x58224
movq 0x11ddcd(%rip), %rdi    # 0x175fa8
leaq 0xa09d1(%rip), %rsi     # 0xf8bb3
movl $0xc, %edx
callq 0x22ab0
movq 0x11ddb5(%rip), %rdi    # 0x175fa8
movl %ebx, %esi
callq 0x231e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x58737
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x58737
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x150(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa91b0(%rip), %rsi     # 0x101424
callq 0x233b0
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x582aa
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x582b2
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq 0x128(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x170(%rsp), %rsi
movq 0x178(%rsp), %rdx
callq 0x222b0
leaq 0xd0(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58316
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x5831e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0xc0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa0887(%rip), %rsi     # 0xf8bcb
callq 0x233b0
leaq 0x60(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58370
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x58377
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x50(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
callq 0x222b0
leaq 0x20(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x583cf
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x583d5
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x190(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
movq 0x10(%rsp), %rcx
movq 0x18(%rsp), %r8
movq 0x198(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rbx, %rcx
je 0x58427
movq 0x20(%rsp), %rdi
movq 0x190(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x58453
leaq 0x1a0(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x5844e
movq 0x1a0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5845f
leaq 0x10(%rsp), %rdi
callq 0x222b0
jmp 0x58470
leaq 0x190(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x80(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x5849a
movq %rsi, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x584a0
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa070c(%rip), %rsi     # 0xf8bd0
leaq 0x70(%rsp), %rdi
callq 0x233b0
leaq 0x40(%rsp), %rsi
movq %rsi, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x584f6
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x584fc
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58535
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58556
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5856d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x58584
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x585a1
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
leaq 0xa8(%rsp), %r13
je 0x585c6
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x585e3
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
movq 0xb8(%rsp), %r15
je 0x58608
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpb $0x1, 0x1630(%r15)
jne 0x58623
leaq 0xa05c5(%rip), %rsi     # 0xf8bde
leaq 0x30(%rsp), %rdi
callq 0x233b0
leaq 0x270(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
leaq 0x260(%rsp), %rdi
callq 0x3213c
leaq 0x260(%rsp), %rdi
callq 0xbe9a8
movl %eax, %ebx
movq 0x260(%rsp), %rdi
cmpq %r14, %rdi
je 0x5867b
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
testl %ebx, %ebx
jne 0x586c9
leaq 0x9f8c1(%rip), %rsi     # 0xf7f47
leaq 0x420(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x31944
leaq 0x420(%rsp), %rdi
callq 0xbfa1f
leaq 0x430(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x586c9
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x3, 0x1614(%r15)
jb 0x5872b
movq 0x11d8ce(%rip), %rdi    # 0x175fa8
leaq 0xa0500(%rip), %rsi     # 0xf8be1
movl $0x33, %edx
callq 0x22ab0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x11d8ac(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x30(%rsp), %rdi
callq 0x227f0
movl %eax, %ebx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x58753
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
leal 0x1(%rbx), %ecx
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
movl 0x1614(%rax), %eax
cmpl $0x1, %ecx
ja 0x58ff5
cmpl $0x3, %eax
jb 0x58790
movq 0x11d829(%rip), %rdi    # 0x175fa8
leaq 0xa048f(%rip), %rsi     # 0xf8c15
movl $0x50, %edx
callq 0x22ab0
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
movq 0x100(%rsp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, 0x100(%rsp)
cmpq %rax, %r12
je 0x58fe8
leaq 0x138(%rsp), %r14
movl 0xc(%rsp), %eax
movq %rax, 0x258(%rsp)
cmpq $0x0, 0x90(%r12)
movq 0x38(%rsp), %rdx
leaq 0xa027e(%rip), %rcx     # 0xf8a70
leaq 0xa027d(%rip), %rax     # 0xf8a76
cmoveq %rax, %rcx
movl $0x5, %r8d
leaq 0x30(%rsp), %rdi
xorl %esi, %esi
callq 0x22fb0
leaq 0x20(%r12), %r13
leaq 0x150(%rsp), %rbx
movq %rbx, %rdi
leaq 0x108(%rsp), %rsi
movq %r13, %rdx
callq 0x335a4
movq %rbx, %rdi
leaq 0x9f5de(%rip), %rsi     # 0xf7e17
callq 0x233b0
movq %r14, 0x128(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5886a
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x58871
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x130(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1d8(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xbfa49
movq 0x128(%rsp), %rcx
movl $0xf, %edi
cmpq %r14, %rcx
je 0x588bb
movq 0x138(%rsp), %rdi
movq 0x130(%rsp), %r8
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x588fb
movl $0xf, %edi
leaq 0x1e8(%rsp), %r9
cmpq %r9, %rsi
je 0x588f6
movq 0x1e8(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x5890a
leaq 0x128(%rsp), %rdi
callq 0x222b0
jmp 0x5891b
leaq 0x1d8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xd0(%rsp), %rsi
movq %rsi, 0xc0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5894c
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x58952
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xc0(%rsp), %rdi
leaq 0x9f496(%rip), %rsi     # 0xf7e17
callq 0x233b0
leaq 0x60(%rsp), %rsi
movq %rsi, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x589ae
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x589b4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x190(%rsp), %rdi
movl 0xc(%rsp), %esi
callq 0xbfa49
movq 0x50(%rsp), %rcx
movl $0xf, %edi
leaq 0x60(%rsp), %rax
cmpq %rax, %rcx
je 0x589f6
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %r8
movq 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
jbe 0x58a33
movl $0xf, %edi
leaq 0x1a0(%rsp), %r9
cmpq %r9, %rsi
je 0x58a2e
movq 0x1a0(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x58a3f
leaq 0x50(%rsp), %rdi
callq 0x222b0
jmp 0x58a50
leaq 0x190(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x58a75
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x58a7b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x10(%rsp), %rdi
callq 0x222b0
leaq 0x80(%rsp), %rsi
movq %rsi, 0x70(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58ada
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x58ae0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x78(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x58b14
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x58b39
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x58b55
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x58b7a
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x58b9f
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x58bbc
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %r12, 0x1d0(%rsp)
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x58be9
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xb8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x58cd3
movl $0x44, %edx
movq 0x11d39e(%rip), %rdi    # 0x175fa8
leaq 0xa0055(%rip), %rsi     # 0xf8c66
callq 0x22ab0
movq 0x1d0(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rdx
movq 0x11d37b(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movq %rax, %r12
movl $0xa, %edx
movq %rax, %rdi
leaq 0xa0067(%rip), %rsi     # 0xf8cab
callq 0x22ab0
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
movq %r12, %rdi
callq 0x22ab0
movq %rax, %r12
movl $0xc, %edx
movq %rax, %rdi
leaq 0xa0049(%rip), %rsi     # 0xf8cb6
callq 0x22ab0
movq %r12, %rdi
movq 0x90(%rsp), %rsi
callq 0x22650
movq %rax, %r12
movl $0xc, %edx
movq %rax, %rdi
leaq 0xa002f(%rip), %rsi     # 0xf8cc3
callq 0x22ab0
movq %r12, %rdi
movq 0x258(%rsp), %rsi
callq 0x22650
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r12, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%rsp), %rax
movq (%rax), %rax
movq 0x90(%rax), %rdi
movq 0x98(%rax), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
movq 0x90(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x591e1
leaq (%rsi,%rsi,2), %rbx
shlq $0x4, %rbx
addq %rbx, %rdi
movq %r13, %rsi
callq 0x65f30
movq %rax, %r12
movl $0x160, %edi            # imm = 0x160
callq 0x22980
movq %rax, %rbp
leaq 0x248(%rsp), %rax
movq %rax, 0x238(%rsp)
movq 0x70(%rsp), %rsi
movq 0x78(%rsp), %rdx
addq %rsi, %rdx
leaq 0x238(%rsp), %r15
movq %r15, %rdi
callq 0x3213c
movb $0x1, %r14b
movq %rbp, %rdi
movq %r15, %rsi
movq 0xb8(%rsp), %rdx
xorl %ecx, %ecx
movq 0x90(%rsp), %r8
callq 0x47c00
movl 0xc(%rsp), %eax
movl %eax, 0x10(%rsp)
movq %rbp, 0x18(%rsp)
xorl %r14d, %r14d
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
callq 0x68ee2
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0x58dc0
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
leaq 0x138(%rsp), %r14
jb 0x58eae
movl $0x14, %edx
movq 0x11d1b9(%rip), %rdi    # 0x175fa8
leaq 0x9feda(%rip), %rsi     # 0xf8cd0
callq 0x22ab0
movq 0x11d1a6(%rip), %rdi    # 0x175fa8
movq 0x90(%rsp), %rsi
callq 0x22650
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0xa2a85(%rip), %rsi     # 0xfb8a6
callq 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movq 0x90(%rax), %r12
movq 0x98(%rax), %rdx
subq %r12, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
movq 0x90(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x591e1
addq %rbx, %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x69028
addq $0x8, %r12
xorl %esi, %esi
cmpq %r12, %rax
setne %sil
movq %rbp, %rdi
callq 0x22650
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r12, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xb8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x58f89
movl $0x39, %edx
movq 0x11d0d9(%rip), %rdi    # 0x175fa8
leaq 0x9fe0f(%rip), %rsi     # 0xf8ce5
callq 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movq 0x90(%rax), %rdi
movq 0x98(%rax), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
movq 0x90(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x591ef
addq %rbx, %rdi
movq %r13, %rsi
callq 0x65f30
movl 0xc(%rsp), %ecx
movl %ecx, 0x50(%rsp)
movq %rax, %rdi
leaq 0x50(%rsp), %rsi
callq 0x65fac
movq (%rax), %rsi
leaq 0x10(%rsp), %rdi
callq 0x4a060
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x11d054(%rip), %rdi    # 0x175fa8
callq 0x22ab0
movl $0x8, %edx
movq %rax, %rdi
leaq 0x9fdb7(%rip), %rsi     # 0xf8d1f
callq 0x22ab0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x58f89
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
movq 0x1d0(%rsp), %rbx
je 0x58fb3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x22670
movq %rax, %r12
cmpq 0x100(%rsp), %rax
jne 0x587dd
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x58fe8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
jmp 0x590bd
cmpl $0x3, %eax
jb 0x59094
movq 0x11cfa3(%rip), %rdi    # 0x175fa8
leaq 0x9fd1c(%rip), %rsi     # 0xf8d28
movl $0xb, %edx
callq 0x22ab0
movq 0x11cf8b(%rip), %rdi    # 0x175fa8
movl %ebx, %esi
callq 0x231e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x11cf53(%rip), %rbx    # 0x175fa8
leaq 0x9fcd8(%rip), %rsi     # 0xf8d34
movl $0x37, %edx
movq %rbx, %rdi
callq 0x22ab0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x11cf21(%rip), %rdi    # 0x175fa8
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r15), %rdi
subq $0x8, %rsp
movl 0x1d8(%rsp), %esi
xorl %edx, %edx
movl $0xe, %ecx
movl $0x1, %r8d
movq %rdi, %r9
pushq $-0x1
callq 0x6bac2
addq $0x10, %rsp
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x590ec
movq 0x11cecd(%rip), %rdi    # 0x175fa8
leaq 0x9fc8a(%rip), %rsi     # 0xf8d6c
movl $0x2d, %edx
callq 0x22ab0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x59111
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x4e0(%rsp), %rdi
callq 0x22200
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x59143
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x59160
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x59185
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x591aa
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x591cf
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x229c0
addq $0x7d8, %rsp            # imm = 0x7D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9a491(%rip), %rdi     # 0xf3679
xorl %eax, %eax
callq 0x22f40
leaq 0x9a483(%rip), %rdi     # 0xf3679
xorl %eax, %eax
callq 0x22f40
leaq 0x9a475(%rip), %rdi     # 0xf3679
xorl %eax, %eax
callq 0x22f40
leaq 0x9a467(%rip), %rdi     # 0xf3679
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x9a456(%rip), %rdi     # 0xf3679
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x9a445(%rip), %rdi     # 0xf3679
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
movq %rax, %r12
movq 0x3e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x59295
movq 0x3f0(%rsp), %rsi
jmp 0x59288
jmp 0x5925c
jmp 0x59292
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r15, %rdi
je 0x59295
movq 0x60(%rsp), %rsi
jmp 0x59288
jmp 0x59292
movq %rax, %r12
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59295
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59295
movq %rax, %r12
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x592bd
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x592bd
jmp 0x592ba
movq %rax, %r12
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x592de
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x592de
movq %rax, %r12
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x59303
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59499
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59499
movq %rax, %r12
movq 0x400(%rsp), %rdi
cmpq %rbx, %rdi
je 0x59303
movq 0x410(%rsp), %rsi
jmp 0x592fb
movq %rax, %r12
jmp 0x59303
movq %rax, %rbx
movq 0x300(%rsp), %rdi
cmpq %r12, %rdi
je 0x5936d
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5936d
movq %rax, %rbx
movq 0x320(%rsp), %rdi
cmpq %r15, %rdi
je 0x5938f
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5938f
movq %rax, %rbx
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x593d3
movq 0x470(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x593d3
movq %rax, %rbx
movq 0x2c0(%rsp), %rdi
cmpq %r12, %rdi
je 0x593e3
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x593e3
movq %rax, %rbx
leaq 0x748(%rsp), %rdi
jmp 0x5958d
movq %rax, %rbx
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x59405
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59405
movq %rax, %rbx
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
je 0x59427
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59427
movq %rax, %rbx
leaq 0x718(%rsp), %rdi
jmp 0x5958d
movq %rax, %rbx
movq 0x340(%rsp), %rdi
cmpq %r15, %rdi
je 0x59459
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59459
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x32268
jmp 0x59592
jmp 0x59aa9
movq %rax, (%rsp)
leaq 0x430(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59a77
movq 0x430(%rsp), %rsi
jmp 0x595bc
movq %rax, %r12
leaq 0xa8(%rsp), %r13
movq %r12, %rbx
jmp 0x59e1f
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x594ce
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x594ce
movq %rax, %rbx
movq 0x3c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x594f0
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x594f0
movq %rax, %rbx
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59512
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59512
movq %rax, %rbx
leaq 0x7a8(%rsp), %rdi
jmp 0x5958d
movq %rax, %rbx
movq 0x360(%rsp), %rdi
cmpq %r12, %rdi
je 0x59541
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59541
movq %rax, %rbx
movq 0x380(%rsp), %rdi
cmpq %r15, %rdi
je 0x59563
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59563
movq %rax, %rbx
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x59585
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59585
movq %rax, %rbx
leaq 0x778(%rsp), %rdi
callq 0x4a472
leaq 0xa8(%rsp), %r13
jmp 0x59e1f
movq %rax, (%rsp)
movq 0x260(%rsp), %rdi
cmpq %r14, %rdi
je 0x59a77
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59a77
movq %rax, (%rsp)
leaq 0x80(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x595f4
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x595f4
movq %rax, (%rsp)
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5961b
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5961b
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0x59638
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59638
movq %rax, (%rsp)
movq 0x50(%rsp), %rdi
cmpq %rbp, %rdi
je 0x59655
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59655
movq %rax, (%rsp)
movq 0xc0(%rsp), %rdi
cmpq %r13, %rdi
je 0x59678
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59678
movq %rax, (%rsp)
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x5969b
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5969b
movq %rax, (%rsp)
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x596c0
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x596c0
jmp 0x596bc
movq %rax, (%rsp)
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x59a93
movq 0x1e8(%rsp), %rsi
jmp 0x59a8b
movq %rax, (%rsp)
jmp 0x59a93
movq %rax, %rbx
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59ed0
movq 0x4d0(%rsp), %rsi
jmp 0x59ec8
movq %rax, %rbx
movq 0x280(%rsp), %rdi
cmpq %r15, %rdi
je 0x5972d
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5972d
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59ab4
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59ab4
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59776
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59776
movq %rax, %rbx
leaq 0x228(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5979c
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5979c
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x597b8
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x597b8
movq %rax, %rbx
leaq 0xd0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x597de
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x597de
movq %rax, %rbx
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59804
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59804
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x59826
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59826
movq %rax, %rbx
movq 0x150(%rsp), %rdi
cmpq %r14, %rdi
je 0x59848
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59848
movq %rax, %rbx
leaq 0x1e8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59ace
movq 0x1e8(%rsp), %rsi
jmp 0x59ac6
jmp 0x59881
movq %rax, %rbx
leaq 0x6e8(%rsp), %rdi
callq 0x4a472
jmp 0x59b08
movq %rax, %rbx
jmp 0x59ace
jmp 0x59aa9
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x598bb
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x598bb
movq %rax, %rbx
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x598dd
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x598dd
movq %rax, %rbx
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x59e61
movq 0x1c0(%rsp), %rsi
jmp 0x59e59
movq %rax, %rbx
jmp 0x59e61
movq %rax, %rbx
jmp 0x59e86
movq %rax, %rbx
movq 0x4e0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59938
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59938
movq %rax, %rbx
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x59eab
movq 0x180(%rsp), %rsi
jmp 0x59ea3
jmp 0x59af3
movq %rax, %rbx
leaq 0x4f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5998c
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5998c
movq %rax, %rbx
leaq 0x40(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x599ac
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599ac
movq %rax, %rbx
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x599d6
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599d6
movq %rax, %rbx
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x599fc
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599fc
movq %rax, %rbx
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59a22
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59a22
movq %rax, %rbx
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x59a4c
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59a4c
movq %rax, %rbx
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59ed0
movq 0x1c0(%rsp), %rsi
jmp 0x59ec8
jmp 0x59d97
movq %rax, (%rsp)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x59a93
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
movq (%rsp), %rbx
jmp 0x59ded
jmp 0x59d97
movq %rax, %rbx
jmp 0x59e1f
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r12, %rdi
je 0x59ace
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x59d9a
movq 0x40(%rsp), %rsi
jmp 0x59d4f
movq %rax, %rbx
jmp 0x59ded
movq %rax, %rbx
jmp 0x59eab
jmp 0x59da4
jmp 0x59da4
movq %rax, %rbx
leaq 0xa8(%rsp), %r13
jmp 0x59e12
jmp 0x59da4
movq %rax, %rbx
jmp 0x59d88
jmp 0x59da4
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x59da7
movq 0x20(%rsp), %rsi
incq %rsi
jmp 0x59d90
jmp 0x59b4c
movq %rax, %rbx
jmp 0x59c6f
movq %rax, %rbx
jmp 0x59c4a
movq %rax, %rbx
jmp 0x59c25
movq %rax, %rbx
jmp 0x59c00
movq %rax, %rbx
jmp 0x59bdb
movq %rax, %rbx
jmp 0x59bbf
movq %rax, %rbx
jmp 0x59b9a
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x59b9a
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x59bbf
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x59bdb
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x59c00
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x59c25
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x59c4a
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x59c6f
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
jmp 0x59dd1
jmp 0x59d97
movq %rax, %rbx
jmp 0x59d32
movq %rax, %rbx
jmp 0x59d0d
movq %rax, %rbx
jmp 0x59cf6
movq %rax, %rbx
jmp 0x59cdf
movq %rax, %rbx
jmp 0x59cba
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %r14, %rdi
je 0x59cba
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x59cdf
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x10(%rsp), %rdi
cmpq %r13, %rdi
je 0x59cf6
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r12, %rdi
je 0x59d0d
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x59d32
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x59d9a
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59d9a
jmp 0x59da4
movq %rax, %rbx
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0x59d83
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x229c0
testb %r14b, %r14b
je 0x59da7
movl $0x160, %esi            # imm = 0x160
movq %rbp, %rdi
callq 0x229c0
jmp 0x59da7
movq %rax, %rbx
leaq 0xa8(%rsp), %r13
jmp 0x59ded
movq %rax, %rbx
leaq 0xa8(%rsp), %r13
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x59dd1
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x59ded
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x59e12
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x4e0(%rsp), %rdi
callq 0x22200
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x59e44
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x59e61
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x59e86
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x59eab
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x59ed0
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240