// File: richardposner[P]BioNetFit2/src/code/Swarm.cpp
// Function: Swarm::finishFit()
void Swarm::finishFit() {

	if (options.verbosity >=3) cout<<"Fitting finished. Summarizing the results.\n";
	string outputDir;
	if (options.bootstrap) {
		outputDir = options.outputDir + "/" + options.jobName + "_bootstrap/";

		if (!checkIfFileExists(outputDir)) {
			string command = "mkdir " + outputDir + " && cp " + configPath_ + " " + outputDir;

			int errorCounter = 0;
			while (runCommand(command) != 0 && errorCounter < 10) {
				//sleep(1);
				++errorCounter;
			}

			if (errorCounter > 10) {
				cout << "Error: Couldn't create directory: " + outputDir + " to contain final bootstrap results.";
				//outputBootstrapSummary();
			}
		}

		// Output to bootstrap file
		outputBootstrapSummary();

		// Output fit summary
		string outputFilePath = outputDir + toString(bootstrapCounter + 1) + "_all_fits.txt";
		outputRunSummary(outputFilePath);

		// Reset variables
		resetVariables();

		if ((bootstrapCounter + 1) < options.bootstrap) {
			cout << "Deleting last fitting run and beginning next fit.." << endl;

			string command = "cd " + options.jobOutputDir + " && find -mindepth 1 -maxdepth 1 -type d -exec rm -r {} \\;";
			runCommand(command);

			killAllParticles(NEW_BOOTSTRAP);
		}
		else {
			killAllParticles(FIT_FINISHED);
			exit(EXIT_SUCCESS);
		}
	}
	else {
		outputDir = options.jobOutputDir + "Results/";   //was outputDir = options.jobOutputDir + "Results/";
		string command = "mkdir " + outputDir + " && cp " + configPath_ + " " + outputDir;

		int errorCounter = 0;
		while (runCommand(command) != 0 && errorCounter < 10) {
			//sleep(1);
			++errorCounter;
		}

		if (errorCounter > 10) {
			cout << "Error: Couldn't create directory: " + outputDir + " to contain final fitting results. Outputting results to screen.";
			outputRunSummary();
		}

		string outputFilePath = outputDir + "all_fits.txt";
		outputRunSummary(outputFilePath);

		generateBestFitModel(outputDir);

		if(options.verbosity>=3){
			cout << "Killing all particles, sending FIT_FINISHED message" << endl;
		}
		killAllParticles(FIT_FINISHED);
		if(options.verbosity>=3){
			cout << "Done killing all particles." << endl;
		}
		cout << "Finished fitting in " << tmr_.elapsed() << " seconds. Results can be found in " << options.jobOutputDir << "Results" << endl;
	}
	//copyBestFitToResults(outputDir);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4b0, %rsp            # imm = 0x4B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x430(%rbp)
cmpl $0x3, 0x1614(%rax)
jb 0xf8cd6
movq 0x1dc286(%rip), %rdi    # 0x2d4f50
leaq 0xe964c(%rip), %rsi     # 0x1e231d
callq 0x2ff50
leaq -0x28(%rbp), %rdi
callq 0x2f880
movq -0x430(%rbp), %rax
cmpl $0x0, 0x1638(%rax)
je 0xf93f5
movq -0x430(%rbp), %rsi
addq $0x1500, %rsi           # imm = 0x1500
leaq 0xe964b(%rip), %rdx     # 0x1e2353
leaq -0x88(%rbp), %rdi
callq 0x447b0
jmp 0xf8d16
movq -0x430(%rbp), %rdx
addq $0x14c0, %rdx           # imm = 0x14C0
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x44760
jmp 0xf8d36
leaq 0xe960c(%rip), %rdx     # 0x1e2349
leaq -0x48(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x441f0
jmp 0xf8d4c
leaq -0x28(%rbp), %rdi
movq %rdi, -0x438(%rbp)
leaq -0x48(%rbp), %rsi
movq %rsi, -0x440(%rbp)
callq 0x2fd80
movq -0x440(%rbp), %rdi
callq 0x311e8
leaq -0x68(%rbp), %rdi
callq 0x311e8
leaq -0x88(%rbp), %rdi
callq 0x311e8
movq -0x438(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x2f300
jmp 0xf8d9d
leaq -0xb8(%rbp), %rdi
callq 0x17d410
movl %eax, -0x444(%rbp)
jmp 0xf8db1
movl -0x444(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0x445(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x311e8
movb -0x445(%rbp), %al
testb $0x1, %al
jne 0xf8de0
jmp 0xf9135
leaq 0xe19b0(%rip), %rsi     # 0x1da797
leaq -0x158(%rbp), %rdi
leaq -0x28(%rbp), %rdx
callq 0x44240
jmp 0xf8df9
leaq 0xe9555(%rip), %rdx     # 0x1e2355
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x441f0
jmp 0xf8e15
movq -0x430(%rbp), %rdx
addq $0x1800, %rdx           # imm = 0x1800
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x44760
jmp 0xf8e38
leaq 0xeb290(%rip), %rdx     # 0x1e40cf
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x441f0
jmp 0xf8e54
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x44760
jmp 0xf8e6d
leaq -0xf8(%rbp), %rdi
callq 0x311e8
leaq -0x118(%rbp), %rdi
callq 0x311e8
leaq -0x138(%rbp), %rdi
callq 0x311e8
leaq -0x158(%rbp), %rdi
callq 0x311e8
movl $0x0, -0x15c(%rbp)
leaq -0x180(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x2f300
jmp 0xf8ebc
leaq -0x180(%rbp), %rdi
callq 0x17e3f0
movl %eax, -0x44c(%rbp)
jmp 0xf8ed0
movl -0x44c(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x44d(%rbp)
je 0xf8ef3
cmpl $0xa, -0x15c(%rbp)
setl %al
movb %al, -0x44d(%rbp)
movb -0x44d(%rbp), %al
movb %al, -0x44e(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x311e8
movb -0x44e(%rbp), %al
testb $0x1, %al
jne 0xf8f1a
jmp 0xf9065
movl -0x15c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x15c(%rbp)
jmp 0xf8ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf8f74
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x311e8
leaq -0x88(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf901a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf900e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf9002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x311e8
leaq -0x118(%rbp), %rdi
callq 0x311e8
leaq -0x138(%rbp), %rdi
callq 0x311e8
leaq -0x158(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf9124
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x311e8
jmp 0xf9124
cmpl $0xa, -0x15c(%rbp)
jle 0xf9116
leaq 0xe92e4(%rip), %rsi     # 0x1e235d
leaq -0x1c0(%rbp), %rdi
leaq -0x28(%rbp), %rdx
callq 0x44240
jmp 0xf908b
leaq 0xe92ee(%rip), %rdx     # 0x1e2380
leaq -0x1a0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x441f0
jmp 0xf90a7
movq 0x1dbea2(%rip), %rdi    # 0x2d4f50
leaq -0x1a0(%rbp), %rsi
callq 0x2f780
jmp 0xf90bc
leaq -0x1a0(%rbp), %rdi
callq 0x311e8
leaq -0x1c0(%rbp), %rdi
callq 0x311e8
jmp 0xf9116
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf9108
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x311e8
leaq -0x1c0(%rbp), %rdi
callq 0x311e8
jmp 0xf9124
leaq -0xd8(%rbp), %rdi
callq 0x311e8
jmp 0xf9135
leaq -0xd8(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq -0x430(%rbp), %rdi
callq 0x105490
jmp 0xf9143
movq -0x430(%rbp), %rax
movl 0x13ec(%rax), %esi
incl %esi
leaq -0x220(%rbp), %rdi
callq 0x17e460
jmp 0xf9160
leaq -0x200(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x220(%rbp), %rdx
callq 0xb3380
jmp 0xf9179
leaq 0xe9225(%rip), %rdx     # 0x1e23a5
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x441f0
jmp 0xf9195
leaq -0x200(%rbp), %rdi
callq 0x311e8
leaq -0x220(%rbp), %rdi
callq 0x311e8
leaq -0x240(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x2f300
jmp 0xf91c2
movq -0x430(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x105530
jmp 0xf91d7
leaq -0x240(%rbp), %rdi
callq 0x311e8
movq -0x430(%rbp), %rdi
callq 0x1085e0
jmp 0xf91f1
movq -0x430(%rbp), %rcx
movl 0x13ec(%rcx), %eax
addl $0x1, %eax
cmpl 0x1638(%rcx), %eax
jae 0xf93b9
movq 0x1dbd3c(%rip), %rdi    # 0x2d4f50
leaq 0xe9198(%rip), %rsi     # 0x1e23b3
callq 0x2ff50
movq %rax, -0x458(%rbp)
jmp 0xf9229
movq -0x458(%rbp), %rdi
movq 0x1dbd91(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xf923e
movq -0x430(%rbp), %rdx
addq $0x1520, %rdx           # imm = 0x1520
leaq 0xe9193(%rip), %rsi     # 0x1e23e6
leaq -0x280(%rbp), %rdi
callq 0x44240
jmp 0xf9261
leaq 0xe9182(%rip), %rdx     # 0x1e23ea
leaq -0x260(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x441f0
jmp 0xf927d
leaq -0x280(%rbp), %rdi
callq 0x311e8
leaq -0x2a0(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x2f300
jmp 0xf929e
leaq -0x2a0(%rbp), %rdi
callq 0x17e3f0
jmp 0xf92ac
leaq -0x2a0(%rbp), %rdi
callq 0x311e8
movq -0x430(%rbp), %rdi
movl $0x19, %esi
callq 0x108620
jmp 0xf92cb
leaq -0x260(%rbp), %rdi
callq 0x311e8
jmp 0xf93d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf930e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x311e8
leaq -0x220(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf93e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x311e8
jmp 0xf93e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x311e8
jmp 0xf93e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf93ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x311e8
leaq -0x260(%rbp), %rdi
callq 0x311e8
jmp 0xf93e4
movq -0x430(%rbp), %rdi
movl $0x16, %esi
callq 0x108620
jmp 0xf93cc
xorl %edi, %edi
callq 0x30200
leaq -0x1e0(%rbp), %rdi
callq 0x311e8
jmp 0xf9988
leaq -0x1e0(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq -0x430(%rbp), %rsi
addq $0x1520, %rsi           # imm = 0x1520
leaq 0xe901b(%rip), %rdx     # 0x1e2425
leaq -0x2c0(%rbp), %rdi
callq 0x447b0
jmp 0xf9418
leaq -0x28(%rbp), %rdi
movq %rdi, -0x460(%rbp)
leaq -0x2c0(%rbp), %rsi
movq %rsi, -0x468(%rbp)
callq 0x2fd80
movq -0x468(%rbp), %rdi
callq 0x311e8
movq -0x460(%rbp), %rdx
leaq 0xe1347(%rip), %rsi     # 0x1da797
leaq -0x360(%rbp), %rdi
callq 0x44240
jmp 0xf945e
leaq 0xe8ef0(%rip), %rdx     # 0x1e2355
leaq -0x340(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x441f0
jmp 0xf947a
movq -0x430(%rbp), %rdx
addq $0x1800, %rdx           # imm = 0x1800
leaq -0x320(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x44760
jmp 0xf949d
leaq 0xeac2b(%rip), %rdx     # 0x1e40cf
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x441f0
jmp 0xf94b9
leaq -0x2e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
leaq -0x28(%rbp), %rdx
callq 0x44760
jmp 0xf94d2
leaq -0x300(%rbp), %rdi
callq 0x311e8
leaq -0x320(%rbp), %rdi
callq 0x311e8
leaq -0x340(%rbp), %rdi
callq 0x311e8
leaq -0x360(%rbp), %rdi
callq 0x311e8
movl $0x0, -0x364(%rbp)
leaq -0x388(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x2f300
jmp 0xf9521
leaq -0x388(%rbp), %rdi
callq 0x17e3f0
movl %eax, -0x46c(%rbp)
jmp 0xf9535
movl -0x46c(%rbp), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x46d(%rbp)
je 0xf9558
cmpl $0xa, -0x364(%rbp)
setl %al
movb %al, -0x46d(%rbp)
movb -0x46d(%rbp), %al
movb %al, -0x46e(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x311e8
movb -0x46e(%rbp), %al
testb $0x1, %al
jne 0xf957f
jmp 0xf9650
movl -0x364(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x364(%rbp)
jmp 0xf950c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf9605
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf95f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf95ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x300(%rbp), %rdi
callq 0x311e8
leaq -0x320(%rbp), %rdi
callq 0x311e8
leaq -0x340(%rbp), %rdi
callq 0x311e8
leaq -0x360(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf997a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x311e8
jmp 0xf997a
cmpl $0xa, -0x364(%rbp)
jle 0xf9712
leaq 0xe8cf9(%rip), %rsi     # 0x1e235d
leaq -0x3c8(%rbp), %rdi
leaq -0x28(%rbp), %rdx
callq 0x44240
jmp 0xf9676
leaq 0xe8db1(%rip), %rdx     # 0x1e242e
leaq -0x3a8(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x441f0
jmp 0xf9692
movq 0x1db8b7(%rip), %rdi    # 0x2d4f50
leaq -0x3a8(%rbp), %rsi
callq 0x2f780
jmp 0xf96a7
leaq -0x3a8(%rbp), %rdi
callq 0x311e8
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
movq -0x430(%rbp), %rdi
callq 0x108770
jmp 0xf96cd
jmp 0xf9712
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf9701
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x311e8
leaq -0x3c8(%rbp), %rdi
callq 0x311e8
jmp 0xf997a
leaq 0xe8c8d(%rip), %rdx     # 0x1e23a6
leaq -0x3e8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x447b0
jmp 0xf972b
leaq -0x408(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x2f300
jmp 0xf9740
movq -0x430(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x105530
jmp 0xf9755
leaq -0x408(%rbp), %rdi
callq 0x311e8
leaq -0x428(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x2f300
jmp 0xf9773
movq -0x430(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x108d10
jmp 0xf9788
leaq -0x428(%rbp), %rdi
callq 0x311e8
movq -0x430(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xf9838
movq 0x1db7a1(%rip), %rdi    # 0x2d4f50
leaq 0xe8cb9(%rip), %rsi     # 0x1e246f
callq 0x2ff50
movq %rax, -0x478(%rbp)
jmp 0xf97c4
movq -0x478(%rbp), %rdi
movq 0x1db7f6(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xf97d9
jmp 0xf9838
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
jmp 0xf996e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x311e8
jmp 0xf996e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x90(%rbp)
movl %eax, -0x94(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x311e8
jmp 0xf996e
movq -0x430(%rbp), %rdi
movl $0x16, %esi
callq 0x108620
jmp 0xf984b
movq -0x430(%rbp), %rax
cmpl $0x3, 0x1614(%rax)
jb 0xf988e
movq 0x1db6ee(%rip), %rdi    # 0x2d4f50
leaq 0xe8c3a(%rip), %rsi     # 0x1e24a3
callq 0x2ff50
movq %rax, -0x480(%rbp)
jmp 0xf9877
movq -0x480(%rbp), %rdi
movq 0x1db743(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xf988c
jmp 0xf988e
movq 0x1db6bb(%rip), %rdi    # 0x2d4f50
leaq 0xe8c23(%rip), %rsi     # 0x1e24bf
callq 0x2ff50
movq %rax, -0x488(%rbp)
jmp 0xf98aa
movq -0x430(%rbp), %rdi
addq $0x1db0, %rdi           # imm = 0x1DB0
callq 0x122d20
movsd %xmm0, -0x490(%rbp)
jmp 0xf98c7
movsd -0x490(%rbp), %xmm0
movq -0x488(%rbp), %rdi
callq 0x30710
movq %rax, -0x498(%rbp)
jmp 0xf98e4
movq -0x498(%rbp), %rdi
leaq 0xe8be2(%rip), %rsi     # 0x1e24d4
callq 0x2ff50
movq %rax, -0x4a0(%rbp)
jmp 0xf9900
movq -0x4a0(%rbp), %rdi
movq -0x430(%rbp), %rsi
addq $0x1520, %rsi           # imm = 0x1520
callq 0x2f780
movq %rax, -0x4a8(%rbp)
jmp 0xf9923
movq -0x4a8(%rbp), %rdi
leaq 0xe8bc6(%rip), %rsi     # 0x1e24f7
callq 0x2ff50
movq %rax, -0x4b0(%rbp)
jmp 0xf993f
movq -0x4b0(%rbp), %rdi
movq 0x1db67b(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0xf9954
leaq -0x3e8(%rbp), %rdi
callq 0x311e8
leaq -0x2e0(%rbp), %rdi
callq 0x311e8
jmp 0xf9988
leaq -0x3e8(%rbp), %rdi
callq 0x311e8
leaq -0x2e0(%rbp), %rdi
callq 0x311e8
jmp 0xf999a
leaq -0x28(%rbp), %rdi
callq 0x311e8
addq $0x4b0, %rsp            # imm = 0x4B0
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x311e8
movq -0x90(%rbp), %rdi
callq 0x30170
nop