// File: /workspace/github_cpp_makefile_star2_O3/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
movl %esi, %r14d
movq %rdi, %rbx
movl %esi, 0x94(%rsp)
movl %edx, 0xc(%rsp)
leal -0x1(%r14), %eax
movq 0x15c8(%rdi), %rcx
subq 0x15c0(%rdi), %rcx
shrq $0x3, %rcx
imull %eax, %ecx
leal (%rdx,%rcx), %r12d
incl %r12d
movl %r12d, 0x8(%rsp)
movl 0x1614(%rdi), %eax
cmpl $0x3, %eax
jb 0x8bffe
movq 0xe9ff9(%rip), %r15     # 0x175fa8
leaq 0x7338a(%rip), %rsi     # 0xff340
movl $0x1a, %edx
movq %r15, %rdi
callq 0x22ab0
movl %r12d, %esi
movq %r15, %rdi
callq 0x22650
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 0x1614(%rbx), %eax
testl %eax, %eax
je 0x8c0c7
movq 0xe9f9b(%rip), %r15     # 0x175fa8
leaq 0x73347(%rip), %rsi     # 0xff35b
movl $0x13, %edx
movq %r15, %rdi
callq 0x22ab0
movl 0x13e8(%rbx), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
leaq 0x73336(%rip), %rsi     # 0xff36f
movl $0x15, %edx
movq %rax, %rdi
callq 0x22ab0
movzbl 0x1631(%rbx), %esi
movq %r15, %rdi
callq 0x230e0
movq %rax, %r15
leaq 0x73326(%rip), %rsi     # 0xff385
movl $0xa, %edx
movq %rax, %rdi
callq 0x22ab0
movzbl %bpl, %esi
movq %r15, %rdi
callq 0x230e0
movq %rax, %r15
leaq 0x7330e(%rip), %rsi     # 0xff390
movl $0x13, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0x13ec(%rbx), %esi
movq %r15, %rdi
callq 0x22650
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
cmpl $0x1, 0x13e8(%rbx)
jne 0x8ca2d
cmpb $0x0, 0x1631(%rbx)
jne 0x8ca2d
testb %bpl, %bpl
jne 0x8ca2d
cmpl $0x0, 0x13ec(%rbx)
jne 0x8ca2d
leaq 0xa8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x17e0(%rbx), %rsi
movq 0x17e8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %r15
movq %r15, %rdi
callq 0x3213c
leaq 0x73278(%rip), %rsi     # 0xff3a4
movq %r15, %rdi
callq 0x233b0
movl 0x8(%rsp), %esi
leaq 0x138(%rsp), %rdi
callq 0xbfa49
movq 0x98(%rsp), %rcx
movq 0xa0(%rsp), %r8
movq 0x140(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x8c173
movq 0xa8(%rsp), %rdi
movq 0x138(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x8c19f
leaq 0x148(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x8c19a
movq 0x148(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x8c1ae
leaq 0x98(%rsp), %rdi
callq 0x222b0
jmp 0x8c1bf
leaq 0x138(%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 0x8c1ec
movq %rsi, 0xb8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xc8(%rsp)
jmp 0x8c1f2
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 0x7319f(%rip), %rsi     # 0xff3b8
leaq 0xb8(%rsp), %rdi
callq 0x233b0
leaq 0x108(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8c256
movq %rdx, 0xf8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x108(%rsp)
jmp 0x8c25d
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
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 0xbfa49
movq 0xf8(%rsp), %rcx
movq 0x100(%rsp), %r8
movq 0x120(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %rbp, %rcx
je 0x8c2b9
movq 0x108(%rsp), %rdi
movq 0x118(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x8c2e5
leaq 0x128(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x8c2e0
movq 0x128(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x8c2f4
leaq 0xf8(%rsp), %rdi
callq 0x222b0
jmp 0x8c305
leaq 0x118(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
leaq 0xe8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8c332
movq %rsi, 0xd8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xe8(%rsp)
jmp 0x8c338
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0xe0(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x73e42(%rip), %rsi     # 0x1001a1
leaq 0xd8(%rsp), %rdi
callq 0x233b0
leaq 0x80(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8c39c
movq %rsi, %r15
movq %rdx, 0x70(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x80(%rsp)
jmp 0x8c3a5
movups (%rcx), %xmm0
movq %rsi, %r15
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x70(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0xc(%rsp), %eax
movq 0x1938(%rbx), %rcx
shlq $0x5, %rax
movq (%rcx,%rax), %rsi
movq 0x8(%rcx,%rax), %rdx
callq 0x222b0
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8c405
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0x8c40d
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x50(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x95e5a(%rip), %rsi     # 0x12228a
callq 0x233b0
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8c45d
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x8c465
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x1908(%rbx), %rdi
leaq 0xc(%rsp), %rsi
callq 0x668de
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x10(%rsp), %rdi
callq 0x222b0
leaq 0x40(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8c4c9
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
jmp 0x8c4cf
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x38(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x8c4fe
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x8c515
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x8c52f
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8c550
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8c571
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8c58e
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq %r15, %rbp
je 0x8c5b2
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8c5d3
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x8c5f8
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x50(%rsp), %rdi
movq %r13, (%rdi)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
callq 0x3213c
leaq 0x72dab(%rip), %rsi     # 0xff3c4
leaq 0x50(%rsp), %rdi
callq 0x233b0
movq 0x15c8(%rbx), %rsi
subq 0x15c0(%rbx), %rsi
shrq $0x3, %rsi
leaq 0x70(%rsp), %rdi
callq 0xbfa49
movq 0x50(%rsp), %rcx
movq 0x58(%rsp), %r8
movq 0x78(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r13, %rcx
je 0x8c661
movq 0x60(%rsp), %rdi
movq 0x70(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x8c682
movl $0xf, %edi
cmpq %rbp, %rsi
je 0x8c67d
movq 0x80(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x8c68e
leaq 0x50(%rsp), %rdi
callq 0x222b0
jmp 0x8c69c
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x22a80
movq %r12, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x8c6bc
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0x8c6c4
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x22bb0
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x8c708
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8c722
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x8c739
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
callq 0x3213c
leaq 0x72c6f(%rip), %rsi     # 0xff3c9
leaq 0x10(%rsp), %rdi
callq 0x233b0
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x22bb0
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x8c78b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x10(%rsp), %rdi
movq %r12, (%rdi)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
callq 0x3213c
leaq 0x6c432(%rip), %rsi     # 0xf8bde
leaq 0x10(%rsp), %rdi
callq 0x233b0
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %r15
movq %r15, %rsi
callq 0x22bb0
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x8c7dd
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x3, 0x1614(%rbx)
jb 0x8c8aa
movq 0xe97b7(%rip), %rdi     # 0x175fa8
leaq 0x72bdf(%rip), %rsi     # 0xff3d7
movl $0x14, %edx
callq 0x22ab0
movl 0x8(%rsp), %esi
movq 0xe979b(%rip), %rdi     # 0x175fa8
callq 0x22650
movq %rax, %r15
leaq 0x73363(%rip), %rsi     # 0xffb7f
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl %r14d, %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
leaq 0x74e43(%rip), %rsi     # 0x101681
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
leaq 0x72b8b(%rip), %rsi     # 0xff3ec
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq %r15, %rdi
callq 0x22ab0
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
leaq 0x168(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
addq %rsi, %rdx
leaq 0x158(%rsp), %rdi
callq 0x3213c
leaq 0x158(%rsp), %rdi
callq 0xbfa1f
movl %eax, %ebp
movq 0x158(%rsp), %rdi
cmpq %r15, %rdi
je 0x8c8fc
movq 0x168(%rsp), %rsi
incq %rsi
callq 0x229c0
testl %ebp, %ebp
je 0x8ca11
movq 0xe969d(%rip), %rdi     # 0x175fa8
leaq 0x72aec(%rip), %rsi     # 0xff3fe
movl $0x25, %edx
callq 0x22ab0
movl 0x8(%rsp), %esi
movq 0xe9681(%rip), %rdi     # 0x175fa8
callq 0x22650
movq %rax, %r15
leaq 0x73249(%rip), %rsi     # 0xffb7f
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl %r14d, %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x74d29(%rip), %rsi     # 0x101681
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %r14, %rdi
callq 0x22650
movq %rax, %r14
leaq 0x72aa9(%rip), %rsi     # 0xff424
movl $0x11, %edx
movq %rax, %rdi
callq 0x22ab0
movq 0x30(%rsp), %rsi
movq 0x38(%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 0x94(%rsp), %rsi
callq 0xaf99c
addq $0x1858, %rbx           # imm = 0x1858
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xaf99c
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8cb5b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8cb5b
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8ca2d
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
cmpl $0x3, 0x1614(%rbx)
jb 0x8ca9b
movq 0xe956b(%rip), %r15     # 0x175fa8
leaq 0x729f2(%rip), %rsi     # 0xff436
movl $0x13, %edx
movq %r15, %rdi
callq 0x22ab0
movl 0x8(%rsp), %esi
movq %r15, %rdi
callq 0x22650
movq %rax, %r15
leaq 0x729e3(%rip), %rsi     # 0xff44a
movl $0x22, %edx
movq %rax, %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 0x1820(%rbx), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
callq 0xaf99c
movq (%rbx), %rdi
movl (%r15), %edx
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
xorl %esi, %esi
movl $0x12, %ecx
xorl %r8d, %r8d
movq %rdi, %r9
callq 0x6bac2
cmpl $0x3, 0x1614(%rbx)
jb 0x8cb5b
movq 0xe94c6(%rip), %rbx     # 0x175fa8
leaq 0x72984(%rip), %rsi     # 0xff46d
movl $0x16, %edx
movq %rbx, %rdi
callq 0x22ab0
movl 0x8(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0x73073(%rip), %rsi     # 0xffb7f
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl %r14d, %esi
movq %rbx, %rdi
callq 0x22650
movq %rax, %rbx
leaq 0x74b53(%rip), %rsi     # 0x101681
movl $0x1, %edx
movq %rax, %rdi
callq 0x22ab0
movl 0xc(%rsp), %esi
movq %rbx, %rdi
callq 0x22650
leaq 0x72936(%rip), %rsi     # 0xff484
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 %r15, %rdi
je 0x8cd59
movq 0x168(%rsp), %rsi
jmp 0x8cbe6
jmp 0x8cb92
jmp 0x8cd56
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x8cd59
movq 0x20(%rsp), %rsi
jmp 0x8cbe6
jmp 0x8cd56
movq %rax, %rbx
movq 0x70(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8cbd3
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8cbd3
jmp 0x8cbd0
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x8cd59
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
jmp 0x8cd59
jmp 0x8cd56
movq %rax, %rbx
jmp 0x8cc65
movq %rax, %rbx
jmp 0x8cc7c
movq %rax, %rbx
jmp 0x8cc96
movq %rax, %rbx
jmp 0x8ccb7
movq %rax, %rbx
jmp 0x8ccd8
movq %rax, %rbx
jmp 0x8ccf5
movq %rax, %rbx
jmp 0x8cd16
movq %rax, %rbx
jmp 0x8cd37
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r12, %rdi
jne 0x8cd4c
jmp 0x8cd75
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x8cc65
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x8cc7c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x70(%rsp), %rdi
cmpq %r15, %rdi
je 0x8cc96
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ccb7
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ccd8
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0xf8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x8ccf5
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8cd16
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x229c0
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8cd37
movq 0x148(%rsp), %rsi
incq %rsi
callq 0x229c0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x8cd75
movq 0xa8(%rsp), %rsi
jmp 0x8cd6d
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x8cd75
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x229c0
movq %rbx, %rdi
callq 0x23240
nop