// File: /workspace/github_cpp_makefile_star2_O1/richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::launchSubParticle(unsigned int, unsigned int, bool)
void Swarm::launchSubParticle(unsigned int pID, unsigned int mid, bool nextGen) {

	//calculate new particle number
	unsigned int subParID = (pID - 1)* options.models.size()+ mid + 1;
	if (options.verbosity>= 3) {
		cout << "RAQUEL launchSUB suParID: " << subParID << endl;
	}
#ifdef TEST_SIMULATOR
//	if (subParID!=3){
//		cout<<"For test all subParticles are avoided except 3. Uncomment later.\n";
//		return;
//	}
#endif
	if (options.verbosity>= 1) {
		cout << "currentGeneration: " << currentGeneration << " options.useCluster: " << options.useCluster << " nextGen: " << nextGen << " bootstrapCounter: " << bootstrapCounter << endl;
	}
	if (currentGeneration == 1 && !options.useCluster && !nextGen && bootstrapCounter == 0) {

		// Construct command needed to run the particle
		//unsigned int mid = getParticleModelId(pID);

		string command = exePath_ + " -v -t particle -p " + toString(subParID) + " -a run -g " + toString(currentGeneration) + " -c " + sConf_[mid] + " -e " + expPaths_[mid][0];  //razi: consider more than 1 exp
		command = command + " -n " + toString(this->getNumModels());
command = command + " >> pOUT 2>&1";
		command = command + " &";

		//just for test, later uncomment
		if (options.verbosity >= 3) {
			cout << "Running SubParticle:"<<subParID<<"[" << pID <<"-"<< mid<<"] using command: "<< command << endl; //razi changed to show the command, was cout << "Running Particle " << pID <<endl;
		}

		if (runCommand(command) != 0) {
			cout << "Warning: Couldn't launch SubParticle:"<<subParID<<"[" << pID <<"-"<< mid<<"]  with command: " << command <<  endl;
			failedParticles_.insert(pID);
			failedSubParticles_.insert(subParID); //razi: add, later check consistency between the two lists
			return;
		}
	}
	if (options.verbosity >= 3) {
		cout << "Adding subparticle " << subParID << " to the list of running particles." << endl;
	}
	runningSubParticles_.insert(subParID); //razi: was //runningParticles_.insert(pID);
	//cout << "RAQUEL sending message to supar" << subParID << "message=NEXT_GEN" << endl;
	swarmComm->sendToSwarm(0, subParID, NEXT_GENERATION, false, swarmComm->univMessageSender);
	if (options.verbosity >= 3) cout << "Launching SubParticle:"<<subParID<<"[" << pID <<"-"<< mid<<"] finished, hence it is active now...\n\n";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movl %ecx, %ebp
movq %rdi, %rbx
movl %esi, 0x14(%rsp)
movl %edx, 0x10(%rsp)
decl %esi
movq 0x15c8(%rdi), %rax
subq 0x15c0(%rdi), %rax
shrq $0x3, %rax
imull %esi, %eax
addl %edx, %eax
incl %eax
movl %eax, 0xc(%rsp)
cmpl $0x3, 0x1614(%rdi)
jb 0x8c91b
movq 0xe96bf(%rip), %r14     # 0x175f90
leaq 0x729f8(%rip), %rsi     # 0xff2d0
movl $0x1a, %edx
movq %r14, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
cmpl $0x0, 0x1614(%rbx)
je 0x8c9e9
movq 0xe9661(%rip), %r14     # 0x175f90
leaq 0x729b5(%rip), %rsi     # 0xff2eb
movl $0x13, %edx
movq %r14, %rdi
callq 0x22ab0
movl 0x13e8(%rbx), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x729a4(%rip), %rsi     # 0xff2ff
movl $0x15, %edx
movq %rax, %rdi
callq 0x22ab0
movzbl 0x1631(%rbx), %esi
movq %r14, %rdi
callq 0x230e0
movq %rax, %r14
leaq 0x72994(%rip), %rsi     # 0xff315
movl $0xa, %edx
movq %rax, %rdi
callq 0x22ab0
movzbl %bpl, %esi
movq %r14, %rdi
callq 0x230e0
movq %rax, %r14
leaq 0x7297c(%rip), %rsi     # 0xff320
movl $0x13, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x13ec(%rbx), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
cmpl $0x1, 0x13e8(%rbx)
jne 0x8d342
cmpb $0x0, 0x1631(%rbx)
jne 0x8d342
testb %bpl, %bpl
jne 0x8d342
cmpl $0x0, 0x13ec(%rbx)
jne 0x8d342
leaq 0xe8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x17e0(%rbx), %rsi
movq 0x17e8(%rbx), %rdx
addq %rsi, %rdx
leaq 0xd8(%rsp), %r14
movq %r14, %rdi
callq 0x32180
leaq 0x728e6(%rip), %rsi     # 0xff334
movq %r14, %rdi
callq 0x233b0
movl 0xc(%rsp), %esi
leaq 0x138(%rsp), %rdi
callq 0xc03b8
movq 0xd8(%rsp), %rcx
movq 0xe0(%rsp), %r8
movq 0x140(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x8ca95
movq 0xe8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8caba
leaq 0x148(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8cab5
movq 0x148(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8cad1
movq 0x138(%rsp), %rsi
leaq 0xd8(%rsp), %rdi
callq 0x222b0
jmp 0x8cae2
leaq 0x138(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xa8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8cb0f
movq %rsi, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
jmp 0x8cb15
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xa0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x7280c(%rip), %rsi     # 0xff348
leaq 0x98(%rsp), %rdi
callq 0x233b0
leaq 0x108(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8cb79
movq %rdx, 0xf8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x108(%rsp)
jmp 0x8cb80
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x100(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x13e8(%rbx), %esi
leaq 0x118(%rsp), %rdi
callq 0xc03b8
movq 0xf8(%rsp), %rcx
movq 0x100(%rsp), %r8
movq 0x120(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r14, %rcx
je 0x8cbdc
movq 0x108(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8cc01
leaq 0x128(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8cbfc
movq 0x128(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8cc18
movq 0x118(%rsp), %rsi
leaq 0xf8(%rsp), %rdi
callq 0x222b0
jmp 0x8cc29
leaq 0x118(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xc8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8cc56
movq %rsi, 0xb8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc8(%rsp)
jmp 0x8cc5c
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xc0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x73537(%rip), %rsi     # 0x1001ba
leaq 0xb8(%rsp), %rdi
callq 0x233b0
leaq 0x88(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8ccbd
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
jmp 0x8ccc5
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x78(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x10(%rsp), %eax
movq 0x1938(%rbx), %rcx
shlq $0x5, %rax
movq (%rcx,%rax), %rsi
movq 0x8(%rcx,%rax), %rdx
callq 0x222b0
leaq 0x68(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8cd25
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
jmp 0x8cd2c
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x58(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x9555b(%rip), %rsi     # 0x1222aa
callq 0x233b0
leaq 0x28(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8cd7b
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x8cd82
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1908(%rbx), %rdi
leaq 0x10(%rsp), %rsi
callq 0x66dac
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x18(%rsp), %rdi
callq 0x222b0
leaq 0x48(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8cde6
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
jmp 0x8cdec
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x40(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8ce1b
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x8ce32
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x8ce4c
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ce6d
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ce8e
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rdi
cmpq %r14, %rdi
je 0x8ceab
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8cecc
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ceed
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xd8(%rsp), %rdi
cmpq %r12, %rdi
je 0x8cf0a
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x58(%rsp), %rdi
movq %r15, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0x32180
leaq 0x72429(%rip), %rsi     # 0xff354
leaq 0x58(%rsp), %rdi
callq 0x233b0
movq 0x15c8(%rbx), %rsi
subq 0x15c0(%rbx), %rsi
shrq $0x3, %rsi
leaq 0x78(%rsp), %rdi
callq 0xc03b8
movq 0x58(%rsp), %rcx
movq 0x60(%rsp), %r8
movq 0x80(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x8cf76
movq 0x68(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8cf94
movl $0xf, %esi
cmpq %r13, 0x78(%rsp)
je 0x8cf8f
movq 0x88(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8cfa5
movq 0x78(%rsp), %rsi
leaq 0x58(%rsp), %rdi
callq 0x222b0
jmp 0x8cfb3
leaq 0x78(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %rbp, 0x18(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8cfd3
movq %rdx, 0x18(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x28(%rsp)
jmp 0x8cfda
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x20(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %r14
movq %r14, %rsi
callq 0x22bb0
movq (%r14), %rdi
cmpq %rbp, %rdi
je 0x8d01e
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x8d038
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x8d04f
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x18(%rsp), %rdi
movq %rbp, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0x32180
leaq 0x722e9(%rip), %rsi     # 0xff359
leaq 0x18(%rsp), %rdi
callq 0x233b0
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %r14
movq %r14, %rsi
callq 0x22bb0
movq (%r14), %rdi
cmpq %rbp, %rdi
je 0x8d0a1
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x18(%rsp), %rdi
movq %rbp, (%rdi)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
callq 0x32180
leaq 0x6bb3c(%rip), %rsi     # 0xf8bfe
leaq 0x18(%rsp), %rdi
callq 0x233b0
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %r14
movq %r14, %rsi
callq 0x22bb0
movq (%r14), %rdi
cmpq %rbp, %rdi
je 0x8d0f3
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x3, 0x1614(%rbx)
jb 0x8d1c1
movq 0xe8e89(%rip), %rdi     # 0x175f90
leaq 0x72259(%rip), %rsi     # 0xff367
movl $0x14, %edx
callq 0x22ab0
movl 0xc(%rsp), %esi
movq 0xe8e6d(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %r14
leaq 0x72a66(%rip), %rsi     # 0xffb98
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x14(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x74545(%rip), %rsi     # 0x10169a
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x10(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x72204(%rip), %rsi     # 0xff37c
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq %r14, %rdi
callq 0x22ab0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x168(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0x158(%rsp), %rdi
callq 0x32180
leaq 0x158(%rsp), %rdi
callq 0xc038e
movl %eax, %ebp
movq 0x158(%rsp), %rdi
cmpq %r14, %rdi
je 0x8d213
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x229c0
testl %ebp, %ebp
je 0x8d326
movq 0xe8d6e(%rip), %rdi     # 0x175f90
leaq 0x72165(%rip), %rsi     # 0xff38e
movl $0x25, %edx
callq 0x22ab0
movl 0xc(%rsp), %esi
movq 0xe8d52(%rip), %rdi     # 0x175f90
callq 0x22650
movq %rax, %r14
leaq 0x7294b(%rip), %rsi     # 0xffb98
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x14(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x7442a(%rip), %rsi     # 0x10169a
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x10(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x72121(%rip), %rsi     # 0xff3b4
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq %r14, %rdi
callq 0x22ab0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x19d0(%rbx), %rdi
leaq 0x14(%rsp), %rsi
callq 0xb01ce
addq $0x1858, %rbx           # imm = 0x1858
leaq 0xc(%rsp), %rsi
movq %rbx, %rdi
callq 0xb01ce
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x8d471
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8d471
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x8d342
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x3, 0x1614(%rbx)
jb 0x8d3b0
movq 0xe8c3e(%rip), %r14     # 0x175f90
leaq 0x7206d(%rip), %rsi     # 0xff3c6
movl $0x13, %edx
movq %r14, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x7205e(%rip), %rsi     # 0xff3da
movl $0x22, %edx
movq %rax, %rdi
callq 0x22ab0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x22940
movsbl %al, %esi
movq %r14, %rdi
callq 0x22050
movq %rax, %rdi
callq 0x22660
leaq 0x1820(%rbx), %rdi
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0xb01ce
movq (%rbx), %rdi
movl (%r14), %edx
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
xorl %esi, %esi
movl $0x12, %ecx
xorl %r8d, %r8d
movq %rdi, %r9
callq 0x6bfb0
cmpl $0x3, 0x1614(%rbx)
jb 0x8d471
movq 0xe8b99(%rip), %rbx     # 0x175f90
leaq 0x71fff(%rip), %rsi     # 0xff3fd
movl $0x16, %edx
movq %rbx, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0x72777(%rip), %rsi     # 0xffb98
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x14(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0x74256(%rip), %rsi     # 0x10169a
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x10(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
leaq 0x71fb0(%rip), %rsi     # 0xff414
movl $0x27, %edx
movq %rax, %rdi
callq 0x22ab0
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x158(%rsp), %rdi
cmpq %r14, %rdi
je 0x8d64d
movq 0x168(%rsp), %rsi
jmp 0x8d4fc
jmp 0x8d4a8
jmp 0x8d64a
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8d64d
movq 0x28(%rsp), %rsi
jmp 0x8d4fc
jmp 0x8d64a
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x8d4e9
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8d4e9
jmp 0x8d4e6
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x8d64d
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8d64d
jmp 0x8d64a
movq %rax, %rbx
jmp 0x8d561
movq %rax, %rbx
jmp 0x8d578
movq %rax, %rbx
jmp 0x8d592
movq %rax, %rbx
jmp 0x8d5b3
movq %rax, %rbx
jmp 0x8d5d4
movq %rax, %rbx
jmp 0x8d5f1
movq %rax, %rbx
jmp 0x8d612
jmp 0x8d53f
movq %rax, %rbx
jmp 0x8d633
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8d561
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x8d578
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x78(%rsp), %rdi
cmpq %r13, %rdi
je 0x8d592
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8d5b3
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8d5d4
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rdi
cmpq %r14, %rdi
je 0x8d5f1
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8d612
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8d633
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xd8(%rsp), %rdi
cmpq %r12, %rdi
je 0x8d669
movq 0xe8(%rsp), %rsi
jmp 0x8d661
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0x8d669
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop