// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::resultChecking()
vector<pair<int,float> > Swarm::resultChecking(){
float result = 0;
	string outdir = options.outputDir + "/" + options.jobName + "/" + toString(currentGeneration-1) + "/";

	string inputFile1;
	string inputFile2;

	string path;
	string basename1;
	string basename2;

	string outname;

	vector<pair<int,float> > constraintsCount;
	map<int,string> constraint;

	int pnumber;
	int mnumber;
	int subnumber;
	float iteration1;
	float iteration2;

	vector<string> constraintParams;

	/* for(auto it = subparticleCurrParamSets_.begin(); it!=subparticleCurrParamSets_.end(); ++it){
		 //particle, model, parameters
		 for(int i = 0; i < options.models.size(); i++){
			 subnumber = fcalcsubParID(it->first, i, options.models.size());

			 constraintsCount.push_back(make_pair(subnumber,0));
		 }
	 }
*/
	 for(auto it = subparticleCurrParamSets_.begin(); it!=subparticleCurrParamSets_.end(); ++it){
		 cout << "particle :" << it->first << endl;

		 for(unsigned int i = 0; i < options.models.size(); i++){

			 //cout <<  "model: " << i << endl;
			 for(unsigned int j= 0; j < options.models.size(); j++){

				 //if(i!=j && i<j){

					 path = options.models.at(i)->getName();
					 basename1 = getFilename(path);
					 inputFile1 = outdir + basename1 + "_" + toString(it->first) + "_" + "1" + ".gdat";

					 path = options.models.at(j)->getName();
					 basename2 = getFilename(path);
					 inputFile2 = outdir + basename2 + "_" + toString(it->first) + "_" + "1" + ".gdat";

					 cout << "infile 1: " << inputFile1 << endl;
					 cout << "infile 2: " << inputFile2 << endl;
					 //		std::map<int,string> constraints_; //Raquel: added constraint options support
					 outname = outdir + basename1 + "_vs_" + basename2 + "_" + toString(it->first) + ".txt";
					 //add outname as the fourth input
					 //Raquel: adding support to receive different model numbers and time points as input
					 //cout << "Starting model checking, testing for " << options.constraints_.size() << " contraints." << endl;

					 for(auto constraintIt = options.constraints_.begin(); constraintIt != options.constraints_.end(); ++constraintIt){

						 constraintParams = split_string(constraintIt->second, " ");

						 //cout << "consParam 0 " << constraintParams[0] << "consParam 1 " <<  constraintParams[1] << "consParam 2 " <<  constraintParams[2] << "consParam 3 " << constraintParams[3] << "consParam 4 " << endl;
						 constraint.insert(make_pair(constraintIt->first,constraintParams[0]));
						 //cout << "COUNSTRAINT size from swarm: " << constraint.size() << endl;

						 if((i == (unsigned) atoi(constraintParams[1].c_str()) && j== (unsigned) atoi(constraintParams[2].c_str()))){
						 //if((i==atoi(constraintParams[1].c_str()) && j==atoi(constraintParams[2].c_str())) || (i==atoi(constraintParams[1].c_str()) && i==atoi(constraintParams[2].c_str())) || (j==atoi(constraintParams[1].c_str()) && j==atoi(constraintParams[2].c_str()))){

							 iteration1 = atof(constraintParams[3].c_str());
							 iteration2 = atof(constraintParams[4].c_str());


							 result += evaluateResults(inputFile1,inputFile2,constraint, outname, iteration1, iteration2);


							 pnumber = it->first;
							 mnumber = i;
							 subnumber = fcalcsubParID(pnumber, mnumber, options.models.size());

							 //for(auto conscountIt = constraintsCount.begin(); conscountIt != constraintsCount.end(); ++conscountIt){
								 //if(conscountIt->first == subnumber){
									 //constraintsCount.erase(conscountIt);
									 //cout << "adding result " << toString(conscountIt->second+result) << " to constraint count to subpar" << subnumber << endl;
									 //constraintsCount.push_back(make_pair(conscountIt->first, conscountIt->second+result));
								// }


							 //}
							 //constraintsCount[subnumber] = constraintsCount[subnumber]+(float)result;
							 //constraintsCount.push_back(make_pair(subnumber,(float)result));
						 }
						 constraint.clear();



					 }





				 //}

			 }

			 pnumber = it->first;
			 mnumber = i;
			 subnumber = fcalcsubParID(pnumber, mnumber, options.models.size());

			 constraintsCount.push_back(make_pair(subnumber, result));

			 result = 0;
			 //Raquel: added this break so only the first model(wild type), is compared versus the others for now
			//break;

		 }


	 }

	 //for(auto it2 = particleIterationCounter_.begin(); it2!=particleIterationCounter_.end(); it2++){
	//	 cout << "Iteration: " << it2->first << endl;

	 //}


	// for(auto i = constraintsCount.begin(); i != constraintsCount.end(); ++i){
	//	 cout << "constraintCount values: ";
	//	 cout << i->first << " ";
	//	 cout << i->second << endl;
//
//	 }

	 return constraintsCount;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x800, %rsp            # imm = 0x800
movq %rdi, -0x6f0(%rbp)
movq %rdi, %rax
movq %rax, -0x6e8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0x6e0(%rbp)
movl $0x0, -0x14(%rbp)
movq %rsi, %rax
addq $0x14c0, %rax           # imm = 0x14C0
movq %rax, -0x6d0(%rbp)
addq $0x1500, %rsi           # imm = 0x1500
leaq 0xc58ef(%rip), %rdx     # 0x1e2353
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0x447b0
movq -0x6d8(%rbp), %rsi
movq -0x6d0(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0x44760
jmp 0x11ca93
leaq 0xc58b9(%rip), %rdx     # 0x1e2353
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x441f0
jmp 0x11caac
movq -0x6e0(%rbp), %rax
movl 0x13e8(%rax), %esi
decl %esi
leaq -0xe8(%rbp), %rdi
callq 0x17e460
jmp 0x11cac9
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0xe8(%rbp), %rdx
callq 0x9c7d0
jmp 0x11cadf
leaq 0xc586d(%rip), %rdx     # 0x1e2353
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x441f0
jmp 0x11caf5
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0xe8(%rbp), %rdi
callq 0x311e8
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x311e8
leaq -0x108(%rbp), %rdi
callq 0x2f880
leaq -0x128(%rbp), %rdi
callq 0x2f880
leaq -0x148(%rbp), %rdi
callq 0x2f880
leaq -0x168(%rbp), %rdi
callq 0x2f880
leaq -0x188(%rbp), %rdi
callq 0x2f880
leaq -0x1a8(%rbp), %rdi
callq 0x2f880
movq -0x6f0(%rbp), %rdi
movb $0x0, -0x1a9(%rbp)
callq 0x120db0
leaq -0x1e0(%rbp), %rdi
callq 0x50650
leaq -0x210(%rbp), %rdi
callq 0x448b0
movq -0x6e0(%rbp), %rdi
addq $0x1460, %rdi           # imm = 0x1460
callq 0x125400
movq %rax, -0x218(%rbp)
movq -0x6e0(%rbp), %rdi
addq $0x1460, %rdi           # imm = 0x1460
callq 0xdd9c0
movq %rax, -0x220(%rbp)
leaq -0x218(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x125430
testb $0x1, %al
jne 0x11cbee
jmp 0x11db98
movq 0x1b835b(%rip), %rdi    # 0x2d4f50
leaq 0xc7762(%rip), %rsi     # 0x1e435e
callq 0x2ff50
movq %rax, -0x6f8(%rbp)
jmp 0x11cc0a
leaq -0x218(%rbp), %rdi
callq 0x125460
movq -0x6f8(%rbp), %rdi
movl (%rax), %esi
callq 0x30640
movq %rax, -0x700(%rbp)
jmp 0x11cc2d
movq -0x700(%rbp), %rdi
movq 0x1b838d(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x11cc42
movl $0x0, -0x224(%rbp)
movq -0x6e0(%rbp), %rdi
movl -0x224(%rbp), %eax
movq %rax, -0x708(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movq %rax, %rcx
movq -0x708(%rbp), %rax
cmpq %rcx, %rax
jae 0x11db85
movl $0x0, -0x228(%rbp)
movq -0x6e0(%rbp), %rdi
movl -0x228(%rbp), %eax
movq %rax, -0x710(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movq %rax, %rcx
movq -0x710(%rbp), %rax
cmpq %rcx, %rax
jae 0x11dabb
movq -0x6e0(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x224(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0x718(%rbp)
jmp 0x11ccee
movq -0x718(%rbp), %rax
movq (%rax), %rsi
leaq -0x248(%rbp), %rdi
callq 0x8e140
jmp 0x11cd06
leaq -0x148(%rbp), %rdi
movq %rdi, -0x720(%rbp)
leaq -0x248(%rbp), %rsi
movq %rsi, -0x728(%rbp)
callq 0x2fd80
movq -0x728(%rbp), %rdi
callq 0x311e8
movq -0x720(%rbp), %rsi
leaq -0x288(%rbp), %rdi
callq 0x2f300
jmp 0x11cd48
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x17d590
jmp 0x11cd5d
leaq -0x168(%rbp), %rdi
movq %rdi, -0x730(%rbp)
leaq -0x268(%rbp), %rsi
movq %rsi, -0x738(%rbp)
callq 0x2fd80
movq -0x738(%rbp), %rdi
callq 0x311e8
leaq -0x288(%rbp), %rdi
callq 0x311e8
movq -0x730(%rbp), %rdx
leaq -0x348(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x50f10
jmp 0x11cdaf
leaq 0xbd8b1(%rip), %rdx     # 0x1da667
leaq -0x328(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x441f0
jmp 0x11cdcb
leaq -0x218(%rbp), %rdi
callq 0x125460
movl (%rax), %esi
leaq -0x368(%rbp), %rdi
callq 0x17e460
jmp 0x11cde7
leaq -0x308(%rbp), %rdi
leaq -0x328(%rbp), %rsi
leaq -0x368(%rbp), %rdx
callq 0x9c7d0
jmp 0x11ce03
leaq 0xbd85d(%rip), %rdx     # 0x1da667
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rsi
callq 0x441f0
jmp 0x11ce1f
leaq 0xc8058(%rip), %rdx     # 0x1e4e7e
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x441f0
jmp 0x11ce3b
leaq 0xbe4af(%rip), %rdx     # 0x1db2f1
leaq -0x2a8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x441f0
jmp 0x11ce57
leaq -0x108(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
movq %rsi, -0x748(%rbp)
callq 0x2fd80
movq -0x748(%rbp), %rdi
callq 0x311e8
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
leaq -0x368(%rbp), %rdi
callq 0x311e8
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x348(%rbp), %rdi
callq 0x311e8
movq -0x6e0(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movl -0x228(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq %rax, -0x740(%rbp)
jmp 0x11cee9
movq -0x740(%rbp), %rax
movq (%rax), %rsi
leaq -0x388(%rbp), %rdi
callq 0x8e140
jmp 0x11cf01
leaq -0x148(%rbp), %rdi
movq %rdi, -0x750(%rbp)
leaq -0x388(%rbp), %rsi
movq %rsi, -0x758(%rbp)
callq 0x2fd80
movq -0x758(%rbp), %rdi
callq 0x311e8
movq -0x750(%rbp), %rsi
leaq -0x3c8(%rbp), %rdi
callq 0x2f300
jmp 0x11cf43
leaq -0x3a8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x17d590
jmp 0x11cf58
leaq -0x188(%rbp), %rdi
movq %rdi, -0x760(%rbp)
leaq -0x3a8(%rbp), %rsi
movq %rsi, -0x768(%rbp)
callq 0x2fd80
movq -0x768(%rbp), %rdi
callq 0x311e8
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
movq -0x760(%rbp), %rdx
leaq -0x488(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x50f10
jmp 0x11cfaa
leaq 0xbd6b6(%rip), %rdx     # 0x1da667
leaq -0x468(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x441f0
jmp 0x11cfc6
leaq -0x218(%rbp), %rdi
callq 0x125460
movl (%rax), %esi
leaq -0x4a8(%rbp), %rdi
callq 0x17e460
jmp 0x11cfe2
leaq -0x448(%rbp), %rdi
leaq -0x468(%rbp), %rsi
leaq -0x4a8(%rbp), %rdx
callq 0x9c7d0
jmp 0x11cffe
leaq 0xbd662(%rip), %rdx     # 0x1da667
leaq -0x428(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0x441f0
jmp 0x11d01a
leaq 0xc7e5d(%rip), %rdx     # 0x1e4e7e
leaq -0x408(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x441f0
jmp 0x11d036
leaq 0xbe2b4(%rip), %rdx     # 0x1db2f1
leaq -0x3e8(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x441f0
jmp 0x11d052
leaq -0x128(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
movq %rsi, -0x778(%rbp)
callq 0x2fd80
movq -0x778(%rbp), %rdi
callq 0x311e8
leaq -0x408(%rbp), %rdi
callq 0x311e8
leaq -0x428(%rbp), %rdi
callq 0x311e8
leaq -0x448(%rbp), %rdi
callq 0x311e8
leaq -0x4a8(%rbp), %rdi
callq 0x311e8
leaq -0x468(%rbp), %rdi
callq 0x311e8
leaq -0x488(%rbp), %rdi
callq 0x311e8
movq 0x1b7e89(%rip), %rdi    # 0x2d4f50
leaq 0xc729b(%rip), %rsi     # 0x1e4369
callq 0x2ff50
movq %rax, -0x770(%rbp)
jmp 0x11d0dc
movq -0x770(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x2f780
movq %rax, -0x780(%rbp)
jmp 0x11d0f8
movq -0x780(%rbp), %rdi
movq 0x1b7ec2(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x11d10d
movq 0x1b7e3c(%rip), %rdi    # 0x2d4f50
leaq 0xc7259(%rip), %rsi     # 0x1e4374
callq 0x2ff50
movq %rax, -0x788(%rbp)
jmp 0x11d129
movq -0x788(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x2f780
movq %rax, -0x790(%rbp)
jmp 0x11d145
movq -0x790(%rbp), %rdi
movq 0x1b7e75(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x11d15a
leaq -0x568(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x168(%rbp), %rdx
callq 0x50f10
jmp 0x11d173
leaq 0xc7205(%rip), %rdx     # 0x1e437f
leaq -0x548(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x441f0
jmp 0x11d18f
leaq -0x528(%rbp), %rdi
leaq -0x548(%rbp), %rsi
leaq -0x188(%rbp), %rdx
callq 0x44760
jmp 0x11d1ab
leaq 0xbd4b5(%rip), %rdx     # 0x1da667
leaq -0x508(%rbp), %rdi
leaq -0x528(%rbp), %rsi
callq 0x441f0
jmp 0x11d1c7
leaq -0x218(%rbp), %rdi
callq 0x125460
movl (%rax), %esi
leaq -0x588(%rbp), %rdi
callq 0x17e460
jmp 0x11d1e3
leaq -0x4e8(%rbp), %rdi
leaq -0x508(%rbp), %rsi
leaq -0x588(%rbp), %rdx
callq 0x9c7d0
jmp 0x11d1ff
leaq 0xc51a8(%rip), %rdx     # 0x1e23ae
leaq -0x4c8(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x441f0
jmp 0x11d21b
leaq -0x1a8(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x2fd80
leaq -0x4c8(%rbp), %rdi
callq 0x311e8
leaq -0x4e8(%rbp), %rdi
callq 0x311e8
leaq -0x588(%rbp), %rdi
callq 0x311e8
leaq -0x508(%rbp), %rdi
callq 0x311e8
leaq -0x528(%rbp), %rdi
callq 0x311e8
leaq -0x548(%rbp), %rdi
callq 0x311e8
leaq -0x568(%rbp), %rdi
callq 0x311e8
movq -0x6e0(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x120, %rdi            # imm = 0x120
callq 0xe7240
movq %rax, -0x590(%rbp)
movq -0x6e0(%rbp), %rdi
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x120, %rdi            # imm = 0x120
callq 0x516d0
movq %rax, -0x598(%rbp)
leaq -0x590(%rbp), %rdi
leaq -0x598(%rbp), %rsi
callq 0xe7270
testb $0x1, %al
jne 0x11d2e0
jmp 0x11daa5
leaq -0x590(%rbp), %rdi
callq 0xe72a0
movq %rax, %rsi
addq $0x8, %rsi
leaq -0x5d0(%rbp), %rdi
callq 0x2f300
jmp 0x11d301
leaq -0x5f1(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x30a70
movq -0x798(%rbp), %rdx
leaq 0xc6dad(%rip), %rsi     # 0x1e40cf
leaq -0x5f0(%rbp), %rdi
callq 0x44470
jmp 0x11d330
leaq -0x5b0(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
leaq -0x5f0(%rbp), %rdx
callq 0x17ce70
jmp 0x11d34c
leaq -0x210(%rbp), %rdi
movq %rdi, -0x7a8(%rbp)
leaq -0x5b0(%rbp), %rsi
movq %rsi, -0x7b0(%rbp)
callq 0xd1b80
movq -0x7b0(%rbp), %rdi
callq 0x448d0
leaq -0x5f0(%rbp), %rdi
callq 0x311e8
leaq -0x5f1(%rbp), %rdi
callq 0x311c0
leaq -0x5d0(%rbp), %rdi
callq 0x311e8
leaq -0x590(%rbp), %rdi
callq 0xe72a0
movq -0x7a8(%rbp), %rdi
movq %rax, -0x7a0(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x449e0
movq -0x7a0(%rbp), %rsi
movq %rax, %rdx
leaq -0x620(%rbp), %rdi
callq 0x125a70
jmp 0x11d3d8
leaq -0x1e0(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x125a30
movb %dl, -0x7b9(%rbp)
movq %rax, -0x7b8(%rbp)
jmp 0x11d3fa
movb -0x7b9(%rbp), %al
movq -0x7b8(%rbp), %rcx
movq %rcx, -0x630(%rbp)
movb %al, -0x628(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x125ab0
movl -0x224(%rbp), %eax
movl %eax, -0x7c0(%rbp)
leaq -0x210(%rbp), %rdi
movl $0x1, %esi
callq 0x449e0
movq %rax, %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x2f810
movl %eax, %ecx
movl -0x7c0(%rbp), %eax
cmpl %ecx, %eax
jne 0x11da88
movl -0x228(%rbp), %eax
movl %eax, -0x7c4(%rbp)
leaq -0x210(%rbp), %rdi
movl $0x2, %esi
callq 0x449e0
movq %rax, %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x2f810
movl %eax, %ecx
movl -0x7c4(%rbp), %eax
cmpl %ecx, %eax
jne 0x11da88
leaq -0x210(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
movl $0x3, %esi
callq 0x449e0
movq %rax, %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x30650
movq -0x7d0(%rbp), %rdi
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1f0(%rbp)
movl $0x4, %esi
callq 0x449e0
movq %rax, %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x30650
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x1f4(%rbp)
leaq -0x650(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x2f300
jmp 0x11d510
leaq -0x670(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x2f300
jmp 0x11d525
leaq -0x6a0(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x125ad0
jmp 0x11d53a
leaq -0x6c0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x2f300
jmp 0x11d54f
movss -0x1f0(%rbp), %xmm0
movss -0x1f4(%rbp), %xmm1
leaq -0x650(%rbp), %rdi
leaq -0x670(%rbp), %rsi
leaq -0x6a0(%rbp), %rdx
leaq -0x6c0(%rbp), %rcx
callq 0xe4210
movss %xmm0, -0x7d4(%rbp)
jmp 0x11d58a
movss -0x7d4(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x14(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0x311e8
leaq -0x6a0(%rbp), %rdi
callq 0x50c60
leaq -0x670(%rbp), %rdi
callq 0x311e8
leaq -0x650(%rbp), %rdi
callq 0x311e8
leaq -0x218(%rbp), %rdi
callq 0x125460
movq -0x6e0(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x1e4(%rbp)
movl -0x224(%rbp), %eax
movl %eax, -0x1e8(%rbp)
movl -0x1e4(%rbp), %eax
movl %eax, -0x7e0(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x7dc(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x7e0(%rbp), %edi
movl -0x7dc(%rbp), %esi
movl %eax, %edx
callq 0x17d3a0
movl %eax, -0x7d8(%rbp)
jmp 0x11d636
movl -0x7d8(%rbp), %eax
movl %eax, -0x1ec(%rbp)
jmp 0x11da88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d6d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d6c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d6be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d6b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0xe8(%rbp), %rdi
callq 0x311e8
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x311e8
jmp 0x11dcaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d7d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d7c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d7bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d7af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d7a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
leaq -0x368(%rbp), %rdi
callq 0x311e8
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x348(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d8bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d8b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d8a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d898
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d88c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x311e8
leaq -0x428(%rbp), %rdi
callq 0x311e8
leaq -0x448(%rbp), %rdi
callq 0x311e8
leaq -0x4a8(%rbp), %rdi
callq 0x311e8
leaq -0x468(%rbp), %rdi
callq 0x311e8
leaq -0x488(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d982
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d976
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d96a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d95e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d952
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x311e8
leaq -0x588(%rbp), %rdi
callq 0x311e8
leaq -0x508(%rbp), %rdi
callq 0x311e8
leaq -0x528(%rbp), %rdi
callq 0x311e8
leaq -0x548(%rbp), %rdi
callq 0x311e8
leaq -0x568(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11d9c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x311e8
leaq -0x5f1(%rbp), %rdi
callq 0x311c0
leaq -0x5d0(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x125ab0
jmp 0x11dbc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11da77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11da6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x11da5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0x311e8
leaq -0x6a0(%rbp), %rdi
callq 0x50c60
leaq -0x670(%rbp), %rdi
callq 0x311e8
leaq -0x650(%rbp), %rdi
callq 0x311e8
jmp 0x11dbc6
leaq -0x1e0(%rbp), %rdi
callq 0x125b00
leaq -0x590(%rbp), %rdi
callq 0x526b0
jmp 0x11d2a3
jmp 0x11daa7
movl -0x228(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x228(%rbp)
jmp 0x11cc90
leaq -0x218(%rbp), %rdi
callq 0x125460
movq -0x6e0(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x1e4(%rbp)
movl -0x224(%rbp), %eax
movl %eax, -0x1e8(%rbp)
movl -0x1e4(%rbp), %eax
movl %eax, -0x7ec(%rbp)
movl -0x1e8(%rbp), %eax
movl %eax, -0x7e8(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x7ec(%rbp), %edi
movl -0x7e8(%rbp), %esi
movl %eax, %edx
callq 0x17d3a0
movl %eax, -0x7e4(%rbp)
jmp 0x11db21
movl -0x7e4(%rbp), %eax
movl %eax, -0x1ec(%rbp)
leaq -0x1ec(%rbp), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1259c0
movq %rax, -0x7f8(%rbp)
jmp 0x11db46
movq -0x6f0(%rbp), %rdi
movq -0x7f8(%rbp), %rax
movq %rax, -0x6c8(%rbp)
leaq -0x6c8(%rbp), %rsi
callq 0x1258d0
jmp 0x11db69
xorps %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
movl -0x224(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x224(%rbp)
jmp 0x11cc4c
jmp 0x11db87
leaq -0x218(%rbp), %rdi
callq 0xde9c0
jmp 0x11cbb8
movb $0x1, -0x1a9(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x448d0
leaq -0x1e0(%rbp), %rdi
callq 0x50c60
testb $0x1, -0x1a9(%rbp)
jne 0x11dc49
jmp 0x11dc3d
leaq -0x210(%rbp), %rdi
callq 0x448d0
leaq -0x1e0(%rbp), %rdi
callq 0x50c60
movq -0x6f0(%rbp), %rdi
callq 0x121190
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
leaq -0x188(%rbp), %rdi
callq 0x311e8
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
leaq -0x108(%rbp), %rdi
callq 0x311e8
leaq -0x38(%rbp), %rdi
callq 0x311e8
jmp 0x11dcaa
movq -0x6f0(%rbp), %rdi
callq 0x121190
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
leaq -0x188(%rbp), %rdi
callq 0x311e8
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
leaq -0x108(%rbp), %rdi
callq 0x311e8
leaq -0x38(%rbp), %rdi
callq 0x311e8
movq -0x6e8(%rbp), %rax
addq $0x800, %rsp            # imm = 0x800
popq %rbp
retq
movq -0xc0(%rbp), %rdi
callq 0x30170
nopw %cs:(%rax,%rax)