// File: /workspace/github_cpp_makefile_star2_O1/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 $0x7f8, %rsp            # imm = 0x7F8
movl %edx, %r13d
movl %esi, 0x14(%rsp)
movq %rdi, (%rsp)
movq (%rdi), %rax
movl 0x40(%rax), %ecx
movq %rcx, 0x148(%rsp)
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5632f
movq 0x11fcaf(%rip), %rbx    # 0x175f90
leaq 0xa263c(%rip), %rsi     # 0xf8924
movl $0x16, %edx
movq %rbx, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq 0x148(%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
movq (%rsp), %rcx
movq (%rcx), %rax
movq 0xa8(%rax), %rdx
movq %rdx, 0x8(%rsp)
testq %rdx, %rdx
je 0x564d8
movl 0x8(%rcx), %esi
movq 0x78(%rax), %rcx
movq 0x80(%rax), %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq %rsi, %rdx
jbe 0x59592
movq (%rcx,%rsi,8), %rcx
movq %rcx, 0x120(%rsp)
movl 0x40(%rax), %r15d
movq 0x8(%rsp), %r14
movq 0x15c8(%r14), %r12
subq 0x15c0(%r14), %r12
shrq $0x3, %r12
movq %rsi, 0xb8(%rsp)
cmpl %r12d, %esi
jb 0x5647d
movq 0x11fbe8(%rip), %rbx    # 0x175f90
leaq 0xa25c9(%rip), %rsi     # 0xf8978
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 0xa25bf(%rip), %rsi     # 0xf89a1
movl $0xf, %edx
movq %rax, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq 0xb8(%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 0xa2575(%rip), %rsi     # 0xf89b1
leaq 0xa25ab(%rip), %rdx     # 0xf89ee
leaq 0x4c0(%rsp), %rbx
movq %rbx, %rdi
callq 0x32210
movq %rbx, %rdi
callq 0xc0396
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
movq 0x8(%rsp), %r14
je 0x5647d
movq 0x4d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movl 0x8(%rax), %edx
leaq 0x1d0(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x7a62c
leaq 0xa19c7(%rip), %rsi     # 0xf7e67
movq %rbx, %rdi
callq 0x233b0
leaq 0xa8(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56501
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x56507
movq 0x11fab1(%rip), %rdi    # 0x175f90
leaq 0xa2455(%rip), %rsi     # 0xf893b
movl $0x3c, %edx
addq $0x7f8, %rsp            # imm = 0x7F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x22ab0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x100(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0xa8(%rsp), %rdi
cmpq %rdi, %rcx
je 0x5656d
movq 0xa8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x56592
leaq 0x110(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x5658d
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x565a9
movq 0x100(%rsp), %rsi
leaq 0x98(%rsp), %rdi
callq 0x222b0
jmp 0x565ba
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x1a0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x565e7
movq %rsi, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
jmp 0x565ed
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x198(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa1853(%rip), %rsi     # 0xf7e67
leaq 0x190(%rsp), %rdi
callq 0x233b0
leaq 0xd0(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56651
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x56657
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x38(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0xc03b8
movq 0xc0(%rsp), %rcx
movq 0xc8(%rsp), %r8
movq 0x40(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
leaq 0xd0(%rsp), %rdi
cmpq %rdi, %rcx
je 0x566b3
movq 0xd0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x566d2
leaq 0x48(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x566cd
movq 0x48(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x566e6
movq 0x38(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x222b0
jmp 0x566f4
leaq 0x38(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x510(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x56721
movq %rsi, 0x500(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x510(%rsp)
jmp 0x56727
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x508(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa2bd5(%rip), %rsi     # 0xf9323
leaq 0x500(%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 0x5678b
movq %rdx, 0x1f8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x208(%rsp)
jmp 0x56791
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 0x510(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x567cd
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x567e8
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x5680d
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5682e
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
decl %r15d
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x56852
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
imull %r12d, %r15d
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5687b
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0xb8(%rsp), %r12
je 0x568a4
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x229c0
leal (%r12,%r15), %eax
incl %eax
movl %eax, 0x1f0(%rsp)
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x56987
movq 0x11f6bd(%rip), %rdi    # 0x175f90
leaq 0xa2115(%rip), %rsi     # 0xf89ef
movl $0x27, %edx
callq 0x22ab0
movl 0x1f0(%rsp), %esi
movq 0x11f69e(%rip), %rdi    # 0x175f90
callq 0x22650
movq %rax, %rbx
leaq 0xa7c5f(%rip), %rsi     # 0xfe560
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movq %rbx, %rdi
movq 0x148(%rsp), %rsi
callq 0x22650
movq %rax, %rbx
leaq 0xaad72(%rip), %rsi     # 0x10169a
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rsp), %rax
movl 0x8(%rax), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0xa20c9(%rip), %rsi     # 0xf8a17
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
leaq 0xaab73(%rip), %rsi     # 0x1014ed
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%rsp), %rax
movq (%rax), %rax
movl 0xb0(%rax), %esi
leaq 0x190(%rsp), %rdi
callq 0xc03b8
movq 0x8(%rsp), %rax
movq 0x1520(%rax), %rcx
movq 0x1528(%rax), %r8
leaq 0x190(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x500(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x569f1
movq %rdx, 0x500(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x510(%rsp)
jmp 0x569f8
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x500(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa8dc9(%rip), %rsi     # 0xff7e7
callq 0x233b0
leaq 0xd0(%rsp), %rsi
movq %rsi, 0xc0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56a57
movq %rdx, 0xc0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xd0(%rsp)
jmp 0x56a5d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0xc8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x56a95
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x56aba
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x190(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x33608
leaq 0x1d0(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
leaq 0xa1374(%rip), %rsi     # 0xf7e67
leaq 0x1d0(%rsp), %rdi
callq 0x233b0
movq %r14, 0x500(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x56b2c
movq %rdx, 0x500(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x510(%rsp)
jmp 0x56b33
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x508(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x100(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0xc03b8
movq 0x500(%rsp), %rcx
movq 0x508(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x56b8d
movq 0x510(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x56bb6
movl $0xf, %esi
leaq 0x110(%rsp), %rdi
cmpq %rdi, 0x100(%rsp)
je 0x56bb1
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x56bcd
movq 0x100(%rsp), %rsi
leaq 0x500(%rsp), %rdi
callq 0x222b0
jmp 0x56bde
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xa8(%rsp), %rsi
movq %rsi, 0x98(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x56c0f
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x56c15
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x56c5a
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x56c77
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x56c9c
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1e0(%rsp), %rax
movq %rax, 0x1d0(%rsp)
movq $0x0, 0x1d8(%rsp)
movb $0x0, 0x1e0(%rsp)
movq (%rsp), %rax
movq (%rax), %rax
cmpl $0x1, 0xb0(%rax)
setne %cl
orb %r13b, %cl
je 0x56f57
testb %r13b, %r13b
movq (%rsp), %r13
je 0x57729
movq 0x11f2a2(%rip), %rbx    # 0x175f90
leaq 0xa1d55(%rip), %rsi     # 0xf8a4a
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 0x11f270(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x120(%rsp), %rax
cmpb $0x1, 0xb8(%rax)
jne 0x5726c
leaq 0xa1255(%rip), %rsi     # 0xf7f9e
leaq 0x100(%rsp), %rdi
xorl %edx, %edx
callq 0x31902
leaq 0x350(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xa1cdb(%rip), %rsi     # 0xf8a46
leaq 0xa1cd7(%rip), %rdx     # 0xf8a49
leaq 0x340(%rsp), %rdi
callq 0x32210
leaq 0x500(%rsp), %rdi
leaq 0x1f8(%rsp), %rsi
leaq 0x100(%rsp), %rdx
leaq 0x340(%rsp), %rcx
xorl %r8d, %r8d
callq 0x4a2c9
leaq 0x1f8(%rsp), %rdi
leaq 0x500(%rsp), %rbx
movq %rbx, %rsi
callq 0x22bb0
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0x56dd7
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x340(%rsp), %rdi
cmpq %r15, %rdi
je 0x56df4
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x108(%rsp), %rdi
callq 0x322a0
movq (%r13), %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 0x595a0
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x768(%rsp), %rdi
callq 0x51a66
leaq 0x470(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x460(%rsp), %rdi
callq 0x32180
leaq 0x330(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x320(%rsp), %rdi
callq 0x32180
leaq 0x310(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x300(%rsp), %rdi
callq 0x32180
xorl %eax, %eax
leaq 0x768(%rsp), %rbx
leaq 0x460(%rsp), %rdx
leaq 0x320(%rsp), %rcx
leaq 0x300(%rsp), %r8
movq 0x120(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq $0x1
pushq %rax
pushq %rax
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x300(%rsp), %rdi
cmpq %r12, %rdi
je 0x56f25
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x320(%rsp), %rdi
cmpq %r15, %rdi
movq 0xb8(%rsp), %r12
je 0x56f4a
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x460(%rsp), %rdi
jmp 0x57711
movq 0x120(%rsp), %rcx
cmpb $0x1, 0xb8(%rcx)
jne 0x57117
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
movq (%rsp), %r13
jb 0x56f98
movq 0x11f009(%rip), %rdi    # 0x175f90
leaq 0xa1a9b(%rip), %rsi     # 0xf8a29
movl $0x16, %edx
callq 0x22ab0
movq 0x8(%rsp), %rax
cmpl $0x0, 0x13ec(%rax)
jne 0x575c0
movq 0x8(%rsp), %rcx
movq 0x15c0(%rcx), %rax
movq 0x15c8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r12, %rdx
jbe 0x595c2
movq (%rax,%r12,8), %rax
leaq 0x500(%rsp), %rdi
movq %r14, (%rdi)
movq 0x68(%rax), %rsi
movq 0x70(%rax), %rdx
addq %rsi, %rdx
callq 0x32180
leaq 0x410(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x500(%rsp), %rsi
movq 0x508(%rsp), %rdx
addq %rsi, %rdx
leaq 0x400(%rsp), %rdi
callq 0x32180
leaq 0x100(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0xbf437
movq 0x400(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5704a
movq 0x410(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
movq %rax, (%rdi)
movq 0x100(%rsp), %rsi
movq 0x108(%rsp), %rdx
addq %rsi, %rdx
callq 0x32180
leaq 0xa19ca(%rip), %rsi     # 0xf8a40
leaq 0x38(%rsp), %rdi
callq 0x233b0
movq 0x8(%rsp), %r15
leaq 0x1520(%r15), %rbx
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rdx
movq %rbx, %rsi
callq 0x33608
movq 0x1528(%r15), %rdx
decq %rdx
leaq 0x18(%rsp), %rdi
movl $0x1, %ecx
movq %rbx, %rsi
callq 0x22a00
leaq 0xa8726(%rip), %rsi     # 0xff7e7
leaq 0x18(%rsp), %rdi
callq 0x22250
movl %eax, %ebp
testl %eax, %eax
je 0x573c1
movq 0x8(%rsp), %rax
movq 0x1528(%rax), %rdx
decq %rdx
leaq 0x4e0(%rsp), %rdi
movl $0x1, %ecx
movq %rbx, %rsi
callq 0x22a00
leaq 0xa0be4(%rip), %rsi     # 0xf7ce4
leaq 0x4e0(%rsp), %rdi
callq 0x22250
testl %eax, %eax
setne %bl
jmp 0x573c3
movq (%rax), %rsi
movq 0x8(%rax), %rax
subq %rsi, %rax
sarq $0x4, %rax
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r12, %rdx
movq (%rsp), %r13
jbe 0x595a0
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x798(%rsp), %rdi
callq 0x51a66
leaq 0x490(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x480(%rsp), %rdi
callq 0x32180
leaq 0x390(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x380(%rsp), %rdi
callq 0x32180
leaq 0x370(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x360(%rsp), %rdi
callq 0x32180
xorl %eax, %eax
leaq 0x798(%rsp), %rbx
leaq 0x480(%rsp), %rdx
leaq 0x380(%rsp), %rcx
leaq 0x360(%rsp), %r8
movq 0x120(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq %rax
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x360(%rsp), %rdi
cmpq %r12, %rdi
je 0x5723a
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x380(%rsp), %rdi
cmpq %r15, %rdi
movq 0xb8(%rsp), %r12
je 0x5725f
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x480(%rsp), %rdi
jmp 0x57711
movq (%r13), %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 0x595a0
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x738(%rsp), %rdi
callq 0x51a66
leaq 0x450(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x440(%rsp), %rdi
callq 0x32180
leaq 0x2f0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2e0(%rsp), %rdi
callq 0x32180
leaq 0x2d0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2c0(%rsp), %rdi
callq 0x32180
xorl %eax, %eax
leaq 0x738(%rsp), %rbx
leaq 0x440(%rsp), %rdx
leaq 0x2e0(%rsp), %rcx
leaq 0x2c0(%rsp), %r8
movq 0x120(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq %rax
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x2c0(%rsp), %rdi
cmpq %r12, %rdi
je 0x5738f
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
movq 0xb8(%rsp), %r12
je 0x573b4
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x440(%rsp), %rdi
jmp 0x57711
xorl %ebx, %ebx
testl %ebp, %ebp
je 0x573e8
leaq 0x4f0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x573e8
movq 0x4f0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x28(%rsp), %r12
movq -0x10(%r12), %rdi
cmpq %r12, %rdi
je 0x57404
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
testb %bl, %bl
je 0x574e0
leaq 0x88(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x8(%rsp), %rax
movq 0x1520(%rax), %rsi
movq 0x1528(%rax), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0x32180
leaq 0xa83a8(%rip), %rsi     # 0xff7e7
leaq 0x78(%rsp), %rdi
callq 0x233b0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x78(%rsp), %rdi
callq 0x222b0
movq %r12, 0x18(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57480
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x57488
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
leaq 0x18(%rsp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x22bb0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x574c6
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x574e0
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x1, 0x14(%rsp)
movq 0xb8(%rsp), %r12
jne 0x57547
leaq 0x3f0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3e0(%rsp), %rdi
callq 0x32180
leaq 0x3e0(%rsp), %rsi
movq 0x120(%rsp), %rdi
callq 0x4ec0e
movq 0x3e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x57547
movq 0x3f0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x57562
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x5757e
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x575a3
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x575c0
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%r13), %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 0x595a0
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x7c8(%rsp), %rdi
callq 0x51a66
leaq 0x4b0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x4a0(%rsp), %rdi
callq 0x32180
leaq 0x3d0(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x1f8(%rsp), %rsi
movq 0x200(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3c0(%rsp), %rdi
callq 0x32180
leaq 0x3b0(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x3a0(%rsp), %rdi
callq 0x32180
xorl %eax, %eax
leaq 0x7c8(%rsp), %rbx
leaq 0x4a0(%rsp), %rdx
leaq 0x3c0(%rsp), %rcx
leaq 0x3a0(%rsp), %r8
movq 0x120(%rsp), %rdi
movq %rbx, %rsi
movl $0x0, %r9d
pushq %rax
pushq %rax
pushq $0x1
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x3a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x576e4
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x3c0(%rsp), %rdi
cmpq %r15, %rdi
movq 0xb8(%rsp), %r12
je 0x57709
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x57721
movq (%r14), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x4a694
leaq 0x500(%rsp), %rdi
leaq 0x190(%rsp), %rsi
movl $0x8, %edx
callq 0x23070
movq 0x500(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x520(%rsp,%rax)
je 0x5784c
movq 0x8(%rsp), %rax
cmpl $0x2, 0x1614(%rax)
jb 0x577c9
movq 0x11e81e(%rip), %rdi    # 0x175f90
leaq 0xa12e7(%rip), %rsi     # 0xf8a60
movl $0x15, %edx
callq 0x22ab0
movq 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
movq 0x11e7f6(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq (%r13), %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 0x595b1
leaq (%r12,%r12,2), %rax
shlq $0x4, %rax
addq %rax, %rsi
leaq 0x708(%rsp), %rdi
callq 0x51a66
movq (%r13), %rax
movl 0xb0(%rax), %r8d
leaq 0x708(%rsp), %rsi
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
movl 0x1f0(%rsp), %ebp
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x90b3a
leaq 0x708(%rsp), %rdi
callq 0x4a694
movq %rbx, %rdi
movl %ebp, %esi
callq 0x961b2
movq 0x8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x578e5
movq 0x11e72b(%rip), %rdi    # 0x175f90
leaq 0xa120a(%rip), %rsi     # 0xf8a76
movl $0x13, %edx
callq 0x22ab0
movq (%r13), %rax
movl 0xb0(%rax), %esi
movq 0x11e709(%rip), %rdi    # 0x175f90
callq 0x22650
movq %rax, %rbx
leaq 0xa11f4(%rip), %rsi     # 0xf8a8a
movl $0x5, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0xc0(%rsp), %rsi
movq 0xc8(%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 0x110(%rsp), %rax
movq %rax, 0x100(%rsp)
movq $0x0, 0x108(%rsp)
movb $0x0, 0x110(%rsp)
movq 0x8(%rsp), %rax
cmpb $0x1, 0x1630(%rax)
jne 0x57dd2
movq 0x120(%rsp), %rax
movq 0x18(%rax), %rbx
leaq 0x8(%rax), %r15
cmpq %r15, %rbx
je 0x57dd2
leaq 0x88(%rsp), %r12
leaq 0x28(%rsp), %r13
leaq 0x68(%rsp), %r14
cmpq $0x0, 0x90(%rbx)
movq 0x108(%rsp), %rdx
leaq 0xa1133(%rip), %rcx     # 0xf8a90
leaq 0xa1132(%rip), %rax     # 0xf8a96
cmoveq %rax, %rcx
movl $0x5, %r8d
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
callq 0x22fb0
leaq 0x20(%rbx), %rdx
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x33608
leaq 0x128(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
movq 0xe0(%rsp), %rcx
movl $0xf, %esi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rcx
je 0x579cd
movq 0xf0(%rsp), %rsi
movq 0xe8(%rsp), %r8
movq 0x130(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x57a0a
movl $0xf, %esi
leaq 0x138(%rsp), %rdi
cmpq %rdi, 0x128(%rsp)
je 0x57a05
movq 0x138(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x57a21
movq 0x128(%rsp), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x222b0
jmp 0x57a32
leaq 0x128(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r12, 0x78(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x57a55
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x57a5d
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x78(%rsp), %rdi
leaq 0xa03de(%rip), %rsi     # 0xf7e67
callq 0x233b0
movq %r13, 0x18(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57ab1
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x57ab9
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x150(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0xc03b8
movq 0x18(%rsp), %rcx
movl $0xf, %esi
cmpq %r13, %rcx
je 0x57af6
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %r8
movq 0x158(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x57b30
movl $0xf, %esi
leaq 0x160(%rsp), %rdi
cmpq %rdi, 0x150(%rsp)
je 0x57b2b
movq 0x160(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x57b44
movq 0x150(%rsp), %rsi
leaq 0x18(%rsp), %rdi
callq 0x222b0
jmp 0x57b55
leaq 0x150(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r14, 0x58(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x57b75
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
jmp 0x57b7c
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x100(%rsp), %rsi
movq 0x108(%rsp), %rdx
leaq 0x58(%rsp), %rdi
callq 0x222b0
leaq 0x48(%rsp), %rbp
movq %rbp, 0x38(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x57bdb
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x57be2
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1d0(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x22bb0
movq 0x38(%rsp), %rdi
cmpq %rbp, %rdi
je 0x57c23
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x58(%rsp), %rdi
cmpq %r14, %rdi
je 0x57c3a
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x57c5f
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x57c76
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0x57c90
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x57cb5
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x57cda
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57db1
movl $0x11, %edx
movq 0x11e28f(%rip), %rdi    # 0x175f90
leaq 0xa0d94(%rip), %rsi     # 0xf8a9c
callq 0x22ab0
movq 0x1d0(%rsp), %rsi
movq 0x1d8(%rsp), %rdx
movq 0x11e26c(%rip), %rdi    # 0x175f90
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 0x11e231(%rip), %rdi    # 0x175f90
leaq 0xa0d48(%rip), %rsi     # 0xf8aae
callq 0x22ab0
movq 0x1d0(%rsp), %rsi
movq 0x1d8(%rsp), %rdx
movq 0x11e20e(%rip), %rdi    # 0x175f90
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 0x1d0(%rsp), %rdi
callq 0xc0111
movq %rbx, %rdi
callq 0x22670
movq %rax, %rbx
cmpq %r15, %rax
jne 0x57946
movq 0x8(%rsp), %r14
cmpl $0x3, 0x1614(%r14)
jb 0x57e3d
movq 0x11e1a8(%rip), %rdi    # 0x175f90
leaq 0xa0cdd(%rip), %rsi     # 0xf8acc
movl $0x27, %edx
callq 0x22ab0
movq 0x1540(%r14), %rsi
movq 0x1548(%r14), %rdx
movq 0x11e182(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x1540(%r14), %rdi
leaq 0x997e5(%rip), %rsi     # 0xf1630
movl $0x6, %ecx
xorl %edx, %edx
callq 0x231f0
cmpq $-0x1, %rax
leaq 0xa8(%rsp), %r13
movq 0xb8(%rsp), %rbx
je 0x57f9d
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57ea0
movq 0x11e101(%rip), %rdi    # 0x175f90
leaq 0xa0c5e(%rip), %rsi     # 0xf8af4
movl $0x61, %edx
callq 0x22ab0
leaq 0x58(%rsp), %rsi
movl %ebx, (%rsi)
movq 0x8(%rsp), %r14
leaq 0x1908(%r14), %rdi
callq 0x66dac
movq (%rax), %rax
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x32180
movq (%rsp), %rbx
movq (%rbx), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x57f30
movq 0x11e09b(%rip), %rdi    # 0x175f90
leaq 0xa0c5a(%rip), %rsi     # 0xf8b56
movl $0x3a, %edx
callq 0x22ab0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x11e079(%rip), %rdi    # 0x175f90
callq 0x22ab0
leaq 0xa6fb9(%rip), %rsi     # 0xfeedc
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x8(%rbx), %edx
leaq 0x1b0(%rsp), %rdi
movq %r14, %rsi
xorl %ecx, %ecx
callq 0x7a532
movq 0xc0(%rsp), %rcx
movq 0xc8(%rsp), %r8
leaq 0x1b0(%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 0x58032
movq %rdx, 0x150(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x160(%rsp)
jmp 0x58039
movq %r14, %rax
leaq 0x1c0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x1540(%rax), %rsi
movq 0x1548(%rax), %rdx
addq %rsi, %rdx
leaq 0x1b0(%rsp), %rdi
callq 0x32180
leaq 0xa0c0f(%rip), %rsi     # 0xf8be0
leaq 0x1b0(%rsp), %rdi
callq 0x233b0
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
leaq 0x1b0(%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 0x585cc
movq %rdx, 0x150(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x160(%rsp)
jmp 0x585d3
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 0x9fe08(%rip), %rsi     # 0xf7e67
callq 0x233b0
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58094
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x5809b
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 0x170(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
movq 0x128(%rsp), %rcx
movq 0x130(%rsp), %r8
movq 0x178(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x580f9
movq 0x138(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5811e
leaq 0x180(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x58119
movq 0x180(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x58135
movq 0x170(%rsp), %rsi
leaq 0x128(%rsp), %rdi
callq 0x222b0
jmp 0x58146
leaq 0x170(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xf0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x58173
movq %rsi, 0xe0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xf0(%rsp)
jmp 0x58179
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xe8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x9fcc7(%rip), %rsi     # 0xf7e67
leaq 0xe0(%rsp), %rdi
callq 0x233b0
leaq 0x88(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x581da
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x581e2
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x218(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0xc03b8
movq 0x78(%rsp), %rcx
movq 0x80(%rsp), %r8
movq 0x220(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r13, %rcx
je 0x58239
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5825e
leaq 0x228(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x58259
movq 0x228(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x58272
movq 0x218(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x222b0
jmp 0x58283
leaq 0x218(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x28(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x582a7
movq %rsi, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x582ad
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa07c5(%rip), %rsi     # 0xf8a96
leaq 0x18(%rsp), %rdi
callq 0x233b0
leaq 0x68(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58303
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
jmp 0x5830b
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5833e
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x228(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5835f
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x58379
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0xa8(%rsp), %r13
je 0x583a2
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x583c3
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x583e0
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
cmpq %r14, %rdi
je 0x583fd
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5841e
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x584a0
movq 0x11db54(%rip), %rdi    # 0x175f90
leaq 0xa074e(%rip), %rsi     # 0xf8b91
movl $0x32, %edx
callq 0x22ab0
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq 0x11db32(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %rbx
leaq 0xa0757(%rip), %rsi     # 0xf8bc4
movl $0xe, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq %rbx, %rdi
callq 0x22ab0
leaq 0xa6a49(%rip), %rsi     # 0xfeedc
movl $0x2, %edx
movq %rax, %rdi
callq 0x22ab0
leaq 0x2b0(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2a0(%rsp), %rdi
callq 0x32180
leaq 0x290(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
addq %rsi, %rdx
leaq 0x280(%rsp), %rdi
callq 0x32180
leaq 0x2a0(%rsp), %rdi
leaq 0x280(%rsp), %rsi
movq 0x148(%rsp), %rdx
callq 0xbe6dc
movl %eax, %ebx
movq 0x280(%rsp), %rdi
cmpq %r15, %rdi
je 0x58528
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x58545
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x585ac
movq 0x11da2d(%rip), %rdi    # 0x175f90
leaq 0xa0669(%rip), %rsi     # 0xf8bd3
movl $0xc, %edx
callq 0x22ab0
movq 0x11da15(%rip), %rdi    # 0x175f90
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 0x58(%rsp), %rdi
cmpq %r12, %rdi
je 0x58aba
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x58aba
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 0xa8e44(%rip), %rsi     # 0x10143d
callq 0x233b0
leaq 0x138(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5862f
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x58637
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 0x190(%rsp), %rsi
movq 0x198(%rsp), %rdx
callq 0x222b0
leaq 0xf0(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5869b
movq %rdx, 0xe0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xf0(%rsp)
jmp 0x586a3
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0xe0(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa0522(%rip), %rsi     # 0xf8beb
callq 0x233b0
leaq 0x88(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x586fb
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x58702
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x78(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
callq 0x222b0
leaq 0x28(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5875a
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x58760
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x170(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %r8
movq 0x178(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %rbx, %rcx
je 0x587b2
movq 0x28(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x587d7
leaq 0x180(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x587d2
movq 0x180(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x587eb
movq 0x170(%rsp), %rsi
leaq 0x18(%rsp), %rdi
callq 0x222b0
jmp 0x587fc
leaq 0x170(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x68(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x58820
movq %rsi, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
jmp 0x58826
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa03a6(%rip), %rsi     # 0xf8bf0
leaq 0x58(%rsp), %rdi
callq 0x233b0
leaq 0x48(%rsp), %rsi
movq %rsi, 0x38(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5887c
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x58882
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x588b5
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x588d6
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x588ed
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %rbp, %rdi
je 0x58907
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
cmpq %r13, %rdi
je 0x58924
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
leaq 0xa8(%rsp), %r13
je 0x58949
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x58966
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x58983
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rsp), %rax
cmpb $0x1, 0x1630(%rax)
jne 0x589a2
leaq 0xa0266(%rip), %rsi     # 0xf8bfe
leaq 0x38(%rsp), %rdi
callq 0x233b0
leaq 0x270(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x260(%rsp), %rdi
callq 0x32180
leaq 0x260(%rsp), %rdi
callq 0xbf2c2
movl %eax, %ebx
movq 0x260(%rsp), %rdi
cmpq %r14, %rdi
je 0x589fa
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
testl %ebx, %ebx
jne 0x58a48
leaq 0x9f592(%rip), %rsi     # 0xf7f97
leaq 0x420(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x319d8
leaq 0x420(%rsp), %rdi
callq 0xc038e
leaq 0x430(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x58a48
movq 0x430(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x58aae
movq 0x11d533(%rip), %rdi    # 0x175f90
leaq 0xa019d(%rip), %rsi     # 0xf8c01
movl $0x33, %edx
callq 0x22ab0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x11d511(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %rbx, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x38(%rsp), %rdi
callq 0x227f0
movl %eax, %ebx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x58ad6
movq 0x48(%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 0x59385
cmpl $0x3, %eax
jb 0x58b13
movq 0x11d48e(%rip), %rdi    # 0x175f90
leaq 0xa012c(%rip), %rsi     # 0xf8c35
movl $0x50, %edx
callq 0x22ab0
leaq 0x48(%rsp), %rax
movq %rax, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
movb $0x0, 0x48(%rsp)
movq 0x120(%rsp), %rax
movq 0x18(%rax), %r12
addq $0x8, %rax
movq %rax, 0x120(%rsp)
cmpq %rax, %r12
je 0x5935c
leaq 0x138(%rsp), %r14
movl 0x14(%rsp), %eax
movq %rax, 0x258(%rsp)
cmpq $0x0, 0x90(%r12)
movq 0x40(%rsp), %rdx
leaq 0x9ff1b(%rip), %rcx     # 0xf8a90
leaq 0x9ff1a(%rip), %rax     # 0xf8a96
cmoveq %rax, %rcx
movl $0x5, %r8d
leaq 0x38(%rsp), %rdi
xorl %esi, %esi
callq 0x22fb0
leaq 0x20(%r12), %r13
leaq 0x150(%rsp), %rbx
movq %rbx, %rdi
leaq 0xc0(%rsp), %rsi
movq %r13, %rdx
callq 0x33608
movq %rbx, %rdi
leaq 0x9f2ab(%rip), %rsi     # 0xf7e67
callq 0x233b0
movq %r14, 0x128(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58bed
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
jmp 0x58bf4
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 0x1b0(%rsp), %rdi
movq 0x148(%rsp), %rsi
callq 0xc03b8
movq 0x128(%rsp), %rcx
movl $0xf, %esi
cmpq %r14, %rcx
je 0x58c3e
movq 0x138(%rsp), %rsi
movq 0x130(%rsp), %r8
movq 0x1b8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x58c7b
movl $0xf, %esi
leaq 0x1c0(%rsp), %rdi
cmpq %rdi, 0x1b0(%rsp)
je 0x58c76
movq 0x1c0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x58c92
movq 0x1b0(%rsp), %rsi
leaq 0x128(%rsp), %rdi
callq 0x222b0
jmp 0x58ca3
leaq 0x1b0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xf0(%rsp), %rsi
movq %rsi, 0xe0(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x58cd4
movq %rdx, 0xe0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xf0(%rsp)
jmp 0x58cda
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xe8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xe0(%rsp), %rdi
leaq 0x9f15e(%rip), %rsi     # 0xf7e67
callq 0x233b0
leaq 0x88(%rsp), %rsi
movq %rsi, 0x78(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58d3c
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x58d42
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x170(%rsp), %rdi
movl 0x14(%rsp), %esi
callq 0xc03b8
movq 0x78(%rsp), %rcx
movl $0xf, %esi
leaq 0x88(%rsp), %rax
cmpq %rax, %rcx
je 0x58d8d
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %r8
movq 0x178(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x58dca
movl $0xf, %esi
leaq 0x180(%rsp), %rdi
cmpq %rdi, 0x170(%rsp)
je 0x58dc5
movq 0x180(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x58dde
movq 0x170(%rsp), %rsi
leaq 0x78(%rsp), %rdi
callq 0x222b0
jmp 0x58def
leaq 0x170(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x28(%rsp), %rsi
movq %rsi, 0x18(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x58e14
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x58e1a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x18(%rsp), %rdi
callq 0x222b0
leaq 0x68(%rsp), %rsi
movq %rsi, 0x58(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x58e73
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
jmp 0x58e79
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x58ead
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x58ed2
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x58ef4
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x58f19
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x58f3e
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
cmpq %r14, %rdi
je 0x58f5b
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %r12, 0x1f0(%rsp)
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x58f88
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5906f
movl $0x44, %edx
movq 0x11cfea(%rip), %rdi    # 0x175f90
leaq 0x9fcd9(%rip), %rsi     # 0xf8c86
callq 0x22ab0
movq 0x1f0(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rdx
movq 0x11cfc7(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %r12
movl $0xa, %edx
movq %rax, %rdi
leaq 0x9fceb(%rip), %rsi     # 0xf8ccb
callq 0x22ab0
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
movq %r12, %rdi
callq 0x22ab0
movq %rax, %r12
movl $0xc, %edx
movq %rax, %rdi
leaq 0x9fccd(%rip), %rsi     # 0xf8cd6
callq 0x22ab0
movq %r12, %rdi
movq 0xb8(%rsp), %rsi
callq 0x22650
movq %rax, %r12
movl $0xc, %edx
movq %rax, %rdi
leaq 0x9fcb3(%rip), %rsi     # 0xf8ce3
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 0xb8(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x59576
leaq (%rsi,%rsi,2), %rbx
shlq $0x4, %rbx
addq %rbx, %rdi
movq %r13, %rsi
callq 0x663f4
movq %rax, %r12
movl $0x160, %edi            # imm = 0x160
callq 0x22980
movq %rax, %rbp
leaq 0x248(%rsp), %rax
movq %rax, 0x238(%rsp)
movq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
addq %rsi, %rdx
leaq 0x238(%rsp), %r15
movq %r15, %rdi
callq 0x32180
movb $0x1, %r14b
movq %rbp, %rdi
movq %r15, %rsi
movq 0x8(%rsp), %rdx
xorl %ecx, %ecx
movq 0xb8(%rsp), %r8
callq 0x47e38
movl 0x14(%rsp), %eax
movl %eax, 0x18(%rsp)
movq %rbp, 0x20(%rsp)
xorl %r14d, %r14d
movq %r12, %rdi
leaq 0x18(%rsp), %rsi
callq 0x693a2
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0x59159
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 0x59247
movl $0x14, %edx
movq 0x11ce08(%rip), %rdi    # 0x175f90
leaq 0x9fb61(%rip), %rsi     # 0xf8cf0
callq 0x22ab0
movq 0x11cdf5(%rip), %rdi    # 0x175f90
movq 0xb8(%rsp), %rsi
callq 0x22650
movq %rax, %rbp
movl $0x3, %edx
movq %rax, %rdi
leaq 0xa270c(%rip), %rsi     # 0xfb8c6
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 0xb8(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x59576
addq %rbx, %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x694ea
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 0x8(%rsp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5931f
movl $0x39, %edx
movq 0x11cd2b(%rip), %rdi    # 0x175f90
leaq 0x9fa99(%rip), %rsi     # 0xf8d05
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 0xb8(%rsp), %rsi
cmpq %rsi, %rdx
jbe 0x59584
addq %rbx, %rdi
movq %r13, %rsi
callq 0x663f4
movl 0x14(%rsp), %ecx
movl %ecx, 0x78(%rsp)
movq %rax, %rdi
leaq 0x78(%rsp), %rsi
callq 0x66470
movq (%rax), %rsi
leaq 0x18(%rsp), %rdi
callq 0x4a286
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x11cca6(%rip), %rdi    # 0x175f90
callq 0x22ab0
movl $0x8, %edx
movq %rax, %rdi
leaq 0x9fa41(%rip), %rsi     # 0xf8d3f
callq 0x22ab0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x5931f
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
movq 0x1f0(%rsp), %rbx
je 0x59343
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x22670
movq %rax, %r12
cmpq 0x120(%rsp), %rax
jne 0x58b60
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x59378
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
jmp 0x59452
cmpl $0x3, %eax
jb 0x59424
movq 0x11cbfb(%rip), %rdi    # 0x175f90
leaq 0x9f9ac(%rip), %rsi     # 0xf8d48
movl $0xb, %edx
callq 0x22ab0
movq 0x11cbe3(%rip), %rdi    # 0x175f90
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 0x11cbab(%rip), %rbx    # 0x175f90
leaq 0x9f968(%rip), %rsi     # 0xf8d54
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 0x11cb79(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x8(%rsp), %rax
movq (%rax), %rdi
subq $0x8, %rsp
movl 0x1f8(%rsp), %esi
xorl %edx, %edx
movl $0xe, %ecx
movl $0x1, %r8d
movq %rdi, %r9
pushq $-0x1
callq 0x6bfb0
addq $0x10, %rsp
movq (%rsp), %rax
movq (%rax), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x59481
movq 0x11cb20(%rip), %rdi    # 0x175f90
leaq 0x9f915(%rip), %rsi     # 0xf8d8c
movl $0x2d, %edx
callq 0x22ab0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x594a6
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x500(%rsp), %rdi
callq 0x22200
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x594d8
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x594f5
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
leaq 0xd0(%rsp), %rbx
je 0x59522
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5953f
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x59564
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x229c0
addq $0x7f8, %rsp            # imm = 0x7F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x9a148(%rip), %rdi     # 0xf36c5
xorl %eax, %eax
callq 0x22f40
leaq 0x9a13a(%rip), %rdi     # 0xf36c5
xorl %eax, %eax
callq 0x22f40
leaq 0x9a12c(%rip), %rdi     # 0xf36c5
xorl %eax, %eax
callq 0x22f40
leaq 0x9a11e(%rip), %rdi     # 0xf36c5
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x9a10d(%rip), %rdi     # 0xf36c5
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x9a0fc(%rip), %rdi     # 0xf36c5
movq %r12, %rsi
xorl %eax, %eax
callq 0x22f40
movq %rax, %r12
movq 0x3e0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5962d
movq 0x3f0(%rsp), %rsi
jmp 0x59620
jmp 0x595f1
jmp 0x5962a
movq %rax, %r12
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x5962d
movq 0x88(%rsp), %rsi
jmp 0x59620
jmp 0x5962a
movq %rax, %r12
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5962d
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5962d
movq %rax, %r12
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5964f
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5964f
jmp 0x5964c
movq %rax, %r12
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x59670
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59670
movq %rax, %r12
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x59695
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x59e3b
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59e3b
movq %rax, %r12
movq 0x400(%rsp), %rdi
cmpq %rbx, %rdi
je 0x59695
movq 0x410(%rsp), %rsi
jmp 0x5968d
movq %rax, %r12
jmp 0x59695
movq %rax, %rbx
movq 0x300(%rsp), %rdi
cmpq %r12, %rdi
je 0x596ff
movq 0x310(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x596ff
movq %rax, %rbx
movq 0x320(%rsp), %rdi
cmpq %r15, %rdi
je 0x59721
movq 0x330(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59721
movq %rax, %rbx
movq 0x460(%rsp), %rdi
cmpq %r14, %rdi
je 0x59765
movq 0x470(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59765
movq %rax, %rbx
movq 0x2c0(%rsp), %rdi
cmpq %r12, %rdi
je 0x59775
movq 0x2d0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59775
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
jmp 0x59911
movq %rax, %rbx
movq 0x2e0(%rsp), %rdi
cmpq %r15, %rdi
je 0x59797
movq 0x2f0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59797
movq %rax, %rbx
movq 0x440(%rsp), %rdi
cmpq %r14, %rdi
je 0x597b9
movq 0x450(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x597b9
movq %rax, %rbx
leaq 0x738(%rsp), %rdi
jmp 0x59911
movq %rax, %r12
movq 0x340(%rsp), %rdi
cmpq %r15, %rdi
je 0x597eb
movq 0x350(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x597eb
movq %rax, %r12
leaq 0x108(%rsp), %rdi
callq 0x322a0
jmp 0x59e3b
jmp 0x59e38
movq %rax, (%rsp)
leaq 0x430(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59e06
movq 0x430(%rsp), %rsi
jmp 0x59943
jmp 0x59e38
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
cmpq %r12, %rdi
je 0x59852
movq 0x3b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59852
movq %rax, %rbx
movq 0x3c0(%rsp), %rdi
cmpq %r15, %rdi
je 0x59874
movq 0x3d0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59874
movq %rax, %rbx
movq 0x4a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59896
movq 0x4b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59896
movq %rax, %rbx
leaq 0x7c8(%rsp), %rdi
jmp 0x59911
movq %rax, %rbx
movq 0x360(%rsp), %rdi
cmpq %r12, %rdi
je 0x598c5
movq 0x370(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x598c5
movq %rax, %rbx
movq 0x380(%rsp), %rdi
cmpq %r15, %rdi
je 0x598e7
movq 0x390(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x598e7
movq %rax, %rbx
movq 0x480(%rsp), %rdi
cmpq %r14, %rdi
je 0x59909
movq 0x490(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59909
movq %rax, %rbx
leaq 0x798(%rsp), %rdi
callq 0x4a694
leaq 0xa8(%rsp), %r13
movq %rbx, %r12
jmp 0x5a1bb
movq %rax, (%rsp)
movq 0x260(%rsp), %rdi
cmpq %r14, %rdi
je 0x59e06
movq 0x270(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59e06
movq %rax, (%rsp)
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59975
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59975
movq %rax, (%rsp)
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5999c
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x5999c
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x599b9
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599b9
movq %rax, (%rsp)
movq 0x78(%rsp), %rdi
cmpq %rbp, %rdi
je 0x599d9
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599d9
movq %rax, (%rsp)
movq 0xe0(%rsp), %rdi
cmpq %r13, %rdi
je 0x599fc
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x599fc
movq %rax, (%rsp)
movq 0x128(%rsp), %rdi
cmpq %r12, %rdi
je 0x59a1f
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59a1f
movq %rax, (%rsp)
movq 0x150(%rsp), %rdi
cmpq %r15, %rdi
je 0x59a44
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59a44
jmp 0x59a40
movq %rax, (%rsp)
movq 0x1b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59e22
movq 0x1c0(%rsp), %rsi
jmp 0x59e1a
movq %rax, (%rsp)
jmp 0x59e22
movq %rax, %r12
movq 0x4c0(%rsp), %rdi
cmpq %r14, %rdi
je 0x5a26c
movq 0x4d0(%rsp), %rsi
jmp 0x5a264
movq %rax, %rbx
movq 0x280(%rsp), %rdi
cmpq %r15, %rdi
je 0x59ab1
movq 0x290(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59ab1
movq %rax, %rbx
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x59e4b
movq 0x2b0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59e4b
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59afa
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59afa
movq %rax, %rbx
leaq 0x228(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59b20
movq 0x228(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59b20
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x59b3f
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59b3f
movq %rax, %rbx
leaq 0xf0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59b65
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59b65
movq %rax, %rbx
leaq 0x180(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59b8b
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59b8b
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x59bad
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59bad
movq %rax, %rbx
movq 0x150(%rsp), %rdi
cmpq %r14, %rdi
je 0x59bcf
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59bcf
movq %rax, %rbx
leaq 0x1c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59e62
movq 0x1c0(%rsp), %rsi
jmp 0x59e5a
jmp 0x59c08
movq %rax, %r12
leaq 0x708(%rsp), %rdi
callq 0x4a694
jmp 0x59e9c
movq %rax, %rbx
jmp 0x59e62
jmp 0x59e38
movq %rax, %r12
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x59c42
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59c42
movq %rax, %r12
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x59c64
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59c64
movq %rax, %r12
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x5a1fd
movq 0x1e0(%rsp), %rsi
jmp 0x5a1f5
movq %rax, %r12
jmp 0x5a1fd
movq %rax, %r12
leaq 0xd0(%rsp), %rbx
jmp 0x5a22a
movq %rax, %r12
movq 0x500(%rsp), %rdi
cmpq %r14, %rdi
je 0x59cc7
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59cc7
movq %rax, %r12
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x5a247
movq 0x1a0(%rsp), %rsi
jmp 0x5a23f
jmp 0x59e87
movq %rax, %r12
leaq 0x510(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59d1b
movq 0x510(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59d1b
movq %rax, %r12
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59d3b
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59d3b
movq %rax, %r12
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0x59d65
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59d65
movq %rax, %r12
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59d8b
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59d8b
movq %rax, %r12
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x59db1
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59db1
movq %rax, %r12
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x59ddb
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x59ddb
movq %rax, %r12
leaq 0x1e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5a26c
movq 0x1e0(%rsp), %rsi
jmp 0x5a264
jmp 0x5a00d
movq %rax, (%rsp)
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x59e22
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
movq (%rsp), %r12
jmp 0x5a189
jmp 0x5a139
movq %rax, %r12
leaq 0xa8(%rsp), %r13
jmp 0x5a1bb
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r12, %rdi
je 0x59e62
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x5a0eb
movq 0x48(%rsp), %rsi
jmp 0x5a0e3
movq %rax, %r12
jmp 0x5a189
movq %rax, %r12
jmp 0x5a247
jmp 0x5a146
jmp 0x5a146
movq %rax, %r12
leaq 0xa8(%rsp), %r13
jmp 0x5a1ae
jmp 0x5a146
movq %rax, %r12
movb $0x1, %r14b
jmp 0x5a125
jmp 0x5a146
movq %rax, %r12
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x5a149
movq 0x28(%rsp), %rsi
incq %rsi
jmp 0x5a132
jmp 0x59ee3
movq %rax, %r12
jmp 0x5a165
movq %rax, %r12
jmp 0x59fe7
movq %rax, %r12
jmp 0x59fc2
movq %rax, %r12
jmp 0x59f9d
movq %rax, %r12
jmp 0x59f78
movq %rax, %r12
jmp 0x59f56
movq %rax, %r12
jmp 0x59f31
movq %rax, %r12
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x59f31
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x170(%rsp), %rdi
leaq 0x180(%rsp), %rax
cmpq %rax, %rdi
je 0x59f56
movq 0x180(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x59f78
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x59f9d
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x59fc2
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x59fe7
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x5a165
movq 0x160(%rsp), %rsi
jmp 0x5a15d
movq %rax, %rbx
jmp 0x5a0eb
movq %rax, %rbx
jmp 0x5a0c6
movq %rax, %rbx
jmp 0x5a0a1
movq %rax, %rbx
jmp 0x5a087
movq %rax, %rbx
jmp 0x5a070
movq %rax, %rbx
jmp 0x5a04b
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r14, %rdi
je 0x5a04b
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x5a070
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x18(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a087
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r12, %rdi
je 0x5a0a1
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x128(%rsp), %rdi
leaq 0x138(%rsp), %rax
cmpq %rax, %rdi
je 0x5a0c6
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x5a0eb
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
movq %rbx, %r12
jmp 0x5a189
jmp 0x5a146
movq %rax, %r12
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0x5a125
movq 0x248(%rsp), %rsi
incq %rsi
callq 0x229c0
testb %r14b, %r14b
je 0x5a149
movl $0x160, %esi            # imm = 0x160
movq %rbp, %rdi
callq 0x229c0
jmp 0x5a149
movq %rax, %r12
leaq 0xa8(%rsp), %r13
jmp 0x5a189
movq %rax, %r12
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x5a165
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %r13
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x5a189
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x5a1ae
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x500(%rsp), %rdi
callq 0x22200
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x5a1e0
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a1fd
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xd0(%rsp), %rbx
movq 0x190(%rsp), %rdi
leaq 0x1a0(%rsp), %rax
cmpq %rax, %rdi
je 0x5a22a
movq 0x1a0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xc0(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5a247
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1f8(%rsp), %rdi
leaq 0x208(%rsp), %rax
cmpq %rax, %rdi
je 0x5a26c
movq 0x208(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %r12, %rdi
callq 0x23240