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

Model * mdl= models.at(mid);
	// Holds iterator ranges when finding items in the message holder
	pair <Pheromones::swarmMsgHolderIt, Pheromones::swarmMsgHolderIt> smhRange;
	if (swarm_->options.verbosity >= 3) {
		cout << "RAQUEL entering while from function that takes mid as input" << endl;
	}
	string path; //Raquel: declaring it outside the while loop

	while (1) {
		// Retrieve any messages
		int numCheckedMessages = 0;
		int numMessages = swarm_->swarmComm->recvMessage(-1, subParID, -1, true, swarm_->swarmComm->univMessageReceiver, true);
		if (swarm_->options.verbosity >= 4) {
			cout << "RAQUEL inside LOOP ITERATION in checkMessagesGenetic, numMessages = " << numMessages << " and numCheckedMessages = " << numCheckedMessages << endl;

			cout << "RAQUEL entering univMessageReceiver.equal_range(SEND_FINAL_PARAMS_TO_PARTICLE)" << endl;
		}
		smhRange = swarm_->swarmComm->univMessageReceiver.equal_range(SEND_FINAL_PARAMS_TO_PARTICLE);
		if (swarm_->options.verbosity >= 3) {
			cout << "RAQUEL passed univMessageReceiver.equal_range(SEND_FINAL_PARAMS_TO_PARTICLE)" << endl;
		}

		if (smhRange.first != smhRange.second) {
			//cout << id_ << " found final " << endl;
			for (Pheromones::swarmMsgHolderIt sm = smhRange.first; sm != smhRange.second; ++sm) {
				//Timer tmr;

				int messageIndex = 0;
				for (auto p = simParams_.at(mid).begin(); p != simParams_.at(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]);
					if (swarm_->options.verbosity >= 3) {
						cout << "updated param " << p->first << ": " << p->second << endl;
					}
					++messageIndex;
				}

				path = swarm_->options.jobOutputDir + toString(currentGeneration_ + 1) + "/";

				if (!checkIfFileExists(path)) {
					if (swarm_->options.verbosity >= 3) {
						cout << "trying to create path " << path << endl;
					}
					runCommand("mkdir " + path);
				}

				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 bnglFullPath = path + bnglFilename;
					string suffix = toString(id_) + "_" + toString(i);
					if (swarm_->options.verbosity >= 3) {
						cout << "RAQUEL CREATING BNGL: " << bnglFullPath << endl;
					}
					// And generate our models
					if (swarm_->options.models.at(mid)->getHasGenerateNetwork()){
						// If we're using ODE solver, output .net and .bngl
						mdl->outputModelWithParams(simParams_.at(mid), path, bnglFilename, suffix, false, false, true, false, false);
					}
					else {
						// If we're using network free simulation, output .bngl
						mdl->outputModelWithParams(simParams_.at(mid), path, bnglFilename, suffix, false, false, false, false, false);
					}
					if (swarm_->options.verbosity >= 3) {
						cout << "RAQUEL BNGL generated: " <<  bnglFullPath << " id_ " << toString(id_) << " i " << toString(i) << " subParID " << subParID << endl;
					}
				}
				if (swarm_->options.verbosity >= 3) {
				// Tell the master we have our new params and are ready for the next generation
					cout << id_ << " telling master we're finished " << endl;
				}
				swarm_->swarmComm->sendToSwarm(subParID, 0, DONE_BREEDING, false, swarm_->swarmComm->univMessageSender);

				//double t = tmr.elapsed();
				//cout << "SEND_FINAL_PARAMS took " << t << " seconds" << endl;
				++numCheckedMessages;
			}
		}

		if (swarm_->options.verbosity >= 3) {
			cout << "RAQUEL BEFORE IF numCheckedMessages >= numMessages" << endl;
		}

		if (numCheckedMessages >= numMessages) {
			swarm_->swarmComm->univMessageReceiver.clear();
			if (swarm_->options.verbosity >= 3) {
				cout << "RAQUEL INSIDE IF numCheckedMessages >= numMessages = " << numCheckedMessages << ":" << numMessages << endl;
			}
			continue;
			//return 0; //Raquel: added
		}
		if (swarm_->options.verbosity >= 3) {
			cout << "RAQUEL PASSED IF numCheckedMessages >= numMessages" << endl;
		}

		if (swarm_->swarmComm->univMessageReceiver.find(FIT_FINISHED) != swarm_->swarmComm->univMessageReceiver.end()) {
			if (swarm_->options.verbosity >= 3) {
				cout << "RAQUEL entering ~pheromones" << endl;
			}
			swarm_->swarmComm->~Pheromones();
			if (swarm_->options.verbosity >= 3) {
				cout << "RAQUEL exiting ~pheromones" << endl;
			}
			//return;
			exit(0);
		}

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

			++swarm_->bootstrapCounter;
			currentGeneration_ = 0;
			simParams_.at(mid).clear();
			generateParams();
			if (swarm_->options.verbosity >= 3) {
				cout << "RAQUEL INSIDE IF swarm_->swarmComm->univMessageReceiver.find(NEW_BOOTSTRAP)" << endl;
			}
			swarm_->swarmComm->univMessageReceiver.clear();
			return;
		}

		if (swarm_->swarmComm->univMessageReceiver.find(NEXT_GENERATION) != swarm_->swarmComm->univMessageReceiver.end()) {
			if (swarm_->options.verbosity >= 3) {
				cout << "RAQUEL INSIDE IF swarm_->swarmComm->univMessageReceiver.find(NEXT_GENERATION)" << endl;
			}
			return;
		}

		swarm_->swarmComm->univMessageReceiver.clear();
	}
	if (swarm_->options.verbosity >= 3) {
		cout << "RAQUEL existing while that takes mid as input" << endl;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2e8, %rsp            # imm = 0x2E8
movl %esi, %r8d
movq %rdi, %rbx
movl 0x40(%rdi), %esi
leal -0x1(%rsi), %eax
movq 0xa8(%rdi), %rcx
movq 0x15c8(%rcx), %rdx
subq 0x15c0(%rcx), %rdx
shrq $0x3, %rdx
imull %edx, %eax
addl %r8d, %eax
incl %eax
movl %eax, 0x60(%rsp)
movl %r8d, %r14d
movq %r8, 0x160(%rsp)
cmpl %r8d, %edx
movq %r14, 0xf0(%rsp)
jbe 0x5f0c6
movq 0x78(%rbx), %rax
movq 0x80(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r14, %rdx
jbe 0x60cb1
cmpq $0x0, (%rax,%r14,8)
jne 0x5f4f6
leaq 0x88(%rsp), %r15
movq %r15, %rdi
callq 0xc03b8
leaq 0x99cdd(%rip), %rcx     # 0xf8dba
movl $0x37, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5f116
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x5f11d
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x99b97(%rip), %rsi     # 0xf8cd7
callq 0x233b0
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5f16b
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x5f172
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xd0(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0xc03b8
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0xd8(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x5f1c3
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5f1e8
leaq 0xe0(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x5f1e3
movq 0xe0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5f1fa
movq 0xd0(%rsp), %rsi
movq %rsp, %rdi
callq 0x222b0
jmp 0x5f20b
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x30(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x5f22f
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x5f235
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x9952b(%rip), %rsi     # 0xf8784
leaq 0x20(%rsp), %rdi
callq 0x233b0
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5f28b
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x5f293
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x100(%rsp), %rdi
movl 0x60(%rsp), %esi
callq 0xc03b8
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x5f2e1
movq 0x78(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5f306
leaq 0x110(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x5f301
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5f31a
movq 0x100(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x222b0
jmp 0x5f32b
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xc0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x5f358
movq %rsi, 0xb0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc0(%rsp)
jmp 0x5f35e
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xb8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x99a6d(%rip), %rsi     # 0xf8df2
leaq 0xb0(%rsp), %rdi
callq 0x233b0
leaq 0x278(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5f3c2
movq %rdx, 0x268(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x278(%rsp)
jmp 0x5f3ca
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x268(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0xc0396
movq 0x268(%rsp), %rdi
cmpq %r13, %rdi
je 0x5f40b
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f42c
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f44d
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x5f464
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f47f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5f4a0
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x5f4b6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x5f4cd
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0xf0(%rsp), %r14
je 0x5f4f6
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rbx), %rax
movq 0x80(%rbx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r14, %rdx
jbe 0x60caf
movq (%rax,%r14,8), %rax
movq %rax, 0x158(%rsp)
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5f56f
movq 0x116a5c(%rip), %r15    # 0x175f90
leaq 0x998c6(%rip), %rsi     # 0xf8e01
movl $0x3b, %edx
movq %r15, %rdi
callq 0x22ab0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movl 0x60(%rsp), %eax
movq %rax, 0x120(%rsp)
movq 0xa8(%rbx), %rax
movq (%rax), %rdi
leaq 0x18(%rdi), %r9
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl 0x60(%rsp), %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl $0x1, %r8d
pushq $-0x1
pushq $0x1
callq 0x6da7e
addq $0x10, %rsp
movl %eax, 0xac(%rsp)
movq 0xa8(%rbx), %rax
cmpl $0x4, 0x1614(%rax)
jb 0x5f69c
movl $0x44, %edx
movq 0x1169a8(%rip), %rdi    # 0x175f90
leaq 0x9984e(%rip), %rsi     # 0xf8e3d
callq 0x22ab0
movq 0x116995(%rip), %rdi    # 0x175f90
movl 0xac(%rsp), %esi
callq 0x231e0
movq %rax, %r15
movl $0x1a, %edx
movq %rax, %rdi
leaq 0x99869(%rip), %rsi     # 0xf8e82
callq 0x22ab0
movq %r15, %rdi
xorl %esi, %esi
callq 0x231e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movl $0x4e, %edx
movq 0x116932(%rip), %rdi    # 0x175f90
leaq 0x99838(%rip), %rsi     # 0xf8e9d
callq 0x22ab0
movq 0x11691f(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x116901(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x15, 0x68(%rsp)
leaq 0x68(%rsp), %rsi
callq 0x696ce
movq %rax, 0xf8(%rsp)
movq %rdx, 0x150(%rsp)
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5f726
movl $0x4c, %edx
movq 0x1168a8(%rip), %rdi    # 0x175f90
leaq 0x997fd(%rip), %rsi     # 0xf8eec
callq 0x22ab0
movq 0x116895(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x116877(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x150(%rsp), %rax
cmpq %rax, 0xf8(%rsp)
je 0x60724
movl $0x0, 0x64(%rsp)
leaq 0x78(%rsp), %rbp
movq (%rbx), %rcx
movq 0x8(%rbx), %rdx
subq %rcx, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rsi # imm = 0xAAAAAAAAAAAAAAAB
imulq %rsi, %rdx
cmpq %r14, %rdx
jbe 0x60c15
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
imulq %rsi, %rdx
cmpq %r14, %rdx
jbe 0x60bec
leaq (%r14,%r14,2), %rdx
shlq $0x4, %rdx
movq %rdx, 0x128(%rsp)
movq 0x18(%rcx,%rdx), %r12
xorl %r15d, %r15d
movq 0x128(%rsp), %rcx
addq %rcx, %rax
addq $0x8, %rax
cmpq %rax, %r12
je 0x5f992
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5f863
movl 0x40(%rbx), %esi
movq 0x1167b9(%rip), %rdi    # 0x175f90
callq 0x22650
movq %rax, %r13
movl $0x14, %edx
movq %rax, %rdi
leaq 0x9974b(%rip), %rsi     # 0xf8f39
callq 0x22ab0
movq 0x20(%r12), %rsi
movq 0x28(%r12), %rdx
movq %r13, %rdi
callq 0x22ab0
movq %rax, %r13
movl $0x4, %edx
movq %rax, %rdi
leaq 0xa148e(%rip), %rsi     # 0x100ca5
callq 0x22ab0
movq 0xf8(%rsp), %rax
movq 0x38(%rax), %rax
movq (%rax,%r15), %rsi
movq 0x8(%rax,%r15), %rdx
movq %r13, %rdi
callq 0x22ab0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r13, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xf8(%rsp), %rax
movq 0x38(%rax), %rax
movq (%rax,%r15), %rbp
callq 0x22070
movq %rax, %r13
movl (%rax), %r14d
movl $0x0, (%rax)
movq %rbp, %rdi
leaq 0x68(%rsp), %rsi
callq 0x22760
cmpq %rbp, 0x68(%rsp)
je 0x60bfd
movl (%r13), %eax
testl %eax, %eax
je 0x5f8b3
cmpl $0x22, %eax
leaq 0x78(%rsp), %rbp
jne 0x5f8bc
jmp 0x60c09
movl %r14d, (%r13)
leaq 0x78(%rsp), %rbp
movsd %xmm0, 0x40(%r12)
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
movq 0xf0(%rsp), %r14
jb 0x5f959
movl $0xe, %edx
movq 0x1166a9(%rip), %rdi    # 0x175f90
leaq 0x99660(%rip), %rsi     # 0xf8f4e
callq 0x22ab0
movq 0x20(%r12), %rsi
movq 0x28(%r12), %rdx
movq 0x11668c(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %r13
movl $0x2, %edx
movq %rax, %rdi
leaq 0x92261(%rip), %rsi     # 0xf1b7c
callq 0x22ab0
movsd 0x40(%r12), %xmm0
movq %r13, %rdi
callq 0x23060
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r13, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq %r12, %rdi
callq 0x22670
movq %rax, %r12
movq (%rbx), %rax
movq 0x8(%rbx), %rdx
subq %rax, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
addq $0x20, %r15
cmpq %r14, %rdx
ja 0x5f7a1
jmp 0x60bec
movq 0xa8(%rbx), %r14
movl 0xb0(%rbx), %esi
incl %esi
movq %rsp, %r15
movq %r15, %rdi
callq 0xc03b8
movq 0x1520(%r14), %rcx
movq 0x1528(%r14), %r8
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5f9ee
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x5f9f4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0xf0(%rsp), %r14
movq 0x120(%rsp), %r15
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
leaq 0x9fdbf(%rip), %rsi     # 0xff7e7
callq 0x233b0
movq %rbp, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5fa50
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x5fa57
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xb0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x22bb0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x5fa98
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x5fab4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x5facf
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x1b8(%rsp), %rax
movq %rax, 0x1a8(%rsp)
movq 0xb0(%rsp), %rsi
movq 0xb8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1a8(%rsp), %rdi
callq 0x32180
leaq 0x1a8(%rsp), %rdi
callq 0xbf2c2
movl %eax, %r12d
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x5fb34
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x229c0
testl %r12d, %r12d
jne 0x5fbf9
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x5fbab
movl $0x16, %edx
movq 0x116437(%rip), %rdi    # 0x175f90
leaq 0x993fd(%rip), %rsi     # 0xf8f5d
callq 0x22ab0
movq 0xb0(%rsp), %rsi
movq 0xb8(%rsp), %rdx
movq 0x116414(%rip), %rdi    # 0x175f90
callq 0x22ab0
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
leaq 0x248(%rsp), %rdi
leaq 0x983dd(%rip), %rsi     # 0xf7f97
leaq 0xb0(%rsp), %rdx
callq 0x319d8
leaq 0x248(%rsp), %rdi
callq 0xc038e
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x5fbf9
movq 0x258(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xa8(%rbx), %rsi
cmpl $0x0, 0x1658(%rsi)
je 0x6067c
movl $0x1, %r12d
leaq 0xd0(%rsp), %r13
movq %r13, %rdi
movq 0x160(%rsp), %rdx
xorl %ecx, %ecx
callq 0x7a62c
movq %r13, %rdi
leaq 0x98230(%rip), %rsi     # 0xf7e67
callq 0x233b0
leaq 0x98(%rsp), %rsi
movq %rsi, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5fc70
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x5fc76
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x40(%rbx), %esi
leaq 0x100(%rsp), %rdi
callq 0xc03b8
movq 0x88(%rsp), %rcx
movl $0xf, %esi
leaq 0x98(%rsp), %rax
cmpq %rax, %rcx
je 0x5fcc3
movq 0x98(%rsp), %rsi
movq 0x90(%rsp), %r8
movq 0x108(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x5fd00
movl $0xf, %esi
leaq 0x110(%rsp), %rdi
cmpq %rdi, 0x100(%rsp)
je 0x5fcfb
movq 0x110(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5fd17
movq 0x100(%rsp), %rsi
leaq 0x88(%rsp), %rdi
callq 0x222b0
jmp 0x5fd28
leaq 0x100(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5fd4d
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x5fd53
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x40(%rsp), %rdi
leaq 0x980eb(%rip), %rsi     # 0xf7e67
callq 0x233b0
leaq 0x10(%rsp), %rsi
movq %rsi, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5fda7
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x5fdad
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x130(%rsp), %rdi
movl %r12d, %esi
callq 0xc03b8
movq (%rsp), %rcx
movl $0xf, %esi
leaq 0x10(%rsp), %rax
cmpq %rax, %rcx
je 0x5fded
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %r8
movq 0x138(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x5fe27
movl $0xf, %esi
leaq 0x140(%rsp), %rdi
cmpq %rdi, 0x130(%rsp)
je 0x5fe22
movq 0x140(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x5fe39
movq 0x130(%rsp), %rsi
movq %rsp, %rdi
callq 0x222b0
jmp 0x5fe4a
leaq 0x130(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x5fe6f
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x5fe75
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x20(%rsp), %rdi
leaq 0x99485(%rip), %rsi     # 0xf9323
callq 0x233b0
movq %rbp, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x5fec6
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x5fecd
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff01
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff26
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff41
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff5d
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x5ff82
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x5ffa7
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x5ffcc
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x20(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x33608
movl 0x40(%rbx), %esi
leaq 0x88(%rsp), %r13
movq %r13, %rdi
callq 0xc03b8
movq %r13, %rdi
leaq 0x97e67(%rip), %rsi     # 0xf7e67
callq 0x233b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x6002d
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x60033
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xd0(%rsp), %rdi
movl %r12d, %esi
callq 0xc03b8
movq 0x40(%rsp), %rcx
movl $0xf, %esi
leaq 0x50(%rsp), %rax
cmpq %rax, %rcx
je 0x60074
movq 0x50(%rsp), %rsi
movq 0x48(%rsp), %r8
movq 0xd8(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x600ae
movl $0xf, %esi
leaq 0xe0(%rsp), %rdi
cmpq %rdi, 0xd0(%rsp)
je 0x600a9
movq 0xe0(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x600c2
movq 0xd0(%rsp), %rsi
leaq 0x40(%rsp), %rdi
callq 0x222b0
jmp 0x600d3
leaq 0xd0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0x10(%rsp), %rsi
movq %rsi, (%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x600f6
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x600fc
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x6013e
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x6015a
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x6017f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x601e7
movl $0x16, %edx
movq 0x115df5(%rip), %rdi    # 0x175f90
leaq 0x98dd2(%rip), %rsi     # 0xf8f74
callq 0x22ab0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x115dd8(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r13, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %rcx
movq 0x15c0(%rcx), %rax
movq 0x15c8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq %r14, %rdx
jbe 0x60bdb
movq (%rax,%r14,8), %rax
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
subq %rsi, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpb $0x1, 0xb8(%rax)
jne 0x6037d
cmpq %r14, %rdx
jbe 0x60bdb
addq 0x128(%rsp), %rsi
leaq 0x2b8(%rsp), %rdi
callq 0x51a66
leaq 0x238(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0xb0(%rsp), %rsi
movq 0xb8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x228(%rsp), %rdi
callq 0x32180
leaq 0x198(%rsp), %rax
movq %rax, 0x188(%rsp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x188(%rsp), %rdi
callq 0x32180
leaq 0x218(%rsp), %rax
movq %rax, 0x208(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x208(%rsp), %r13
movq %r13, %rdi
callq 0x32180
movq 0x158(%rsp), %rdi
leaq 0x2b8(%rsp), %rsi
leaq 0x228(%rsp), %rdx
leaq 0x188(%rsp), %rcx
movq %r13, %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq %rax
pushq %rax
pushq $0x1
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x60338
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x6035d
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rcx
movq %rcx, %rax
leaq 0x2b8(%rsp), %r13
jmp 0x604bb
cmpq %r14, %rdx
jbe 0x60bdb
addq 0x128(%rsp), %rsi
leaq 0x288(%rsp), %rdi
callq 0x51a66
leaq 0x1f8(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movq 0xb0(%rsp), %rsi
movq 0xb8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1e8(%rsp), %rdi
callq 0x32180
leaq 0x178(%rsp), %rax
movq %rax, 0x168(%rsp)
movq 0x68(%rsp), %rsi
movq 0x70(%rsp), %rdx
addq %rsi, %rdx
leaq 0x168(%rsp), %rdi
callq 0x32180
leaq 0x1d8(%rsp), %rax
movq %rax, 0x1c8(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x1c8(%rsp), %r13
movq %r13, %rdi
callq 0x32180
movq 0x158(%rsp), %rdi
leaq 0x288(%rsp), %rsi
leaq 0x1e8(%rsp), %rdx
leaq 0x168(%rsp), %rcx
movq %r13, %r8
xorl %r9d, %r9d
xorl %eax, %eax
pushq %rax
pushq %rax
pushq %rax
pushq %rax
callq 0x4eede
addq $0x20, %rsp
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x6047b
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x604a0
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rcx
movq %rcx, %rax
leaq 0x288(%rsp), %r13
cmpq %rcx, %rdi
je 0x604cb
movq (%rax), %rsi
incq %rsi
callq 0x229c0
movq %r13, %rdi
callq 0x4a694
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x60617
movl $0x17, %edx
movq 0x115a9d(%rip), %rdi    # 0x175f90
leaq 0x98a91(%rip), %rsi     # 0xf8f8b
callq 0x22ab0
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq 0x115a80(%rip), %rdi    # 0x175f90
callq 0x22ab0
movq %rax, %r13
movl $0x5, %edx
movq %rax, %rdi
leaq 0x98a7c(%rip), %rsi     # 0xf8fa3
callq 0x22ab0
movl 0x40(%rbx), %esi
leaq 0x40(%rsp), %rdi
callq 0xc03b8
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r13, %rdi
callq 0x22ab0
movq %rax, %r13
movl $0x3, %edx
movq %rax, %rdi
leaq 0x98a4c(%rip), %rsi     # 0xf8fa9
callq 0x22ab0
leaq 0x88(%rsp), %rdi
movl %r12d, %esi
callq 0xc03b8
movq 0x88(%rsp), %rsi
movq 0x90(%rsp), %rdx
movq %r13, %rdi
callq 0x22ab0
movq %rax, %r13
movl $0xa, %edx
movq %rax, %rdi
leaq 0xc2302(%rip), %rsi     # 0x12289e
callq 0x22ab0
movq %r13, %rdi
movq %r15, %rsi
callq 0x22650
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r13, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x605fb
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x60617
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x60632
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x6064e
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x60665
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x229c0
incl %r12d
movq 0xa8(%rbx), %rsi
cmpl 0x1658(%rsi), %r12d
jbe 0x5fc13
cmpl $0x2, 0x1614(%rsi)
jbe 0x606d3
movl 0x40(%rbx), %esi
movq 0x115901(%rip), %rdi    # 0x175f90
callq 0x22650
movq %rax, %r12
movl $0x1f, %edx
movq %rax, %rdi
leaq 0x98907(%rip), %rsi     # 0xf8fad
callq 0x22ab0
movq (%r12), %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 0xa8(%rbx), %rax
movq (%rax), %rdi
subq $0x8, %rsp
movl 0x68(%rsp), %esi
xorl %edx, %edx
movl $0x11, %ecx
xorl %r8d, %r8d
movq %rdi, %r9
pushq $-0x1
callq 0x6bfb0
addq $0x10, %rsp
incl 0x64(%rsp)
movq 0xf8(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xf8(%rsp)
cmpq 0x150(%rsp), %rax
jne 0x5f749
jmp 0x6072c
movl $0x0, 0x64(%rsp)
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x60786
movl $0x32, %edx
movq 0x115848(%rip), %rdi    # 0x175f90
leaq 0x9887e(%rip), %rsi     # 0xf8fcd
callq 0x22ab0
movq 0x115835(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x115817(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %rax
movl 0x64(%rsp), %ecx
cmpl 0xac(%rsp), %ecx
jge 0x6086b
cmpl $0x3, 0x1614(%rax)
jb 0x607f1
movl $0x32, %edx
movq 0x1157dd(%rip), %rdi    # 0x175f90
leaq 0x9887c(%rip), %rsi     # 0xf9036
callq 0x22ab0
movq 0x1157ca(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x1157ac(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %r8
movq (%r8), %rdi
movq 0x18(%rdi), %r10
movq 0x20(%rdi), %r9
movl $0x16, %eax
xorl %edx, %edx
divq %r9
movq %rdx, %rcx
movl %ecx, %eax
movq (%r10,%rax,8), %rdx
movl $0x0, %eax
testq %rdx, %rdx
je 0x6090f
movq (%rdx), %r11
cmpl $0x16, 0x8(%r11)
movq %rdx, %rax
je 0x6090f
movq %r11, %r14
movq (%r11), %r11
testq %r11, %r11
je 0x6090d
movslq 0x8(%r11), %rsi
movq %rsi, %rax
xorl %edx, %edx
divq %r9
movl $0x0, %eax
cmpq %rcx, %rdx
jne 0x6090f
movq %r14, %rax
cmpl $0x16, %esi
jne 0x60835
jmp 0x6090f
movq (%rax), %rdi
addq $0x18, %rdi
callq 0x68e70
movq 0xa8(%rbx), %rax
movl $0x2, %ebp
cmpl $0x3, 0x1614(%rax)
jb 0x60b9a
movl $0x35, %edx
movq 0x1156f4(%rip), %rdi    # 0x175f90
leaq 0x9875d(%rip), %rsi     # 0xf9000
callq 0x22ab0
movq 0x1156e1(%rip), %rdi    # 0x175f90
movl 0x64(%rsp), %esi
callq 0x231e0
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
leaq 0x9dc96(%rip), %rsi     # 0xfe560
callq 0x22ab0
movq %r15, %rdi
movl 0xac(%rsp), %esi
callq 0x231e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
jmp 0x60b9a
xorl %eax, %eax
testq %rax, %rax
je 0x6091e
cmpq $0x0, (%rax)
jne 0x60c26
movl $0x19, %eax
xorl %edx, %edx
divq %r9
movq %rdx, %rcx
movl %ecx, %eax
movq (%r10,%rax,8), %rdx
movl $0x0, %eax
testq %rdx, %rdx
je 0x60975
movq (%rdx), %r11
cmpl $0x19, 0x8(%r11)
movq %rdx, %rax
je 0x60975
movq %r11, %r14
movq (%r11), %r11
testq %r11, %r11
je 0x60973
movslq 0x8(%r11), %rsi
movq %rsi, %rax
xorl %edx, %edx
divq %r9
movl $0x0, %eax
cmpq %rcx, %rdx
jne 0x60975
movq %r14, %rax
cmpl $0x19, %esi
jne 0x60948
jmp 0x60975
xorl %eax, %eax
testq %rax, %rax
je 0x60aca
cmpq $0x0, (%rax)
je 0x60aca
cmpl $0x3, 0x1614(%r8)
movq 0xf0(%rsp), %r14
jb 0x60a04
movl $0xc, %edx
movq 0x1155ea(%rip), %rdi    # 0x175f90
leaq 0x9f505(%rip), %rsi     # 0xffeb2
callq 0x22ab0
movq 0x1155d7(%rip), %rdi    # 0x175f90
movq 0x120(%rsp), %rsi
callq 0x22650
movq %rax, %r15
movl $0x22, %edx
movq %rax, %rdi
leaq 0x986c8(%rip), %rsi     # 0xf90a0
callq 0x22ab0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r15, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %rax
incl 0x13ec(%rax)
movl $0x0, 0xb0(%rbx)
movq (%rbx), %rdi
movq 0x8(%rbx), %rdx
subq %rdi, %rdx
sarq $0x4, %rdx
movabsq $-0x5555555555555555, %rax # imm = 0xAAAAAAAAAAAAAAAB
imulq %rax, %rdx
cmpq %r14, %rdx
jbe 0x60c9e
leaq (%r14,%r14,2), %rax
shlq $0x4, %rax
addq %rax, %rdi
callq 0x69716
movq %rbx, %rdi
callq 0x5436a
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x60ab2
movl $0x4b, %edx
movq 0x11551c(%rip), %rdi    # 0x175f90
leaq 0x98648(%rip), %rsi     # 0xf90c3
callq 0x22ab0
movq 0x115509(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x1154eb(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
movq 0xa8(%rbx), %rax
movq (%rax), %rdi
addq $0x18, %rdi
movl $0x1, %ebp
jmp 0x60b95
movl $0x12, %eax
xorl %edx, %edx
divq %r9
movq %rdx, %rcx
movl %ecx, %eax
movq (%r10,%rax,8), %rdx
movl $0x0, %eax
testq %rdx, %rdx
movq 0xf0(%rsp), %r14
je 0x60b29
movq (%rdx), %r10
cmpl $0x12, 0x8(%r10)
movq %rdx, %rax
je 0x60b29
movq %r10, %r11
movq (%r10), %r10
testq %r10, %r10
je 0x60b27
movslq 0x8(%r10), %rsi
movq %rsi, %rax
xorl %edx, %edx
divq %r9
movl $0x0, %eax
cmpq %rcx, %rdx
jne 0x60b29
movq %r11, %rax
cmpl $0x12, %esi
jne 0x60afc
jmp 0x60b29
xorl %eax, %eax
addq $0x18, %rdi
xorl %ebp, %ebp
testq %rax, %rax
je 0x60b95
cmpq $0x0, (%rax)
je 0x60b95
movl $0x1, %ebp
cmpl $0x3, 0x1614(%r8)
jb 0x60b9a
movl $0x4d, %edx
movq 0x11543b(%rip), %rdi    # 0x175f90
leaq 0x985b3(%rip), %rsi     # 0xf910f
callq 0x22ab0
movq 0x115428(%rip), %rcx    # 0x175f90
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq 0x11540a(%rip), %rdi    # 0x175f90
callq 0x22050
movq %rax, %rdi
callq 0x22660
jmp 0x60b9a
callq 0x68e70
testb $0x1, %bpl
je 0x5f592
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x60bc9
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
addq $0x2e8, %rsp            # imm = 0x2E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x92ae3(%rip), %rdi     # 0xf36c5
movq %r14, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x92ad2(%rip), %rdi     # 0xf36c5
movq %r14, %rsi
xorl %eax, %eax
callq 0x22f40
leaq 0x91b57(%rip), %rdi     # 0xf275b
callq 0x225a0
leaq 0x91b4b(%rip), %rdi     # 0xf275b
callq 0x22e40
leaq 0x92aa9(%rip), %rdi     # 0xf36c5
movq %r14, %rsi
xorl %eax, %eax
callq 0x22f40
cmpl $0x3, 0x1614(%r8)
jb 0x60c54
movq 0x115359(%rip), %rdi    # 0x175f90
leaq 0x9842b(%rip), %rsi     # 0xf9069
movl $0x1b, %edx
callq 0x22ab0
movq 0x115341(%rip), %rdi    # 0x175f90
callq 0x22430
movq 0xa8(%rbx), %rax
movq (%rax), %rdi
callq 0x6b7b4
movq 0xa8(%rbx), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x60c97
movq 0x115316(%rip), %rdi    # 0x175f90
leaq 0x98404(%rip), %rsi     # 0xf9085
movl $0x1a, %edx
callq 0x22ab0
movq 0x1152fe(%rip), %rdi    # 0x175f90
callq 0x22430
xorl %edi, %edi
callq 0x22b90
leaq 0x92a20(%rip), %rdi     # 0xf36c5
movq %r14, %rsi
xorl %eax, %eax
callq 0x22f40
jmp 0x60cb1
leaq 0x92a0d(%rip), %rdi     # 0xf36c5
movq %r14, %rsi
xorl %eax, %eax
callq 0x22f40
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %r13, %rdi
je 0x60ce7
movq 0x278(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60ce7
movq %rax, %rbx
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x60d0d
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60d0d
movq %rax, %rbx
leaq 0x110(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x60d33
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60d33
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x60d4f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60d4f
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x60d6f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60d6f
movq %rax, %rbx
leaq 0xe0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x60d95
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60d95
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x60db0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60db0
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x60dcc
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60dcc
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6125b
movq 0x98(%rsp), %rsi
jmp 0x61253
jmp 0x61233
jmp 0x61233
movq %rax, %rbx
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x61236
movq 0x258(%rsp), %rsi
jmp 0x61229
jmp 0x61233
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x60e78
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60e78
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
leaq 0x1b8(%rsp), %rax
cmpq %rax, %rdi
je 0x61236
movq 0x1b8(%rsp), %rsi
jmp 0x61229
jmp 0x61233
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x61236
movq 0x10(%rsp), %rsi
jmp 0x61229
jmp 0x61233
jmp 0x61233
jmp 0x60fd3
movq %rax, %rbx
jmp 0x60f36
movq %rax, %rbx
movq 0x208(%rsp), %rdi
leaq 0x218(%rsp), %rax
cmpq %rax, %rdi
je 0x60f72
movq 0x218(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60f72
movq %rax, %rbx
jmp 0x60f97
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
leaq 0x1d8(%rsp), %rax
cmpq %rax, %rdi
je 0x60f11
movq 0x1d8(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60f11
movq %rax, %rbx
movq 0x168(%rsp), %rdi
leaq 0x178(%rsp), %rax
cmpq %rax, %rdi
je 0x60f36
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x60f65
movq 0x1f8(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60f65
jmp 0x611e0
movq %rax, %rbx
leaq 0x288(%rsp), %rdi
jmp 0x60fc9
movq %rax, %rbx
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x60f97
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x60fc1
movq 0x238(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x60fc1
movq %rax, %rbx
leaq 0x2b8(%rsp), %rdi
callq 0x4a694
jmp 0x611e3
movq %rax, %rbx
jmp 0x611c2
movq %rax, %rbx
jmp 0x610ba
movq %rax, %rbx
jmp 0x61095
movq %rax, %rbx
jmp 0x61079
movq %rax, %rbx
jmp 0x610df
movq %rax, %rbx
jmp 0x6105e
jmp 0x61233
movq %rax, %rbx
jmp 0x61132
movq %rax, %rbx
jmp 0x61039
movq %rax, %rbx
jmp 0x611fe
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x61039
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0x6105e
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x229c0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x61079
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x61095
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x610ba
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x610df
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x61236
movq 0xe0(%rsp), %rsi
jmp 0x61229
movq %rax, %rbx
jmp 0x6114e
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
leaq 0xe0(%rsp), %rax
cmpq %rax, %rdi
je 0x61132
movq 0xe0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x6114e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x611fe
movq 0x98(%rsp), %rsi
jmp 0x611f6
movq %rax, %rbx
jmp 0x6121a
jmp 0x61233
jmp 0x611e0
movq %rax, %rbx
cmpl $0x0, (%r13)
jne 0x61236
movl %r14d, (%r13)
jmp 0x61236
movq %rax, %rbx
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x611c2
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x611e3
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x611e3
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x611fe
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x6121a
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x61236
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x61236
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
leaq 0xc0(%rsp), %rax
cmpq %rax, %rdi
je 0x6125b
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop