// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::processLateParticles(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, double>>>, int, bool, int)
void Swarm::processLateParticles(map<string, double> simParams_, int subParID, bool breed, int currGen) {

		//int found = 0;
			//for(auto i = 1; i<=options.swarmSize; i++){
			//	found = 0;
				//for(auto k = 0; k<options.models.size(); k++){
				//	for(auto j = finishedSubParticles_.begin(); j != finishedSubParticles_.end(); ++j){
						//subParID = fcalcsubParID(i, k, options.models.size());
					//	if(subParID == *j){
							//found = 1;

//						}

	//				}

		if(currGen==0){
			currGen = currentGeneration;

		}
	//
					//if(found==0){
		int pID = fcalcParID(subParID, options.models.size());
		int mid = fcalcMID(subParID, options.models.size());


						map<string, double> paramSet;

							vector<string> paramVals;
							vector<string> paramVecStr;

							//auto best = allGenFits.begin();

							//allGenFits.insert(pair<double, string>(fitCalc, order_params(paramsString, mid)));
							//swarmBestFits_.insert(pair<double, unsigned int>(fitCalc, pID));
							//subswarmBestFits_.insert(pair<double, unsigned int>(fitCalc, subParID));
							//currentsubswarmBestFits_.insert(pair<double, unsigned int>(fitCalc, subParID));

							int bestSP = 0;
							int bestMD = -1;
							int bestP = 0;

							//int mysize = subparticleBestFits_.size();
							//cout << "SIZE1 " << mysize << endl;
							//mysize = swarmBestFits_.size();
							//cout << "SIZE2 " << mysize << endl;

							if(simParams_.size()==0){

								//Raquel: we gotta fix this, make this loop work and discover why the variables are getting erased.
								for(auto pi = subparticleBestFits_.begin(); pi != subparticleBestFits_.end(); pi++){

									bestMD = fcalcMID(pi->second, options.models.size());
									if(bestMD == mid){
										bestSP = pi->second;
										bestP = fcalcParID(bestSP, options.models.size());
										break;
									}

								}


								//split(best->second, paramVals);

								auto fp = options.models.at(mid)->freeParams_.begin();
								for (unsigned int i = 1; i < subparticleCurrParamSets_[pID][mid].size(); i++) {
									//paramSet.insert(pair<string, double> (fp->first, subparticleCurrParamSets_[bestP][mid][i])); //make this work later, to clone the best particle
									paramSet.insert(pair<string, double> (fp->first, subparticleCurrParamSets_[pID][mid][i]));

									++fp;

									paramVecStr.push_back(toString(subparticleCurrParamSets_[bestP][mid][i]));
								}




							}else{

								for (auto i = simParams_.begin(); i != simParams_.end(); ++i) {
									//paramSet.insert(pair<string, double> (fp->first, subparticleCurrParamSets_[bestP][mid][i])); //make this work later, to clone the best particle
									paramSet.insert(pair<string, double> (i->first, i->second));

									paramVecStr.push_back(toString(i->second));
								}
							}

							if(breed){
								swarmComm->sendToSwarm(0, subParID, SEND_FINAL_PARAMS_TO_PARTICLE, false, paramVecStr);
							}
							if(options.verbosity>=3){
								cout << "@@@@@@@@@@@@@@@@@@@@@@@@ LATE SUBPARTICLE " << subParID << " @@@@@@@@@@@@@@@@@@@@@@@@@@@" << " paramvals size: " << paramVals.size() << " freeparam names size: " << options.models.at(mid)->freeParams_.size() << endl;
							}
							for (unsigned int r = 1; r <= options.smoothing; ++r) {
								string outputDir = options.jobOutputDir + toString(currGen) + "/";
								string bnglFilename = getModelName(mid, false)+"_" + toString(pID) + "_" + toString(r) + ".bngl";
								string suffix = toString(pID) + "_" + toString(r) ;
								//options.models[mid]->outputModelWithParams(paramSet, outputDir, bnglFilename, suffix, false, false, true, false, false);

								if (options.models[mid]->getHasGenerateNetwork()){
									// If we're using ODE solver, output .net file
									bnglFilename = boost::regex_replace(bnglFilename, boost::regex("bngl$"), string("net"));
									options.models[mid]->outputModelWithParams(simParams_, outputDir, bnglFilename, suffix,  false, false, true, false, false);
								}
								else {
									// If we're using network free simulation, output .bngl
									options.models[mid]->outputModelWithParams(simParams_, outputDir, bnglFilename, suffix, false, false, false, false, false);
								}


							}
						/*if(breed){
							int numFinishedBreeding = 0;
							while (numFinishedBreeding == 0) {
									if(options.verbosity>=3){

										cout << "checking for DONEBREED FOR LATE PARTICLE " << subParID << endl;
									}
									unsigned int numMessages = swarmComm->recvMessage(-1, 0, DONE_BREEDING, true, swarmComm->univMessageReceiver, true);

							//		int Pheromones::recvMessage(signed int senderID, const int receiverID, int tag, bool block, swarmMsgHolder &messageHolder, bool eraseMessage, int messageID) {

									numFinishedBreeding += numMessages;
									//cout << numFinishedBreeding << endl;
									if(options.verbosity>=3){

										cout << "RAQUEL numFinishedBreeding " << numFinishedBreeding << endl;
									}
							}
						}*/
					//}
				//}

			//}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x640, %rsp            # imm = 0x640
movq %rsi, -0x518(%rbp)
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
andb $0x1, %al
movb %al, -0x15(%rbp)
movl %r8d, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x510(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0x104059
movq -0x510(%rbp), %rax
movl 0x13e8(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x510(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, -0x520(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movl -0x520(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movq -0x510(%rbp), %rdi
movl %eax, -0x20(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x51c(%rbp)
addq $0x14c0, %rdi           # imm = 0x14C0
addq $0x100, %rdi            # imm = 0x100
callq 0x45170
movl -0x51c(%rbp), %edi
movl %eax, %esi
callq 0x17d3d0
movl %eax, -0x24(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x8de30
leaq -0x70(%rbp), %rdi
callq 0x448b0
leaq -0x88(%rbp), %rdi
callq 0x448b0
movq -0x518(%rbp), %rdi
movl $0x0, -0x8c(%rbp)
movl $0xffffffff, -0x90(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x94(%rbp)
callq 0x9c650
cmpq $0x0, %rax
jne 0x1044e0
movq -0x510(%rbp), %rdi
addq $0x1a50, %rdi           # imm = 0x1A50
callq 0x123440
movq %rax, -0xa0(%rbp)
movq -0x510(%rbp), %rdi
addq $0x1a50, %rdi           # imm = 0x1A50
callq 0x1234a0
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x123470
testb $0x1, %al
jne 0x104161
jmp 0x104244
leaq -0xa0(%rbp), %rdi
callq 0x1230a0
movq -0x510(%rbp), %rdi
cvttsd2si 0x8(%rax), %rax
movl %eax, -0x528(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x528(%rbp), %edi
movl %eax, %esi
callq 0x17d3d0
movl %eax, -0x524(%rbp)
jmp 0x1041a1
movl -0x524(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
cmpl -0x24(%rbp), %eax
jne 0x104228
leaq -0xa0(%rbp), %rdi
callq 0x1230a0
movq -0x510(%rbp), %rdi
cvttsd2si 0x8(%rax), %eax
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movl %eax, -0x530(%rbp)
addq $0x15c0, %rdi           # imm = 0x15C0
callq 0x45170
movl -0x530(%rbp), %edi
movl %eax, %esi
callq 0x17d3f0
movl %eax, -0x52c(%rbp)
jmp 0x104203
movl -0x52c(%rbp), %eax
movl %eax, -0x94(%rbp)
jmp 0x104244
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x105051
jmp 0x10422a
leaq -0xa0(%rbp), %rdi
xorl %esi, %esi
callq 0x1234d0
movq %rax, -0xc0(%rbp)
jmp 0x10412b
movq -0x510(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movslq -0x24(%rbp), %rsi
callq 0x45190
movq %rax, -0x538(%rbp)
jmp 0x104264
movq -0x538(%rbp), %rax
movq (%rax), %rdi
addq $0x30, %rdi
callq 0x44c70
movq %rax, -0xc8(%rbp)
movl $0x1, -0xcc(%rbp)
movq -0x510(%rbp), %rdi
movl -0xcc(%rbp), %eax
movq %rax, -0x548(%rbp)
addq $0x1460, %rdi           # imm = 0x1460
movl -0x20(%rbp), %eax
movl %eax, -0xd0(%rbp)
leaq -0xd0(%rbp), %rsi
callq 0xd0d50
movq %rax, -0x540(%rbp)
jmp 0x1042c1
movq -0x540(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, -0xd4(%rbp)
leaq -0xd4(%rbp), %rsi
callq 0xd0e30
movq %rax, -0x550(%rbp)
jmp 0x1042e6
movq -0x550(%rbp), %rdi
callq 0xb25c0
movq %rax, %rcx
movq -0x548(%rbp), %rax
cmpq %rcx, %rax
jae 0x1044db
leaq -0xc8(%rbp), %rdi
callq 0x44d00
movq -0x510(%rbp), %rdi
movq %rax, -0x560(%rbp)
addq $0x1460, %rdi           # imm = 0x1460
movl -0x20(%rbp), %eax
movl %eax, -0x104(%rbp)
leaq -0x104(%rbp), %rsi
callq 0xd0d50
movq %rax, -0x558(%rbp)
jmp 0x104344
movq -0x558(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, -0x108(%rbp)
leaq -0x108(%rbp), %rsi
callq 0xd0e30
movq %rax, -0x568(%rbp)
jmp 0x104369
movq -0x568(%rbp), %rdi
movl -0xcc(%rbp), %eax
movl %eax, %esi
callq 0xb2610
movq -0x560(%rbp), %rsi
movq %rax, %rdx
leaq -0x100(%rbp), %rdi
callq 0xd0f10
jmp 0x104395
leaq -0x58(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x8e720
movb %dl, -0x571(%rbp)
movq %rax, -0x570(%rbp)
jmp 0x1043b4
movb -0x571(%rbp), %al
movq -0x570(%rbp), %rcx
movq %rcx, -0x118(%rbp)
movb %al, -0x110(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x8e7a0
leaq -0xc8(%rbp), %rdi
callq 0x44d20
movq -0x510(%rbp), %rdi
addq $0x1460, %rdi           # imm = 0x1460
movl -0x94(%rbp), %eax
movl %eax, -0x13c(%rbp)
leaq -0x13c(%rbp), %rsi
callq 0xd0d50
movq %rax, -0x580(%rbp)
jmp 0x104415
movq -0x580(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, -0x140(%rbp)
leaq -0x140(%rbp), %rsi
callq 0xd0e30
movq %rax, -0x588(%rbp)
jmp 0x10443a
movq -0x588(%rbp), %rdi
movl -0xcc(%rbp), %eax
movl %eax, %esi
callq 0xb2610
movsd (%rax), %xmm0
leaq -0x138(%rbp), %rdi
callq 0x17e490
jmp 0x104460
leaq -0x88(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0xb39c0
jmp 0x104475
leaq -0x138(%rbp), %rdi
callq 0x311e8
movl -0xcc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xcc(%rbp)
jmp 0x104288
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x8e7a0
jmp 0x105051
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x311e8
jmp 0x105051
jmp 0x104642
movq -0x518(%rbp), %rdi
callq 0x9c670
movq %rax, -0x148(%rbp)
movq -0x518(%rbp), %rdi
callq 0x966d0
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x9c6a0
testb $0x1, %al
jne 0x104522
jmp 0x104640
leaq -0x148(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x9c7b0
movq -0x598(%rbp), %rdi
movq %rax, -0x590(%rbp)
callq 0x9c7b0
movq -0x590(%rbp), %rsi
movq %rax, %rdx
addq $0x20, %rdx
leaq -0x178(%rbp), %rdi
callq 0xd0f10
jmp 0x104564
leaq -0x58(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x8e720
movb %dl, -0x5a1(%rbp)
movq %rax, -0x5a0(%rbp)
jmp 0x104583
movb -0x5a1(%rbp), %al
movq -0x5a0(%rbp), %rcx
movq %rcx, -0x188(%rbp)
movb %al, -0x180(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x8e7a0
leaq -0x148(%rbp), %rdi
callq 0x9c7b0
movsd 0x20(%rax), %xmm0
leaq -0x1a8(%rbp), %rdi
callq 0x17e490
jmp 0x1045c8
leaq -0x88(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0xb39c0
jmp 0x1045dd
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x97360
jmp 0x1044f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x8e7a0
jmp 0x105051
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x311e8
jmp 0x105051
jmp 0x104642
testb $0x1, -0x15(%rbp)
je 0x104679
movq -0x510(%rbp), %rax
movq (%rax), %rdi
movl -0x14(%rbp), %edx
movq %rsp, %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movl $0x15, %ecx
xorl %r8d, %r8d
leaq -0x88(%rbp), %r9
movl %r8d, %esi
callq 0xcd520
jmp 0x104677
jmp 0x104679
movq -0x510(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x104798
movq 0x1d08bc(%rip), %rdi    # 0x2d4f50
leaq 0xddb9e(%rip), %rsi     # 0x1e2239
callq 0x2ff50
movq %rax, -0x5b0(%rbp)
jmp 0x1046a9
movq -0x5b0(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x2f800
movq %rax, -0x5b8(%rbp)
jmp 0x1046c1
movq -0x5b8(%rbp), %rdi
leaq 0xddb95(%rip), %rsi     # 0x1e2264
callq 0x2ff50
movq %rax, -0x5c0(%rbp)
jmp 0x1046dd
movq -0x5c0(%rbp), %rdi
leaq 0xddb96(%rip), %rsi     # 0x1e2281
callq 0x2ff50
movq %rax, -0x5c8(%rbp)
jmp 0x1046f9
leaq -0x70(%rbp), %rdi
callq 0x44960
movq -0x5c8(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x5d0(%rbp)
jmp 0x10471a
movq -0x5d0(%rbp), %rdi
leaq 0xddb6b(%rip), %rsi     # 0x1e2293
callq 0x2ff50
movq %rax, -0x5d8(%rbp)
jmp 0x104736
movq -0x510(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movslq -0x24(%rbp), %rsi
callq 0x45190
movq %rax, -0x5e0(%rbp)
jmp 0x104756
movq -0x5e0(%rbp), %rax
movq (%rax), %rdi
addq $0x30, %rdi
callq 0x4cd80
movq -0x5d8(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0x5e8(%rbp)
jmp 0x104781
movq -0x5e8(%rbp), %rdi
movq 0x1d0839(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x104796
jmp 0x104798
movl $0x1, -0x1ac(%rbp)
movq -0x510(%rbp), %rcx
movl -0x1ac(%rbp), %eax
cmpl 0x1658(%rcx), %eax
ja 0x10502a
movq -0x510(%rbp), %rax
addq $0x1520, %rax           # imm = 0x1520
movq %rax, -0x5f0(%rbp)
movl -0x1c(%rbp), %esi
leaq -0x210(%rbp), %rdi
callq 0x17ce40
jmp 0x1047e0
movq -0x5f0(%rbp), %rsi
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rdx
callq 0xb3380
jmp 0x1047fc
leaq 0xddb50(%rip), %rdx     # 0x1e2353
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x441f0
jmp 0x104818
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
leaq -0x210(%rbp), %rdi
callq 0x311e8
movq -0x510(%rbp), %rsi
movl -0x24(%rbp), %edx
leaq -0x2d0(%rbp), %rdi
xorl %ecx, %ecx
callq 0xec790
jmp 0x10484a
leaq 0xd5e16(%rip), %rdx     # 0x1da667
leaq -0x2b0(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x441f0
jmp 0x104866
movl -0x20(%rbp), %esi
leaq -0x2f0(%rbp), %rdi
callq 0x17ce40
jmp 0x104877
leaq -0x290(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
callq 0x9c7d0
jmp 0x104893
leaq 0xd5dcd(%rip), %rdx     # 0x1da667
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x441f0
jmp 0x1048af
movl -0x1ac(%rbp), %esi
leaq -0x310(%rbp), %rdi
callq 0x17e460
jmp 0x1048c3
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
leaq -0x310(%rbp), %rdx
callq 0x9c7d0
jmp 0x1048df
leaq 0xd7298(%rip), %rdx     # 0x1dbb7e
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x441f0
jmp 0x1048fb
leaq -0x250(%rbp), %rdi
callq 0x311e8
leaq -0x310(%rbp), %rdi
callq 0x311e8
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2f0(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
leaq -0x2d0(%rbp), %rdi
callq 0x311e8
movl -0x20(%rbp), %esi
leaq -0x370(%rbp), %rdi
callq 0x17ce40
jmp 0x104960
leaq 0xd5d00(%rip), %rdx     # 0x1da667
leaq -0x350(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x441f0
jmp 0x10497c
movl -0x1ac(%rbp), %esi
leaq -0x390(%rbp), %rdi
callq 0x17e460
jmp 0x104990
leaq -0x330(%rbp), %rdi
leaq -0x350(%rbp), %rsi
leaq -0x390(%rbp), %rdx
callq 0x9c7d0
jmp 0x1049ac
leaq -0x390(%rbp), %rdi
callq 0x311e8
leaq -0x350(%rbp), %rdi
callq 0x311e8
leaq -0x370(%rbp), %rdi
callq 0x311e8
movq -0x510(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movslq -0x24(%rbp), %rsi
callq 0x45b40
movq (%rax), %rdi
callq 0x9cbc0
movb %al, -0x5f1(%rbp)
jmp 0x1049f7
movb -0x5f1(%rbp), %al
testb $0x1, %al
jne 0x104a06
jmp 0x104e57
leaq 0xd5d91(%rip), %rsi     # 0x1da79e
leaq -0x3c0(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x104a1d
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x30a70
movq -0x600(%rbp), %rdx
leaq 0xd6863(%rip), %rsi     # 0x1db2a1
leaq -0x3e0(%rbp), %rdi
callq 0x44470
jmp 0x104a4c
leaq -0x3b0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
leaq -0x3c0(%rbp), %rdx
leaq -0x3e0(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x104a72
leaq -0x230(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
movq %rsi, -0x610(%rbp)
callq 0x2fd80
movq -0x610(%rbp), %rdi
callq 0x311e8
leaq -0x3e0(%rbp), %rdi
callq 0x311e8
leaq -0x3e1(%rbp), %rdi
callq 0x311c0
leaq -0x3c0(%rbp), %rdi
callq 0x441d0
movq -0x510(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movslq -0x24(%rbp), %rsi
callq 0x45b40
movq -0x518(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0x608(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x9c620
jmp 0x104af2
leaq -0x438(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x2f300
jmp 0x104b07
leaq -0x458(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x2f300
jmp 0x104b1c
leaq -0x478(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x2f300
jmp 0x104b31
movq -0x608(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x1, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x418(%rbp), %rsi
leaq -0x438(%rbp), %rdx
leaq -0x458(%rbp), %rcx
leaq -0x478(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0x104b7c
leaq -0x478(%rbp), %rdi
callq 0x311e8
leaq -0x458(%rbp), %rdi
callq 0x311e8
leaq -0x438(%rbp), %rdi
callq 0x311e8
leaq -0x418(%rbp), %rdi
callq 0x8de70
jmp 0x104fcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104be3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x311e8
leaq -0x210(%rbp), %rdi
callq 0x311e8
jmp 0x105051
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x10501c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104ce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104cd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104ccb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104cbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104cb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104ca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x250(%rbp), %rdi
callq 0x311e8
leaq -0x310(%rbp), %rdi
callq 0x311e8
leaq -0x270(%rbp), %rdi
callq 0x311e8
leaq -0x290(%rbp), %rdi
callq 0x311e8
leaq -0x2f0(%rbp), %rdi
callq 0x311e8
leaq -0x2b0(%rbp), %rdi
callq 0x311e8
leaq -0x2d0(%rbp), %rdi
callq 0x311e8
jmp 0x10501c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x105010
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104d5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104d51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x311e8
leaq -0x350(%rbp), %rdi
callq 0x311e8
leaq -0x370(%rbp), %rdi
callq 0x311e8
jmp 0x105010
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x105004
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104db7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x311e8
leaq -0x3e1(%rbp), %rdi
callq 0x311c0
leaq -0x3c0(%rbp), %rdi
callq 0x441d0
jmp 0x105004
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104e2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x311e8
leaq -0x458(%rbp), %rdi
callq 0x311e8
leaq -0x438(%rbp), %rdi
callq 0x311e8
leaq -0x418(%rbp), %rdi
callq 0x8de70
jmp 0x105004
movq -0x510(%rbp), %rdi
addq $0x15c0, %rdi           # imm = 0x15C0
movslq -0x24(%rbp), %rsi
callq 0x45b40
movq -0x518(%rbp), %rsi
movq (%rax), %rax
movq %rax, -0x618(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x9c620
jmp 0x104e8d
leaq -0x4c8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x2f300
jmp 0x104ea2
leaq -0x4e8(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x2f300
jmp 0x104eb7
leaq -0x508(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x2f300
jmp 0x104ecc
movq -0x618(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x4a8(%rbp), %rsi
leaq -0x4c8(%rbp), %rdx
leaq -0x4e8(%rbp), %rcx
leaq -0x508(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0x104f17
leaq -0x508(%rbp), %rdi
callq 0x311e8
leaq -0x4e8(%rbp), %rdi
callq 0x311e8
leaq -0x4c8(%rbp), %rdi
callq 0x311e8
leaq -0x4a8(%rbp), %rdi
callq 0x8de70
jmp 0x104fcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104fbe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104fb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x104fa6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x508(%rbp), %rdi
callq 0x311e8
leaq -0x4e8(%rbp), %rdi
callq 0x311e8
leaq -0x4c8(%rbp), %rdi
callq 0x311e8
leaq -0x4a8(%rbp), %rdi
callq 0x8de70
jmp 0x105004
leaq -0x330(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
movl -0x1ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ac(%rbp)
jmp 0x1047a2
leaq -0x330(%rbp), %rdi
callq 0x311e8
leaq -0x230(%rbp), %rdi
callq 0x311e8
leaq -0x1d0(%rbp), %rdi
callq 0x311e8
jmp 0x105051
leaq -0x88(%rbp), %rdi
callq 0x448d0
leaq -0x70(%rbp), %rdi
callq 0x448d0
leaq -0x58(%rbp), %rdi
callq 0x8de70
addq $0x640, %rsp            # imm = 0x640
popq %rbp
retq
leaq -0x88(%rbp), %rdi
callq 0x448d0
leaq -0x70(%rbp), %rdi
callq 0x448d0
leaq -0x58(%rbp), %rdi
callq 0x8de70
movq -0xb0(%rbp), %rdi
callq 0x30170
nopl (%rax,%rax)