// File: richardposner[P]BioNetFit2/src/code/Particle.cpp
// Function: Particle::checkMessagesDE(unsigned int)
bool Particle::checkMessagesDE(unsigned int mid) {
	unsigned int subParID = calcsubParID(mid);
	if ((mid<0)|| (mid >= swarm_->getNumModels()) || (!getSubParticle(mid)) || (!models.at(mid)))
		outputError("checkMessagesDE Failed. Invalid SubParticle.  PID:"+ toString(id_) + "  model id:" + toString(mid)+ "  subParID:" + toString(subParID)+". Quitting !!!");

	Model * mdl= models.at(mid);

	while(1) {

		if (swarm_->options.verbosity >= 3) {
			cout << "Checking for messages from master" << endl;
		}

		int numCheckedMessages = 0;
		int numMessages = swarm_->swarmComm->recvMessage(-1, subParID, -1, true, swarm_->swarmComm->univMessageReceiver, true);


		if (swarm_->options.verbosity >= 3) {
			//cout << "Found " << numMessages << " messages" << endl;

			/*
			for (auto sm = swarm_->swarmComm->univMessageReceiver.begin(); sm != swarm_->swarmComm->univMessageReceiver.end(); ++sm) {
				cout << "tag: " << sm->second.tag << endl;
			}
			 */
		}

		// Holds iterator ranges when finding items in the message holder
		pair <Pheromones::swarmMsgHolderIt, Pheromones::swarmMsgHolderIt> smhRange;

		while (numCheckedMessages < numMessages) {
			smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(SEND_FINAL_PARAMS_TO_PARTICLE);
			if (smhRange.first != smhRange.second) {
				if (swarm_->options.verbosity >= 3) {
					cout << "Receiving parameter list from master mid: " << mid << " simParams size: " << simParams_.size() << " SEND_FINAL_PARAMS_TO_PARTICLE " << SEND_FINAL_PARAMS_TO_PARTICLE << endl;
				}
				for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {
					if (swarm_->options.verbosity >= 4){
						cout << "sm->second.message size: " << sm->second.message.size() << endl;
					}
					//cout << "sm->second.message[0]: " << sm->second.message[0] << endl;
					int messageIndex = 0;
					if(sm->second.message.size()>0){


					for (auto p = simParams_[mid].begin(); p != simParams_[mid].end(); ++p) {
						if (swarm_->options.verbosity >= 3) {
							cout << id_ << " updating parameter " << p->first << " to " << sm->second.message[messageIndex] << endl;
						}
						p->second = stod(sm->second.message[messageIndex]);
						++messageIndex;
					}

					for (unsigned int i = 1; i <= swarm_->options.smoothing; ++i) {

						// Construct our filenames
						string bnglFilename = swarm_->getModelName(mid, false)+"_" + toString(id_) + "_" + toString(i) + ".bngl";
						string path = swarm_->options.jobOutputDir + toString(currentGeneration_ + 1) + "/";
						string bnglFullPath = path + bnglFilename;
						string suffix = toString(id_) + "_" + toString(i);

						if (!checkIfFileExists(path)) {

							runCommand("mkdir " + path);
						}

						// And generate our models
						if (mdl->getHasGenerateNetwork()){
							// If we're using ODE solver, output .net and .bngl
							if (swarm_->options.verbosity >= 3) {
								cout << "Using ODE solver, output .net and .bngl" << endl;
							}
							mdl->outputModelWithParams(simParams_[mid], path, bnglFilename, suffix, false, false, true, false, false);
						}
						else {
							// If we're using network free simulation, output .bngl
							if (swarm_->options.verbosity >= 3) {
								cout << " using network free simulation, output .bngl" << endl;
							}
							mdl->outputModelWithParams(simParams_[mid], path, bnglFilename, suffix, false, false, false, false, false);
						}
					}

					}
					++numCheckedMessages;

				}
			}

			smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(FIT_FINISHED);
			if (smhRange.first != smhRange.second) {

				if (swarm_->options.verbosity >= 3) {
					cout << "SubParticle " << subParID << ": Master told me to die" << endl;
				}
				if (swarm_->options.verbosity >= 3) {
					cout << "RAQUEL entering ~pheromones" << endl;
				}
				swarm_->swarmComm->~Pheromones();
				if (swarm_->options.verbosity >= 3) {
					cout << "RAQUEL exiting ~pheromones" << endl;
				}
				exit(0);
			}

			smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(NEW_BOOTSTRAP);
			if (smhRange.first != smhRange.second) {

				if (swarm_->options.verbosity >= 3) {
					cout << "SubParticle " << subParID << ": Starting a new bootstrapping run" << endl;
				}

				++swarm_->bootstrapCounter;
				currentGeneration_ = 1;

				swarm_->swarmComm->univMessageReceiver.clear();
				return true;
			}

			smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(BEGIN_NELDER_MEAD);
			if (smhRange.first != smhRange.second) {

				if (swarm_->options.verbosity >= 3) {
					cout << "Beginning Nelder-Mead local search" << endl;

					cout << "deserializing simplex" << endl;
				}
				std::stringstream iss;
				iss.str(smhRange.first->second.message[0]); // Simplex is serialized in the first indice of the message vector
				boost::archive::text_iarchive ia(iss);
				map<double, vector<double> > simplex;
				ia >> simplex;
				if (swarm_->options.verbosity >= 3) {
					cout << "running search" << endl;
				}
				runNelderMead(simplex, mid);
				if (swarm_->options.verbosity >= 3) {
					cout << "nelder mead finished. old calc: " << simplex.begin()->first << " new calc: " << fitCalcs.at(mid)[-1] << endl;
				}
				vector<string> paramsStr;
				paramsStr.push_back(toString(fitCalcs.at(mid)[-1]));
				for (auto p = simParams_.at(mid).begin(); p != simParams_.at(mid).end(); ++p) {
					paramsStr.push_back(toString(p->second));
					if (swarm_->options.verbosity >= 3) {
						cout << "new param: " << p->second << endl;
					}
				}
				swarm_->swarmComm->sendToSwarm(subParID, 0, SIMULATION_END, false, paramsStr);
				swarm_->swarmComm->univMessageReceiver.clear();

				return false;
			}

			smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(NEXT_GENERATION);
			if (smhRange.first != smhRange.second) {

				if (swarm_->options.verbosity >= 3) {
					cout  << "SubParticle " << subParID <<  ": Master told me to move to the next iteration" << endl;
				}

				swarm_->swarmComm->univMessageReceiver.clear();
				return true;
			}
		}
		swarm_->swarmComm->univMessageReceiver.clear();
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x960, %rsp            # imm = 0x960
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x858(%rbp)
movl -0x14(%rbp), %esi
callq 0xac1e0
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x14(%rbp)
jb 0xafb5a
movq -0x858(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, -0x85c(%rbp)
movq 0xa8(%rax), %rdi
callq 0x8dec0
movl %eax, %ecx
movl -0x85c(%rbp), %eax
cmpl %ecx, %eax
jae 0xafb5a
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0xb2a40
cmpq $0x0, %rax
je 0xafb5a
movq -0x858(%rbp), %rdi
addq $0x78, %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x45190
cmpq $0x0, (%rax)
jne 0xafdcb
movq -0x858(%rbp), %rax
movl 0x40(%rax), %esi
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x868(%rbp)
callq 0x17e460
movq -0x868(%rbp), %rdx
leaq 0x12bf0b(%rip), %rsi    # 0x1dba90
leaq -0xd8(%rbp), %rdi
callq 0x8e0f0
jmp 0xafb93
leaq 0x12b998(%rip), %rdx    # 0x1db532
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x441f0
jmp 0xafbaf
movl -0x14(%rbp), %esi
leaq -0x128(%rbp), %rdi
callq 0x17e460
jmp 0xafbc0
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x9c7d0
jmp 0xafbdc
leaq 0x12b3a1(%rip), %rdx    # 0x1daf84
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x441f0
jmp 0xafbf5
movl -0x18(%rbp), %esi
leaq -0x148(%rbp), %rdi
callq 0x17e460
jmp 0xafc06
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x148(%rbp), %rdx
callq 0x9c7d0
jmp 0xafc1c
leaq 0x12ba2a(%rip), %rdx    # 0x1db64d
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x441f0
jmp 0xafc32
leaq -0x38(%rbp), %rdi
callq 0x17e420
jmp 0xafc3d
leaq -0x38(%rbp), %rdi
callq 0x311e8
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
leaq -0xf8(%rbp), %rdi
callq 0x311e8
jmp 0xafdcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafdba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafdae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafda2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafd96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafd8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafd81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafd75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xafd6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x311e8
leaq -0x58(%rbp), %rdi
callq 0x311e8
leaq -0x148(%rbp), %rdi
callq 0x311e8
leaq -0x78(%rbp), %rdi
callq 0x311e8
leaq -0x98(%rbp), %rdi
callq 0x311e8
leaq -0x128(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
leaq -0xf8(%rbp), %rdi
callq 0x311e8
jmp 0xb14d5
movq -0x858(%rbp), %rdi
addq $0x78, %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0x45190
movq (%rax), %rax
movq %rax, -0x150(%rbp)
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xafe23
movq 0x225148(%rip), %rdi    # 0x2d4f50
leaq 0x12bcb4(%rip), %rsi    # 0x1dbac3
callq 0x2ff50
movq %rax, %rdi
movq 0x2251aa(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x858(%rbp), %rax
movl $0x0, -0x154(%rbp)
movq 0xa8(%rax), %rcx
movq (%rcx), %rdi
movl -0x18(%rbp), %edx
movq 0xa8(%rax), %rax
movq (%rax), %r9
addq $0x18, %r9
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
movl %ecx, %esi
movl $0x1, (%rsp)
movl $0xffffffff, 0x8(%rsp)  # imm = 0xFFFFFFFF
callq 0xcefc0
movl %eax, %ecx
movq -0x858(%rbp), %rax
movl %ecx, -0x158(%rbp)
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xafe91
jmp 0xafe91
leaq -0x168(%rbp), %rdi
callq 0xb3700
movl -0x154(%rbp), %eax
cmpl -0x158(%rbp), %eax
jge 0xb14a8
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x15, -0x17c(%rbp)
leaq -0x17c(%rbp), %rsi
callq 0xb3750
movq %rax, -0x178(%rbp)
movq %rdx, -0x170(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0xb3790
leaq -0x168(%rbp), %rdi
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
callq 0xb37c0
testb $0x1, %al
jne 0xaff1b
jmp 0xb0b75
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xaffac
movq 0x225017(%rip), %rdi    # 0x2d4f50
leaq 0x12bba5(%rip), %rsi    # 0x1dbae5
callq 0x2ff50
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x30640
movq %rax, %rdi
leaq 0x12bbb6(%rip), %rsi    # 0x1dbb10
callq 0x2ff50
movq -0x858(%rbp), %rdi
movq %rax, -0x870(%rbp)
callq 0xb32b0
movq -0x870(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, %rdi
leaq 0x12bb97(%rip), %rsi    # 0x1dbb22
callq 0x2ff50
movq %rax, %rdi
movl $0x15, %esi
callq 0x2f800
movq %rax, %rdi
movq 0x225021(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x168(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
leaq -0x188(%rbp), %rdi
callq 0xb37c0
testb $0x1, %al
jne 0xaffda
jmp 0xb0b73
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x4, 0x1614(%rax)
jb 0xb0045
movq 0x224f58(%rip), %rdi    # 0x2d4f50
leaq 0x12bb43(%rip), %rsi    # 0x1dbb42
callq 0x2ff50
movq %rax, -0x878(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
callq 0x44960
movq -0x878(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, %rdi
movq 0x224f88(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movl $0x0, -0x18c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
callq 0x44960
cmpq $0x0, %rax
jbe 0xb0b53
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb3870
movq %rax, %rdi
callq 0x9c670
movq %rax, -0x198(%rbp)
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb3870
movq %rax, %rdi
callq 0x966d0
movq %rax, -0x1a0(%rbp)
leaq -0x198(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x9c6a0
testb $0x1, %al
jne 0xb00d1
jmp 0xb01fa
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb018a
movq -0x858(%rbp), %rax
movl 0x40(%rax), %esi
movq 0x224e53(%rip), %rdi    # 0x2d4f50
callq 0x30640
movq %rax, %rdi
leaq 0x12b688(%rip), %rsi    # 0x1db794
callq 0x2ff50
movq %rax, -0x888(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x9c7b0
movq -0x888(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, %rdi
leaq 0x133747(%rip), %rsi    # 0x1e3884
callq 0x2ff50
movq %rax, -0x880(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
movslq -0x18c(%rbp), %rsi
callq 0x449e0
movq -0x880(%rbp), %rdi
movq %rax, %rsi
callq 0x2f780
movq %rax, %rdi
movq 0x224e43(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
leaq -0x188(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x8, %rdi
addq $0x28, %rdi
movslq -0x18c(%rbp), %rsi
callq 0x449e0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x44830
movsd %xmm0, -0x890(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x9c7b0
movsd -0x890(%rbp), %xmm0
movsd %xmm0, 0x20(%rax)
movl -0x18c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x97360
jmp 0xb0095
movl $0x1, -0x1a4(%rbp)
movq -0x858(%rbp), %rcx
movl -0x1a4(%rbp), %eax
movq 0xa8(%rcx), %rcx
cmpl 0x1658(%rcx), %eax
ja 0xb0b51
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rsi
movl -0x14(%rbp), %edx
leaq -0x268(%rbp), %rdi
movq %rdi, -0x898(%rbp)
xorl %ecx, %ecx
callq 0xec790
movq -0x898(%rbp), %rsi
leaq 0x12a40f(%rip), %rdx    # 0x1da667
leaq -0x248(%rbp), %rdi
callq 0x441f0
jmp 0xb0266
movq -0x858(%rbp), %rax
movl 0x40(%rax), %esi
leaq -0x288(%rbp), %rdi
callq 0x17e460
jmp 0xb027e
leaq -0x228(%rbp), %rdi
leaq -0x248(%rbp), %rsi
leaq -0x288(%rbp), %rdx
callq 0x9c7d0
jmp 0xb029a
leaq 0x12a3c6(%rip), %rdx    # 0x1da667
leaq -0x208(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x441f0
jmp 0xb02b6
movl -0x1a4(%rbp), %esi
leaq -0x2a8(%rbp), %rdi
callq 0x17e460
jmp 0xb02ca
leaq -0x1e8(%rbp), %rdi
leaq -0x208(%rbp), %rsi
leaq -0x2a8(%rbp), %rdx
callq 0x9c7d0
jmp 0xb02e6
leaq 0x12b891(%rip), %rdx    # 0x1dbb7e
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x441f0
jmp 0xb0302
leaq -0x1e8(%rbp), %rdi
callq 0x311e8
leaq -0x2a8(%rbp), %rdi
callq 0x311e8
leaq -0x208(%rbp), %rdi
callq 0x311e8
leaq -0x228(%rbp), %rdi
callq 0x311e8
leaq -0x288(%rbp), %rdi
callq 0x311e8
leaq -0x248(%rbp), %rdi
callq 0x311e8
leaq -0x268(%rbp), %rdi
callq 0x311e8
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rcx
addq $0x1520, %rcx           # imm = 0x1520
movq %rcx, -0x8a0(%rbp)
movl 0xb0(%rax), %esi
incl %esi
leaq -0x308(%rbp), %rdi
callq 0x17e460
jmp 0xb0388
movq -0x8a0(%rbp), %rsi
leaq -0x2e8(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0xb3380
jmp 0xb03a4
leaq 0x131fa8(%rip), %rdx    # 0x1e2353
leaq -0x2c8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x441f0
jmp 0xb03c0
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
leaq -0x328(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
leaq -0x1c8(%rbp), %rdx
callq 0x50f10
jmp 0xb03f4
movq -0x858(%rbp), %rax
movl 0x40(%rax), %esi
leaq -0x388(%rbp), %rdi
callq 0x17e460
jmp 0xb040c
leaq 0x12a254(%rip), %rdx    # 0x1da667
leaq -0x368(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x441f0
jmp 0xb0428
movl -0x1a4(%rbp), %esi
leaq -0x3a8(%rbp), %rdi
callq 0x17e460
jmp 0xb043c
leaq -0x348(%rbp), %rdi
leaq -0x368(%rbp), %rsi
leaq -0x3a8(%rbp), %rdx
callq 0x9c7d0
jmp 0xb0458
leaq -0x3a8(%rbp), %rdi
callq 0x311e8
leaq -0x368(%rbp), %rdi
callq 0x311e8
leaq -0x388(%rbp), %rdi
callq 0x311e8
leaq -0x3c8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x2f300
jmp 0xb0491
leaq -0x3c8(%rbp), %rdi
callq 0x17d410
movl %eax, -0x8a4(%rbp)
jmp 0xb04a5
movl -0x8a4(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x8a5(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
movb -0x8a5(%rbp), %al
testb $0x1, %al
jne 0xb04d4
jmp 0xb0740
leaq 0x12a2bc(%rip), %rsi    # 0x1da797
leaq -0x3e8(%rbp), %rdi
leaq -0x2c8(%rbp), %rdx
callq 0x44240
jmp 0xb04f0
leaq -0x3e8(%rbp), %rdi
callq 0x17e3f0
jmp 0xb04fe
leaq -0x3e8(%rbp), %rdi
callq 0x311e8
jmp 0xb0740
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb05ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x311e8
leaq -0x2a8(%rbp), %rdi
callq 0x311e8
leaq -0x208(%rbp), %rdi
callq 0x311e8
leaq -0x228(%rbp), %rdi
callq 0x311e8
leaq -0x288(%rbp), %rdi
callq 0x311e8
leaq -0x248(%rbp), %rdi
callq 0x311e8
leaq -0x268(%rbp), %rdi
callq 0x311e8
jmp 0xb14d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0b40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0641
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x311e8
leaq -0x308(%rbp), %rdi
callq 0x311e8
jmp 0xb0b40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0b34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0b28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb06d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb06c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x311e8
leaq -0x368(%rbp), %rdi
callq 0x311e8
leaq -0x388(%rbp), %rdi
callq 0x311e8
jmp 0xb0b28
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
jmp 0xb0b1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x3e8(%rbp), %rdi
callq 0x311e8
jmp 0xb0b1c
movq -0x150(%rbp), %rdi
callq 0x9cbc0
movb %al, -0x8a6(%rbp)
jmp 0xb0754
movb -0x8a6(%rbp), %al
testb $0x1, %al
jne 0xb0763
jmp 0xb091f
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb07ad
movq 0x2247cf(%rip), %rdi    # 0x2d4f50
leaq 0x12b3d4(%rip), %rsi    # 0x1dbb5c
callq 0x2ff50
movq %rax, -0x8b0(%rbp)
jmp 0xb0796
movq -0x8b0(%rbp), %rdi
movq 0x224824(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xb07ab
jmp 0xb07ad
movq -0x858(%rbp), %rdi
movq -0x150(%rbp), %rax
movq %rax, -0x8b8(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb3870
movq %rax, %rsi
leaq -0x418(%rbp), %rdi
callq 0x9c620
jmp 0xb07dd
leaq -0x438(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x2f300
jmp 0xb07f2
leaq -0x458(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x2f300
jmp 0xb0807
leaq -0x478(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2f300
jmp 0xb081c
movq -0x8b8(%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 0xb0867
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 0xb0ad8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb090e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0902
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb08f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%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 0xb0b1c
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0969
movq 0x224613(%rip), %rdi    # 0x2d4f50
leaq 0x12b240(%rip), %rsi    # 0x1dbb84
callq 0x2ff50
movq %rax, -0x8c0(%rbp)
jmp 0xb0952
movq -0x8c0(%rbp), %rdi
movq 0x224668(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xb0967
jmp 0xb0969
movq -0x858(%rbp), %rdi
movq -0x150(%rbp), %rax
movq %rax, -0x8c8(%rbp)
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb3870
movq %rax, %rsi
leaq -0x4a8(%rbp), %rdi
callq 0x9c620
jmp 0xb0999
leaq -0x4c8(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x2f300
jmp 0xb09ae
leaq -0x4e8(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x2f300
jmp 0xb09c3
leaq -0x508(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x2f300
jmp 0xb09d8
movq -0x8c8(%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 0xb0a23
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 0xb0ad8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0aca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0abe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb0ab2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%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 0xb0b1c
leaq -0x348(%rbp), %rdi
callq 0x311e8
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x1c8(%rbp), %rdi
callq 0x311e8
movl -0x1a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1a4(%rbp)
jmp 0xb0204
leaq -0x348(%rbp), %rdi
callq 0x311e8
leaq -0x328(%rbp), %rdi
callq 0x311e8
leaq -0x2c8(%rbp), %rdi
callq 0x311e8
leaq -0x1c8(%rbp), %rdi
callq 0x311e8
jmp 0xb14d5
jmp 0xb0b53
movl -0x154(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x154(%rbp)
leaq -0x188(%rbp), %rdi
callq 0xb37f0
jmp 0xaffba
jmp 0xb0b75
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x16, -0x51c(%rbp)
leaq -0x51c(%rbp), %rsi
callq 0xb3750
movq %rax, -0x518(%rbp)
movq %rdx, -0x510(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0xb3790
leaq -0x168(%rbp), %rdi
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
callq 0xb37c0
testb $0x1, %al
jne 0xb0be1
jmp 0xb0cc3
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0c34
movq 0x224351(%rip), %rdi    # 0x2d4f50
leaq 0x131e8b(%rip), %rsi    # 0x1e2a91
callq 0x2ff50
movq %rax, %rdi
movl -0x18(%rbp), %esi
callq 0x30640
movq %rax, %rdi
leaq 0x12af91(%rip), %rsi    # 0x1dbbb1
callq 0x2ff50
movq %rax, %rdi
movq 0x224399(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0c6d
movq 0x2242fe(%rip), %rdi    # 0x2d4f50
leaq 0x12ac6b(%rip), %rsi    # 0x1db8c4
callq 0x2ff50
movq %rax, %rdi
movq 0x224360(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
callq 0xccd00
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0cbc
movq 0x2242af(%rip), %rdi    # 0x2d4f50
leaq 0x12ac38(%rip), %rsi    # 0x1db8e0
callq 0x2ff50
movq %rax, %rdi
movq 0x224311(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
xorl %edi, %edi
callq 0x30200
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x19, -0x534(%rbp)
leaq -0x534(%rbp), %rsi
callq 0xb3750
movq %rax, -0x530(%rbp)
movq %rdx, -0x528(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0xb3790
leaq -0x168(%rbp), %rdi
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
callq 0xb37c0
testb $0x1, %al
jne 0xb0d2f
jmp 0xb0dc5
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0d82
movq 0x224203(%rip), %rdi    # 0x2d4f50
leaq 0x131d3d(%rip), %rsi    # 0x1e2a91
callq 0x2ff50
movq %rax, %rdi
movl -0x18(%rbp), %esi
callq 0x30640
movq %rax, %rdi
leaq 0x12ab8d(%rip), %rsi    # 0x1db8fb
callq 0x2ff50
movq %rax, %rdi
movq 0x22424b(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rcx
movl 0x13ec(%rcx), %edx
addl $0x1, %edx
movl %edx, 0x13ec(%rcx)
movl $0x1, 0xb0(%rax)
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
callq 0xb31c0
movb $0x1, -0x1(%rbp)
jmp 0xb14c7
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x1a, -0x54c(%rbp)
leaq -0x54c(%rbp), %rsi
callq 0xb3750
movq %rax, -0x548(%rbp)
movq %rdx, -0x540(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x548(%rbp), %rsi
callq 0xb3790
leaq -0x168(%rbp), %rdi
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
callq 0xb37c0
testb $0x1, %al
jne 0xb0e31
jmp 0xb13c7
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0e8c
movq 0x224101(%rip), %rdi    # 0x2d4f50
leaq 0x12ad73(%rip), %rsi    # 0x1dbbc9
callq 0x2ff50
movq %rax, %rdi
movq 0x224163(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq 0x2240df(%rip), %rdi    # 0x2d4f50
leaq 0x12ad74(%rip), %rsi    # 0x1dbbec
callq 0x2ff50
movq %rax, %rdi
movq 0x224141(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
leaq -0x6d8(%rbp), %rdi
movq %rdi, -0x8d0(%rbp)
callq 0x2f790
leaq -0x168(%rbp), %rdi
callq 0xb3190
movq %rax, %rdi
addq $0x30, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x449e0
movq -0x8d0(%rbp), %rdi
movq %rax, %rsi
callq 0x30140
jmp 0xb0ecc
leaq -0x758(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
xorl %edx, %edx
callq 0xb3890
jmp 0xb0ee3
leaq -0x788(%rbp), %rdi
movq %rdi, -0x8d8(%rbp)
callq 0xb3910
movq -0x8d8(%rbp), %rsi
leaq -0x758(%rbp), %rdi
callq 0xb3930
jmp 0xb0f0b
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb0f83
movq 0x224027(%rip), %rdi    # 0x2d4f50
leaq 0x12acd2(%rip), %rsi    # 0x1dbc02
callq 0x2ff50
movq %rax, -0x8e0(%rbp)
jmp 0xb0f3e
movq -0x8e0(%rbp), %rdi
movq 0x22407c(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xb0f53
jmp 0xb0f83
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb13b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb139e
leaq -0x7b8(%rbp), %rdi
leaq -0x788(%rbp), %rsi
callq 0xb3970
jmp 0xb0f98
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq -0x7b8(%rbp), %rsi
callq 0xa3e80
jmp 0xb0fb0
leaq -0x7b8(%rbp), %rdi
callq 0xb39a0
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb10e5
movq 0x223f72(%rip), %rdi    # 0x2d4f50
leaq 0x12ac2c(%rip), %rsi    # 0x1dbc11
callq 0x2ff50
movq %rax, -0x8e8(%rbp)
jmp 0xb0ff3
leaq -0x788(%rbp), %rdi
callq 0xb2b10
movq %rax, -0x7c0(%rbp)
leaq -0x7c0(%rbp), %rdi
callq 0xb2af0
movq -0x8e8(%rbp), %rdi
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0x8f0(%rbp)
jmp 0xb102b
movq -0x8f0(%rbp), %rdi
leaq 0x12abf9(%rip), %rsi    # 0x1dbc32
callq 0x2ff50
movq %rax, -0x8f8(%rbp)
jmp 0xb1047
movq -0x858(%rbp), %rdi
addq $0x18, %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb2f10
movq %rax, -0x900(%rbp)
jmp 0xb1065
movq -0x900(%rbp), %rdi
movl $0xffffffff, -0x7c4(%rbp) # imm = 0xFFFFFFFF
leaq -0x7c4(%rbp), %rsi
callq 0xb2f50
movq %rax, -0x908(%rbp)
jmp 0xb108b
movq -0x8f8(%rbp), %rdi
movq -0x908(%rbp), %rax
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0x910(%rbp)
jmp 0xb10ab
movq -0x910(%rbp), %rdi
movq 0x223f0f(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xb10c0
jmp 0xb10e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x7b8(%rbp), %rdi
callq 0xb39a0
jmp 0xb139e
leaq -0x7e0(%rbp), %rdi
callq 0x448b0
movq -0x858(%rbp), %rdi
addq $0x18, %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb2f10
movq %rax, -0x918(%rbp)
jmp 0xb110f
movq -0x918(%rbp), %rdi
movl $0xffffffff, -0x804(%rbp) # imm = 0xFFFFFFFF
leaq -0x804(%rbp), %rsi
callq 0xb2f50
movq %rax, -0x920(%rbp)
jmp 0xb1135
movq -0x920(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x800(%rbp), %rdi
callq 0x17e490
jmp 0xb114e
leaq -0x7e0(%rbp), %rdi
leaq -0x800(%rbp), %rsi
callq 0xb39c0
jmp 0xb1163
leaq -0x800(%rbp), %rdi
callq 0x311e8
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0x928(%rbp)
jmp 0xb1189
movq -0x928(%rbp), %rdi
callq 0x9c670
movq %rax, -0x810(%rbp)
movq -0x858(%rbp), %rdi
movl -0x14(%rbp), %eax
movl %eax, %esi
callq 0xb2a00
movq %rax, -0x930(%rbp)
jmp 0xb11b6
movq -0x930(%rbp), %rdi
callq 0x966d0
movq %rax, -0x818(%rbp)
leaq -0x810(%rbp), %rdi
leaq -0x818(%rbp), %rsi
callq 0x9c6a0
testb $0x1, %al
jne 0xb11e5
jmp 0xb1309
leaq -0x810(%rbp), %rdi
callq 0x9c7b0
movsd 0x20(%rax), %xmm0
leaq -0x838(%rbp), %rdi
callq 0x17e490
jmp 0xb1204
leaq -0x7e0(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0xb39c0
jmp 0xb1219
leaq -0x838(%rbp), %rdi
callq 0x311e8
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb12f6
movq 0x223d09(%rip), %rdi    # 0x2d4f50
leaq 0x12a9f0(%rip), %rsi    # 0x1dbc3e
callq 0x2ff50
movq %rax, -0x938(%rbp)
jmp 0xb125c
leaq -0x810(%rbp), %rdi
callq 0x9c7b0
movq -0x938(%rbp), %rdi
movsd 0x20(%rax), %xmm0
callq 0x30710
movq %rax, -0x940(%rbp)
jmp 0xb1282
movq -0x940(%rbp), %rdi
movq 0x223d38(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xb1297
jmp 0xb12f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0xb1392
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x800(%rbp), %rdi
callq 0x311e8
jmp 0xb1392
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x838(%rbp), %rdi
callq 0x311e8
jmp 0xb1392
jmp 0xb12f8
leaq -0x810(%rbp), %rdi
callq 0x97360
jmp 0xb119c
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
movl -0x18(%rbp), %esi
movq %rsp, %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movl $0xd, %ecx
xorl %r8d, %r8d
leaq -0x7e0(%rbp), %r9
movl %r8d, %edx
callq 0xcd520
jmp 0xb133f
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
callq 0xb31c0
movb $0x0, -0x1(%rbp)
leaq -0x7e0(%rbp), %rdi
callq 0x448d0
leaq -0x788(%rbp), %rdi
callq 0xb39a0
leaq -0x758(%rbp), %rdi
callq 0xb39f0
leaq -0x6d8(%rbp), %rdi
callq 0x2f940
jmp 0xb14c7
leaq -0x7e0(%rbp), %rdi
callq 0x448d0
leaq -0x788(%rbp), %rdi
callq 0xb39a0
leaq -0x758(%rbp), %rdi
callq 0xb39f0
leaq -0x6d8(%rbp), %rdi
callq 0x2f940
jmp 0xb14d5
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x12, -0x84c(%rbp)
leaq -0x84c(%rbp), %rsi
callq 0xb3750
movq %rax, -0x848(%rbp)
movq %rdx, -0x840(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x848(%rbp), %rsi
callq 0xb3790
leaq -0x168(%rbp), %rdi
leaq -0x168(%rbp), %rsi
addq $0x8, %rsi
callq 0xb37c0
testb $0x1, %al
jne 0xb1430
jmp 0xb14a3
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xb1483
movq 0x223b02(%rip), %rdi    # 0x2d4f50
leaq 0x13163c(%rip), %rsi    # 0x1e2a91
callq 0x2ff50
movq %rax, %rdi
movl -0x18(%rbp), %esi
callq 0x30640
movq %rax, %rdi
leaq 0x12a7db(%rip), %rsi    # 0x1dbc4a
callq 0x2ff50
movq %rax, %rdi
movq 0x223b4a(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
callq 0xb31c0
movb $0x1, -0x1(%rbp)
jmp 0xb14c7
jmp 0xafe9d
movq -0x858(%rbp), %rax
movq 0xa8(%rax), %rax
movq (%rax), %rdi
addq $0x18, %rdi
callq 0xb31c0
jmp 0xafdea
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x960, %rsp            # imm = 0x960
popq %rbp
retq
movq -0x100(%rbp), %rdi
callq 0x30170
nopw %cs:(%rax,%rax)