// File: richardposner[P]BioNetFit2/src/code/Model.cpp
// Function: Model::outputModelWithParams(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, double>>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, bool, bool, bool, bool)
void Model::outputModelWithParams(map<string, double> params, string path, string filename, string suffix, bool stopAtNetGen=false, bool onlyActions=false, bool netAndBngl=false, bool usePipe=false, bool isNetFile=false) {
	if (swarm_->options.verbosity >= 3) {
//		cout << "RAQUEL outputmodel path " << path << " filename: " << filename << endl;
	}
	//Raquel added this check step to make sure that the simulation path really exists
	if (!checkIfFileExists(path)) {
		runCommand("mkdir " + path);
	}


	if (netAndBngl) {
		// First output the .bngl file (containing only action commands)
		outputModelWithParams(params, path, filename, suffix, false, true, false, false, false);
		filename = boost::regex_replace(filename, boost::regex("bngl$"), string("net"));
		// Then output the .net file
		outputModelWithParams(params, path, filename, "", false, false, false, false, true);

		return;
	}

	// Erase file if it already exists
	string fullPath = path + filename;
	if (checkIfFileExists(fullPath)) {
		unlink(fullPath.c_str());
	}

	if (!usePipe) {
		unlink(fullPath.c_str());
		if (swarm_->options.verbosity >= 3) {
			cout << "RAQUEL outputmodel inside !usepipe " << filename  << endl;
		}
		ofstream outFile;
		outFile.open(fullPath);
		if (swarm_->options.verbosity >= 3) {
			cout << "RAQUEL outputmodel fullPath is: " << fullPath << endl;
		}
		boost::smatch matches;

		if (outFile.is_open()) {
			if (isNetFile) {
				bool inParameterBlock = true;
				int numParamsToReplace = params.size();
				int numReplacedParams = 0;
				if (swarm_->options.verbosity >= 3) {
					cout << "Raquel param size is: " << params.size() << endl;
				}
				for (auto line = netContents_.begin(); line != netContents_.end(); ++line) {
					if (*line == "end parameters" || numReplacedParams == numParamsToReplace) {
						inParameterBlock = false;
					}
					else if (inParameterBlock) {
						// Replace free param with generated param
						//double tt = 0;
						//for (auto p : params) { // TODO: Is there a faster way to do this than loop through params over and over? It's still too slow.
						for (map<string, double>::iterator p = params.begin(); p != params.end(); ++p) {
							//cout << "p is " << p.first << endl;
							//Timer tmr;
							if(boost::regex_match(*line, matches, boost::regex("\\s+\\d+\\s+(\\w+)\\s+(.+)\\s+"))) {
								//double t = tmr.elapsed();
								//cout << "Match took " << t << " seconds" << endl;
								//tt += t;
								if (matches[1] == p->first) {
									string match = p->first + "\\s+.+";
									string replacement = p->first + " " + toString(abs(p->second)) + "\n";
									*line = boost::regex_replace(*line, boost::regex(match), replacement);
									numReplacedParams++;
								}
							}
						}
						//cout << "matches took " << tt << " seconds" << endl;
					}
					outFile << *line;
				}
			}
			else {
				if (onlyActions) {
					filename = boost::regex_replace(filename, boost::regex("bngl$"), string("net"));
					string line = "readFile({file=>\"" + path + filename + "\"})\n";
					outFile << line;
				}

				for (auto line = fullContents_.begin(); line != fullContents_.end(); ++line) {
					if (onlyActions) {
						string actionLine = *line;
						if (boost::regex_search(*line, boost::regex("^\\s*simulate|^\\s*simulate_nf|^\\s*simulate_ode|^\\s*simulate_ssa|^\\s*simulate_pla|^\\s*parameter_scan|^\\s*setConcentration|^\\s*addConcentration|^\\s*saveConcentration|^\\s*resetConcentrations|^\\s*setParameter|^\\s*saveParameters|^\\s*resetParameters|^\\s*quit|^\\s*substanceUnits|^\\s*version|^\\s*setOption"))) {
							if (!suffix.empty()) {
								string suffixLine = ",suffix=>\"" + suffix + "\"})";
								actionLine = boost::regex_replace(actionLine, boost::regex("\\}\\)"), suffixLine);
							}
						}
						else {
							continue;
						}
						actionLine = actionLine + "\n";
						outFile << actionLine;
					}
					else {
						string newLine = *line;
						//Raquel fixing problem that would remove space after closing parenthesis, making the rules from example 4 not work
						string fixedLine = boost::regex_replace(newLine, boost::regex("\\)\\w"), string(") \\w"));
						newLine = fixedLine;

						bool inParameterBlock = true;
						int numReplacedParams = 0;
						int numParamsToReplace = params.size();
						// Skip line if it's empty or if it is a comment
						if (boost::regex_match(*line, boost::regex("^\\s*$")) || boost::regex_match(*line, boost::regex("^#"))) {
							continue;
						}
						// TODO: Next line is never working. Same as above for .net file?
						if (*line == "end parameters" || numReplacedParams == numParamsToReplace) {
							inParameterBlock = false;
							//cout << "out of parameter block" << endl;
						}
						if (swarm_->options.verbosity >= 9) {

							cout << *line << endl;
							cout << numReplacedParams << " " << numParamsToReplace << endl;
						}
						if (inParameterBlock) {
							// Replace free param with generated param
							if (swarm_->options.verbosity >= 9) {

								cout << "in parameter block" << endl;

							}
							if (boost::regex_search(*line, matches, boost::regex("(\\s+|=\\s*)(\\w+)__FREE__"))) {
								// Older version of C++ don't support double overload to toString, so we have to cast to long double
								if (swarm_->options.verbosity >= 9) {

									cout << "found a FP: " << matches[2] << endl;
									cout << "OPTIONS USED:" << stopAtNetGen << "," << onlyActions << "," << netAndBngl << "," << usePipe << "," << isNetFile << endl;
								}
								newLine = boost::regex_replace(*line, boost::regex("(\\w+)__FREE__"), toString(params[matches[2]]));

								if (swarm_->options.verbosity >= 9) {

									cout << "replacing with: " << params[matches[2]] << endl;
								}
								++numReplacedParams;
							}else if(boost::regex_search(*line, matches, boost::regex("\\w+__FREE__"))){
								if (swarm_->options.verbosity >= 3) {

									cout << "found a FP2: " << matches[2] << endl;
								}
								newLine = boost::regex_replace(*line, boost::regex("\\w+__FREE__"), toString(params[matches[2]]));
								if (swarm_->options.verbosity >= 3) {

									cout << "replacing with: " << params[matches[2]] << endl;
								}
							}
						}else{
							if (swarm_->options.verbosity >= 3) {

								cout << "out of parmeter block" << endl;
							}
						}
						// Add in the unique suffix
						if (!suffix.empty()) {
							if (boost::regex_search(*line, boost::regex("^\\s*simulate|^\\s*simulate_nf|^\\s*simulate_ode|^\\s*simulate_ssa|^\\s*simulate_pla|^\\s*parameter_scan"))) {
								string suffixLine = ",suffix=>\"" + suffix + "\"})";
								newLine = boost::regex_replace(*line, boost::regex("\\}\\)"), suffixLine);
								newLine = newLine + "\n";
							}
						}
						//Raquel fixed problem that made resetConcentrations and simulate commands not be separated into different lines
						char ch = newLine.back();
						if(ch!='\n'){
							newLine = newLine + "\n";
						}

						outFile << newLine;
						if (stopAtNetGen) {
							if (boost::regex_search(*line,matches,boost::regex("^generate_network"))) {
								break;
							}
						}
					}
				}
			}
			outFile.close();
		}
		else {
			swarm_->outputError("Couldn't open file '" + fullPath + "' for output");
		}
	}
	else {
		const char * fifo = path.c_str();

		int fifo_status = mkfifo(fifo, 0666);
		if (fifo_status) {
			swarm_->outputError("Couldn't create pipe '" + path + "' for output");
		}

		int fd = open(fifo, O_RDONLY);
		if (fd < 0) {
			cout << "Couldn't open " << fifo << endl;
		}

		//for (auto line : fullContents_) {
		for (vector<string>::iterator line = fullContents_.begin(); line != fullContents_.end(); ++line) {
			write(fd,line->c_str(),line->size());
		}
		close(fd);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0xe18, %rsp            # imm = 0xE18
movl %r9d, %eax
movq %r8, -0xb28(%rbp)
movq %rcx, %r9
movq %r9, -0xb20(%rbp)
movq %rdx, %r10
movq %r10, -0xb18(%rbp)
movq %rsi, %r11
movq %r11, -0xb10(%rbp)
movq %rdi, %rbx
movb %al, %dil
movb 0x28(%rbp), %al
movb 0x20(%rbp), %cl
movb 0x18(%rbp), %dl
movb 0x10(%rbp), %sil
movq %rbx, -0x10(%rbp)
movq %r11, -0x18(%rbp)
movq %r10, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movq %r8, -0x30(%rbp)
andb $0x1, %dil
movb %dil, -0x31(%rbp)
andb $0x1, %sil
movb %sil, -0x32(%rbp)
andb $0x1, %dl
movb %dl, -0x33(%rbp)
andb $0x1, %cl
movb %cl, -0x34(%rbp)
andb $0x1, %al
movb %al, -0x35(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xb08(%rbp)
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x99c26
jmp 0x99c26
movq -0xb18(%rbp), %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0xb38(%rbp)
callq 0x2f300
movq -0xb38(%rbp), %rdi
callq 0x17d410
movl %eax, -0xb2c(%rbp)
jmp 0x99c51
movl -0xb2c(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
movb %al, -0xb39(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x311e8
movb -0xb39(%rbp), %al
testb $0x1, %al
jne 0x99c7a
jmp 0x99cee
movq -0xb18(%rbp), %rdx
leaq 0x140b0f(%rip), %rsi    # 0x1da797
leaq -0x88(%rbp), %rdi
movq %rdi, -0xb48(%rbp)
callq 0x44240
movq -0xb48(%rbp), %rdi
callq 0x17e3f0
jmp 0x99ca9
leaq -0x88(%rbp), %rdi
callq 0x311e8
jmp 0x99cee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x311e8
jmp 0x9bfbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x311e8
jmp 0x9bfbf
testb $0x1, -0x33(%rbp)
je 0x9a096
movq -0xb10(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x9c620
movq -0xb18(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x2f300
jmp 0x99d20
movq -0xb20(%rbp), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x2f300
jmp 0x99d35
movq -0xb28(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x2f300
jmp 0x99d4a
movq -0xb08(%rbp), %rdi
movq %rsp, %rax
movl $0x0, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x1, (%rax)
leaq -0xb8(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0xf8(%rbp), %rcx
leaq -0x118(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0x99d95
leaq -0x118(%rbp), %rdi
callq 0x311e8
leaq -0xf8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x8de70
leaq 0x1409d2(%rip), %rsi    # 0x1da79e
leaq -0x148(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
leaq -0x169(%rbp), %rdi
movq %rdi, -0xb50(%rbp)
callq 0x30a70
movq -0xb50(%rbp), %rdx
leaq 0x1414a6(%rip), %rsi    # 0x1db2a1
leaq -0x168(%rbp), %rdi
callq 0x44470
jmp 0x99e09
movq -0xb20(%rbp), %rsi
leaq -0x138(%rbp), %rdi
leaq -0x148(%rbp), %rdx
leaq -0x168(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x99e2f
movq -0xb20(%rbp), %rdi
leaq -0x138(%rbp), %rsi
movq %rsi, -0xb58(%rbp)
callq 0x2fd80
movq -0xb58(%rbp), %rdi
callq 0x311e8
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0x169(%rbp), %rdi
callq 0x311c0
leaq -0x148(%rbp), %rdi
callq 0x441d0
movq -0xb10(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0x9c620
movq -0xb18(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0x2f300
jmp 0x99ea1
movq -0xb20(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
callq 0x2f300
jmp 0x99eb6
leaq -0x201(%rbp), %rdi
movq %rdi, -0xb60(%rbp)
callq 0x30a70
movq -0xb60(%rbp), %rdx
leaq 0x13f629(%rip), %rsi    # 0x1d9500
leaq -0x200(%rbp), %rdi
callq 0x44470
jmp 0x99ee5
movq -0xb08(%rbp), %rdi
movq %rsp, %rax
movl $0x1, 0x18(%rax)
movl $0x0, 0x10(%rax)
movl $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x1a0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
leaq -0x200(%rbp), %r8
xorl %r9d, %r9d
callq 0x99b90
jmp 0x99f30
leaq -0x200(%rbp), %rdi
callq 0x311e8
leaq -0x201(%rbp), %rdi
callq 0x311c0
leaq -0x1e0(%rbp), %rdi
callq 0x311e8
leaq -0x1c0(%rbp), %rdi
callq 0x311e8
leaq -0x1a0(%rbp), %rdi
callq 0x8de70
jmp 0x9bfa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x99fcb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x99fbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x99fb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x311e8
leaq -0xf8(%rbp), %rdi
callq 0x311e8
leaq -0xd8(%rbp), %rdi
callq 0x311e8
leaq -0xb8(%rbp), %rdi
callq 0x8de70
jmp 0x9bfbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x311e8
leaq -0x169(%rbp), %rdi
callq 0x311c0
leaq -0x148(%rbp), %rdi
callq 0x441d0
jmp 0x9bfbf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a085
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a079
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a061
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x311e8
leaq -0x201(%rbp), %rdi
callq 0x311c0
leaq -0x1e0(%rbp), %rdi
callq 0x311e8
leaq -0x1c0(%rbp), %rdi
callq 0x311e8
leaq -0x1a0(%rbp), %rdi
callq 0x8de70
jmp 0x9bfbf
movq -0xb20(%rbp), %rdx
movq -0xb18(%rbp), %rsi
leaq -0x228(%rbp), %rdi
movq %rdi, -0xb68(%rbp)
callq 0x50f10
movq -0xb68(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x2f300
jmp 0x9a0cc
leaq -0x248(%rbp), %rdi
callq 0x17d410
movl %eax, -0xb6c(%rbp)
jmp 0x9a0e0
leaq -0x248(%rbp), %rdi
callq 0x311e8
movl -0xb6c(%rbp), %eax
cmpl $0x0, %eax
je 0x9a13b
leaq -0x228(%rbp), %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x2f600
jmp 0x9a13b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bfb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x311e8
jmp 0x9bfb3
testb $0x1, -0x34(%rbp)
jne 0x9bd71
leaq -0x228(%rbp), %rdi
callq 0x2f290
movq %rax, %rdi
callq 0x2f600
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9a1bc
movq 0x23addc(%rip), %rdi    # 0x2d4f50
leaq 0x140629(%rip), %rsi    # 0x1da7a4
callq 0x2ff50
movq %rax, -0xb78(%rbp)
jmp 0x9a189
movq -0xb20(%rbp), %rsi
movq -0xb78(%rbp), %rdi
callq 0x2f780
movq %rax, -0xb80(%rbp)
jmp 0x9a1a5
movq -0xb80(%rbp), %rdi
movq 0x23ae15(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9a1ba
jmp 0x9a1bc
leaq -0x448(%rbp), %rdi
callq 0x2f5a0
jmp 0x9a1ca
leaq -0x448(%rbp), %rdi
leaq -0x228(%rbp), %rsi
movl $0x10, %edx
callq 0x301a0
jmp 0x9a1e4
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9a258
movq 0x23ad51(%rip), %rdi    # 0x2d4f50
leaq 0x1405c2(%rip), %rsi    # 0x1da7c8
callq 0x2ff50
movq %rax, -0xb88(%rbp)
jmp 0x9a214
movq -0xb88(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x2f780
movq %rax, -0xb90(%rbp)
jmp 0x9a230
movq -0xb90(%rbp), %rdi
movq 0x23ad8a(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9a245
jmp 0x9a258
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bd60
leaq -0x499(%rbp), %rdi
movq %rdi, -0xb98(%rbp)
callq 0x43db0
movq -0xb98(%rbp), %rsi
leaq -0x498(%rbp), %rdi
callq 0x43dd0
jmp 0x9a280
leaq -0x499(%rbp), %rdi
callq 0x43e60
leaq -0x448(%rbp), %rdi
callq 0x30530
movb %al, -0xb99(%rbp)
jmp 0x9a2a0
movb -0xb99(%rbp), %al
testb $0x1, %al
jne 0x9a2af
jmp 0x9bc8a
testb $0x1, -0x35(%rbp)
je 0x9a7ea
movq -0xb10(%rbp), %rdi
movb $0x1, -0x49a(%rbp)
callq 0x9c650
movq %rax, %rcx
movq -0xb08(%rbp), %rax
movl %ecx, -0x4a0(%rbp)
movl $0x0, -0x4a4(%rbp)
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9a37c
movq 0x23ac52(%rip), %rdi    # 0x2d4f50
leaq 0x1404e4(%rip), %rsi    # 0x1da7e9
callq 0x2ff50
movq %rax, -0xba8(%rbp)
jmp 0x9a313
movq -0xb10(%rbp), %rdi
callq 0x9c650
movq -0xba8(%rbp), %rdi
movq %rax, %rsi
callq 0x30cf0
movq %rax, -0xbb0(%rbp)
jmp 0x9a337
movq -0xbb0(%rbp), %rdi
movq 0x23ac83(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9a34c
jmp 0x9a37c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x499(%rbp), %rdi
callq 0x43e60
jmp 0x9bd60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bd54
movq -0xb08(%rbp), %rdi
addq $0xa0, %rdi
callq 0x458f0
movq %rax, -0x4b0(%rbp)
movq -0xb08(%rbp), %rdi
addq $0xa0, %rdi
callq 0x45920
movq %rax, -0x4b8(%rbp)
leaq -0x4b0(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x45860
testb $0x1, %al
jne 0x9a3cc
jmp 0x9a7e5
leaq -0x4b0(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
leaq 0x14041e(%rip), %rsi    # 0x1da800
callq 0x44930
movb %al, -0xbb1(%rbp)
jmp 0x9a3ef
movb -0xbb1(%rbp), %al
testb $0x1, %al
jne 0x9a409
jmp 0x9a3fb
movl -0x4a4(%rbp), %eax
cmpl -0x4a0(%rbp), %eax
jne 0x9a415
movb $0x0, -0x49a(%rbp)
jmp 0x9a7b5
testb $0x1, -0x49a(%rbp)
je 0x9a7b3
movq -0xb10(%rbp), %rdi
callq 0x9c670
movq %rax, -0x4c0(%rbp)
movq -0xb10(%rbp), %rdi
callq 0x966d0
movq %rax, -0x4c8(%rbp)
leaq -0x4c0(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x9c6a0
testb $0x1, %al
jne 0x9a464
jmp 0x9a7b1
leaq -0x4b0(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xbc0(%rbp)
leaq 0x140391(%rip), %rsi    # 0x1da80f
leaq -0x4d8(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9a48e
movq -0xbc0(%rbp), %rdi
leaq -0x498(%rbp), %rsi
leaq -0x4d8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x9c6d0
movb %al, -0xbc1(%rbp)
jmp 0x9a4b2
leaq -0x4d8(%rbp), %rdi
callq 0x441d0
movb -0xbc1(%rbp), %al
testb $0x1, %al
jne 0x9a4cd
jmp 0x9a79e
leaq -0x498(%rbp), %rdi
movl $0x1, %esi
callq 0x43fe0
movq %rax, -0xbd0(%rbp)
jmp 0x9a4e7
leaq -0x4c0(%rbp), %rdi
callq 0x9c7b0
movq -0xbd0(%rbp), %rdi
movq %rax, %rsi
callq 0x9c730
movb %al, -0xbd1(%rbp)
jmp 0x9a50a
movb -0xbd1(%rbp), %al
testb $0x1, %al
jne 0x9a519
jmp 0x9a79c
leaq -0x4c0(%rbp), %rdi
callq 0x9c7b0
movq %rax, %rsi
leaq 0x1402f9(%rip), %rdx    # 0x1da828
leaq -0x4f8(%rbp), %rdi
callq 0x447b0
jmp 0x9a53d
leaq -0x4c0(%rbp), %rdi
callq 0x9c7b0
movq %rax, %rsi
leaq 0x149b7c(%rip), %rdx    # 0x1e40cf
leaq -0x558(%rbp), %rdi
callq 0x447b0
jmp 0x9a561
leaq -0x4c0(%rbp), %rdi
callq 0x9c7b0
movsd 0x20(%rax), %xmm0
callq 0x9c8a0
movsd %xmm0, -0xbe0(%rbp)
jmp 0x9a581
movsd -0xbe0(%rbp), %xmm0
leaq -0x578(%rbp), %rdi
callq 0x17e490
jmp 0x9a597
leaq -0x538(%rbp), %rdi
leaq -0x558(%rbp), %rsi
leaq -0x578(%rbp), %rdx
callq 0x9c7d0
jmp 0x9a5b3
leaq 0x140df5(%rip), %rdx    # 0x1db3af
leaq -0x518(%rbp), %rdi
leaq -0x538(%rbp), %rsi
callq 0x441f0
jmp 0x9a5cf
leaq -0x538(%rbp), %rdi
callq 0x311e8
leaq -0x578(%rbp), %rdi
callq 0x311e8
leaq -0x558(%rbp), %rdi
callq 0x311e8
leaq -0x4b0(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xbe8(%rbp)
leaq -0x5a8(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
xorl %edx, %edx
callq 0x9c8c0
jmp 0x9a61d
leaq -0x5c8(%rbp), %rdi
leaq -0x518(%rbp), %rsi
callq 0x2f300
jmp 0x9a632
movq -0xbe8(%rbp), %rsi
leaq -0x598(%rbp), %rdi
leaq -0x5a8(%rbp), %rdx
leaq -0x5c8(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9a658
leaq -0x4b0(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
leaq -0x598(%rbp), %rsi
callq 0x2fd80
leaq -0x598(%rbp), %rdi
callq 0x311e8
leaq -0x5c8(%rbp), %rdi
callq 0x311e8
leaq -0x5a8(%rbp), %rdi
callq 0x441d0
movl -0x4a4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4a4(%rbp)
leaq -0x518(%rbp), %rdi
callq 0x311e8
leaq -0x4f8(%rbp), %rdi
callq 0x311e8
jmp 0x9a79c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x441d0
jmp 0x9bd54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a78b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a731
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a725
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x538(%rbp), %rdi
callq 0x311e8
leaq -0x578(%rbp), %rdi
callq 0x311e8
leaq -0x558(%rbp), %rdi
callq 0x311e8
jmp 0x9a78b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a77f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a773
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x311e8
leaq -0x5a8(%rbp), %rdi
callq 0x441d0
leaq -0x518(%rbp), %rdi
callq 0x311e8
leaq -0x4f8(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
jmp 0x9a79e
jmp 0x9a7a0
leaq -0x4c0(%rbp), %rdi
callq 0x97360
jmp 0x9a435
jmp 0x9a7b3
jmp 0x9a7b5
leaq -0x4b0(%rbp), %rdi
callq 0x8aed0
movq %rax, %rsi
leaq -0x448(%rbp), %rdi
callq 0x2f780
jmp 0x9a7d2
jmp 0x9a7d4
leaq -0x4b0(%rbp), %rdi
callq 0x8aef0
jmp 0x9a396
jmp 0x9bc77
testb $0x1, -0x32(%rbp)
je 0x9a9d3
leaq 0x13ffa3(%rip), %rsi    # 0x1da79e
leaq -0x5f8(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9a80b
leaq -0x619(%rbp), %rdi
movq %rdi, -0xbf0(%rbp)
callq 0x30a70
movq -0xbf0(%rbp), %rdx
leaq 0x140a75(%rip), %rsi    # 0x1db2a1
leaq -0x618(%rbp), %rdi
callq 0x44470
jmp 0x9a83a
movq -0xb20(%rbp), %rsi
leaq -0x5e8(%rbp), %rdi
leaq -0x5f8(%rbp), %rdx
leaq -0x618(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9a860
movq -0xb20(%rbp), %rdi
leaq -0x5e8(%rbp), %rsi
movq %rsi, -0xbf8(%rbp)
callq 0x2fd80
movq -0xbf8(%rbp), %rdi
callq 0x311e8
leaq -0x618(%rbp), %rdi
callq 0x311e8
leaq -0x619(%rbp), %rdi
callq 0x311c0
leaq -0x5f8(%rbp), %rdi
callq 0x441d0
movq -0xb18(%rbp), %rdx
leaq 0x13ff76(%rip), %rsi    # 0x1da82e
leaq -0x680(%rbp), %rdi
callq 0x44240
jmp 0x9a8c6
movq -0xb20(%rbp), %rdx
leaq -0x660(%rbp), %rdi
leaq -0x680(%rbp), %rsi
callq 0x44760
jmp 0x9a8e2
leaq 0x13ff57(%rip), %rdx    # 0x1da840
leaq -0x640(%rbp), %rdi
leaq -0x660(%rbp), %rsi
callq 0x441f0
jmp 0x9a8fe
leaq -0x660(%rbp), %rdi
callq 0x311e8
leaq -0x680(%rbp), %rdi
callq 0x311e8
leaq -0x448(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x2f780
jmp 0x9a92b
leaq -0x640(%rbp), %rdi
callq 0x311e8
jmp 0x9a9d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a962
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x618(%rbp), %rdi
callq 0x311e8
leaq -0x619(%rbp), %rdi
callq 0x311c0
leaq -0x5f8(%rbp), %rdi
callq 0x441d0
jmp 0x9bd54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9a9a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x660(%rbp), %rdi
callq 0x311e8
leaq -0x680(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
movq -0xb08(%rbp), %rdi
addq $0x88, %rdi
callq 0x458f0
movq %rax, -0x688(%rbp)
movq -0xb08(%rbp), %rdi
addq $0x88, %rdi
callq 0x45920
movq %rax, -0x690(%rbp)
leaq -0x688(%rbp), %rdi
leaq -0x690(%rbp), %rsi
callq 0x45860
testb $0x1, %al
jne 0x9aa23
jmp 0x9bc75
testb $0x1, -0x32(%rbp)
je 0x9ace3
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, %rsi
leaq -0x6b0(%rbp), %rdi
callq 0x2f300
jmp 0x9aa4a
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xc00(%rbp)
leaq 0x13fde1(%rip), %rsi    # 0x1da845
leaq -0x6c0(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9aa74
movq -0xc00(%rbp), %rdi
leaq -0x6c0(%rbp), %rsi
xorl %edx, %edx
callq 0x450e0
movb %al, -0xc01(%rbp)
jmp 0x9aa91
leaq -0x6c0(%rbp), %rdi
callq 0x441d0
movb -0xc01(%rbp), %al
testb $0x1, %al
jne 0x9aaac
jmp 0x9ac3c
movq -0xb28(%rbp), %rdi
callq 0x2f700
testb $0x1, %al
jne 0x9ac3a
movq -0xb28(%rbp), %rdx
leaq 0x13fea0(%rip), %rsi    # 0x1da96e
leaq -0x700(%rbp), %rdi
callq 0x44240
jmp 0x9aadc
leaq 0x13fe96(%rip), %rdx    # 0x1da979
leaq -0x6e0(%rbp), %rdi
leaq -0x700(%rbp), %rsi
callq 0x441f0
jmp 0x9aaf8
leaq -0x700(%rbp), %rdi
callq 0x311e8
leaq 0x13fe72(%rip), %rsi    # 0x1da97d
leaq -0x730(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9ab1b
leaq -0x750(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
callq 0x2f300
jmp 0x9ab30
leaq -0x720(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
leaq -0x730(%rbp), %rdx
leaq -0x750(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9ab56
leaq -0x6b0(%rbp), %rdi
leaq -0x720(%rbp), %rsi
callq 0x2fd80
leaq -0x720(%rbp), %rdi
callq 0x311e8
leaq -0x750(%rbp), %rdi
callq 0x311e8
leaq -0x730(%rbp), %rdi
callq 0x441d0
leaq -0x6e0(%rbp), %rdi
callq 0x311e8
jmp 0x9ac3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9acd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0x441d0
jmp 0x9acd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x700(%rbp), %rdi
callq 0x311e8
jmp 0x9acd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9ac29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9ac1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x750(%rbp), %rdi
callq 0x311e8
leaq -0x730(%rbp), %rdi
callq 0x441d0
leaq -0x6e0(%rbp), %rdi
callq 0x311e8
jmp 0x9acd2
jmp 0x9ac48
movl $0xa, -0x754(%rbp)
jmp 0x9acb0
leaq 0x140760(%rip), %rdx    # 0x1db3af
leaq -0x778(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x447b0
jmp 0x9ac64
leaq -0x6b0(%rbp), %rdi
movq %rdi, -0xc10(%rbp)
leaq -0x778(%rbp), %rsi
movq %rsi, -0xc18(%rbp)
callq 0x2fd80
movq -0xc18(%rbp), %rdi
callq 0x311e8
movq -0xc10(%rbp), %rsi
leaq -0x448(%rbp), %rdi
callq 0x2f780
jmp 0x9aca6
movl $0x0, -0x754(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x311e8
movl -0x754(%rbp), %eax
testl %eax, %eax
je 0x9accd
jmp 0x9acc8
jmp 0x9bc64
jmp 0x9bc62
leaq -0x6b0(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, %rsi
leaq -0x798(%rbp), %rdi
callq 0x2f300
jmp 0x9ad00
leaq 0x13fc7b(%rip), %rsi    # 0x1da982
leaq -0x7c8(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9ad17
leaq -0x7e9(%rbp), %rdi
movq %rdi, -0xc20(%rbp)
callq 0x30a70
movq -0xc20(%rbp), %rdx
leaq 0x13fc4f(%rip), %rsi    # 0x1da987
leaq -0x7e8(%rbp), %rdi
callq 0x44470
jmp 0x9ad46
leaq -0x7b8(%rbp), %rdi
leaq -0x798(%rbp), %rsi
leaq -0x7c8(%rbp), %rdx
leaq -0x7e8(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9ad6c
leaq -0x7e8(%rbp), %rdi
callq 0x311e8
leaq -0x7e9(%rbp), %rdi
callq 0x311c0
leaq -0x7c8(%rbp), %rdi
callq 0x441d0
leaq -0x798(%rbp), %rdi
leaq -0x7b8(%rbp), %rsi
callq 0x30fa0
jmp 0x9ada5
movq -0xb10(%rbp), %rdi
movb $0x1, -0x7ea(%rbp)
movl $0x0, -0x7f0(%rbp)
callq 0x9c650
movl %eax, -0x7f4(%rbp)
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xc28(%rbp)
movb $0x0, -0x819(%rbp)
leaq 0x13fba3(%rip), %rsi    # 0x1da98c
leaq -0x808(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9adf9
movq -0xc28(%rbp), %rdi
leaq -0x808(%rbp), %rsi
xorl %edx, %edx
callq 0x9c920
movb %al, -0xc29(%rbp)
jmp 0x9ae16
movb -0xc29(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xc2a(%rbp)
jne 0x9ae87
jmp 0x9ae2b
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xc38(%rbp)
leaq 0x13fb4d(%rip), %rsi    # 0x1da992
leaq -0x818(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9ae55
movq -0xc38(%rbp), %rdi
movb $0x1, -0x819(%rbp)
leaq -0x818(%rbp), %rsi
xorl %edx, %edx
callq 0x9c920
movb %al, -0xc39(%rbp)
jmp 0x9ae79
movb -0xc39(%rbp), %al
movb %al, -0xc2a(%rbp)
jmp 0x9ae87
movb -0xc2a(%rbp), %al
movb %al, -0xc3a(%rbp)
testb $0x1, -0x819(%rbp)
jne 0x9ae9e
jmp 0x9aeaa
leaq -0x818(%rbp), %rdi
callq 0x441d0
leaq -0x808(%rbp), %rdi
callq 0x441d0
movb -0xc3a(%rbp), %al
testb $0x1, %al
jne 0x9aec5
jmp 0x9af7d
movl $0xa, -0x754(%rbp)
jmp 0x9bc0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bc51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9af0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x7e8(%rbp), %rdi
callq 0x311e8
leaq -0x7e9(%rbp), %rdi
callq 0x311c0
leaq -0x7c8(%rbp), %rdi
callq 0x441d0
jmp 0x9bc51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bc45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9af6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
testb $0x1, -0x819(%rbp)
jne 0x9af5e
jmp 0x9af6a
leaq -0x818(%rbp), %rdi
callq 0x441d0
jmp 0x9af6c
leaq -0x808(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, %rdi
leaq 0x13f86d(%rip), %rsi    # 0x1da800
callq 0x44930
movb %al, -0xc3b(%rbp)
jmp 0x9afa0
movb -0xc3b(%rbp), %al
testb $0x1, %al
jne 0x9afba
jmp 0x9afac
movl -0x7f0(%rbp), %eax
cmpl -0x7f4(%rbp), %eax
jne 0x9afc1
movb $0x0, -0x7ea(%rbp)
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x9, 0x1614(%rax)
jb 0x9b07b
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, %rsi
movq 0x239f61(%rip), %rdi    # 0x2d4f50
callq 0x2f780
movq %rax, -0xc48(%rbp)
jmp 0x9affd
movq -0xc48(%rbp), %rdi
movq 0x239fbd(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b012
movl -0x7f0(%rbp), %esi
movq 0x239f31(%rip), %rdi    # 0x2d4f50
callq 0x2f800
movq %rax, -0xc50(%rbp)
jmp 0x9b02d
movq -0xc50(%rbp), %rdi
leaq 0x149094(%rip), %rsi    # 0x1e40cf
callq 0x2ff50
movq %rax, -0xc58(%rbp)
jmp 0x9b049
movq -0xc58(%rbp), %rdi
movl -0x7f4(%rbp), %esi
callq 0x2f800
movq %rax, -0xc60(%rbp)
jmp 0x9b064
movq -0xc60(%rbp), %rdi
movq 0x239f56(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b079
jmp 0x9b07b
testb $0x1, -0x7ea(%rbp)
je 0x9b872
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x9, 0x1614(%rax)
jb 0x9b0cf
movq 0x239ead(%rip), %rdi    # 0x2d4f50
leaq 0x13f8eb(%rip), %rsi    # 0x1da995
callq 0x2ff50
movq %rax, -0xc68(%rbp)
jmp 0x9b0b8
movq -0xc68(%rbp), %rdi
movq 0x239f02(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b0cd
jmp 0x9b0cf
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xc70(%rbp)
leaq 0x13f568(%rip), %rsi    # 0x1da651
leaq -0x830(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b0f9
movq -0xc70(%rbp), %rdi
leaq -0x498(%rbp), %rsi
leaq -0x830(%rbp), %rdx
xorl %ecx, %ecx
callq 0x43f80
movb %al, -0xc71(%rbp)
jmp 0x9b11d
leaq -0x830(%rbp), %rdi
callq 0x441d0
movb -0xc71(%rbp), %al
testb $0x1, %al
jne 0x9b138
jmp 0x9b53e
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x9, 0x1614(%rax)
jb 0x9b303
movq 0x239df9(%rip), %rdi    # 0x2d4f50
leaq 0x13f84a(%rip), %rsi    # 0x1da9a8
callq 0x2ff50
movq %rax, -0xc80(%rbp)
jmp 0x9b16c
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xc88(%rbp)
jmp 0x9b186
movq -0xc88(%rbp), %rsi
movq -0xc80(%rbp), %rdi
callq 0x9c590
movq %rax, -0xc90(%rbp)
jmp 0x9b1a2
movq -0xc90(%rbp), %rdi
movq 0x239e18(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b1b7
movq 0x239d92(%rip), %rdi    # 0x2d4f50
leaq 0x13f7f0(%rip), %rsi    # 0x1da9b5
callq 0x2ff50
movq %rax, -0xc98(%rbp)
jmp 0x9b1d3
movq -0xc98(%rbp), %rdi
movzbl -0x31(%rbp), %esi
andl $0x1, %esi
callq 0x2f690
movq %rax, -0xca0(%rbp)
jmp 0x9b1ef
movq -0xca0(%rbp), %rdi
leaq 0x13f413(%rip), %rsi    # 0x1da610
callq 0x2ff50
movq %rax, -0xca8(%rbp)
jmp 0x9b20b
movq -0xca8(%rbp), %rdi
movzbl -0x32(%rbp), %esi
andl $0x1, %esi
callq 0x2f690
movq %rax, -0xcb0(%rbp)
jmp 0x9b227
movq -0xcb0(%rbp), %rdi
leaq 0x13f3db(%rip), %rsi    # 0x1da610
callq 0x2ff50
movq %rax, -0xcb8(%rbp)
jmp 0x9b243
movq -0xcb8(%rbp), %rdi
movzbl -0x33(%rbp), %esi
andl $0x1, %esi
callq 0x2f690
movq %rax, -0xcc0(%rbp)
jmp 0x9b25f
movq -0xcc0(%rbp), %rdi
leaq 0x13f3a3(%rip), %rsi    # 0x1da610
callq 0x2ff50
movq %rax, -0xcc8(%rbp)
jmp 0x9b27b
movq -0xcc8(%rbp), %rdi
movzbl -0x34(%rbp), %esi
andl $0x1, %esi
callq 0x2f690
movq %rax, -0xcd0(%rbp)
jmp 0x9b297
movq -0xcd0(%rbp), %rdi
leaq 0x13f36b(%rip), %rsi    # 0x1da610
callq 0x2ff50
movq %rax, -0xcd8(%rbp)
jmp 0x9b2b3
movq -0xcd8(%rbp), %rdi
movzbl -0x35(%rbp), %esi
andl $0x1, %esi
callq 0x2f690
movq %rax, -0xce0(%rbp)
jmp 0x9b2cf
movq -0xce0(%rbp), %rdi
movq 0x239ceb(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b2e4
jmp 0x9b303
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x830(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xce8(%rbp)
leaq 0x13f33e(%rip), %rsi    # 0x1da65b
leaq -0x860(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b32d
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xcf0(%rbp)
jmp 0x9b347
movq -0xcf0(%rbp), %rsi
leaq -0x8a0(%rbp), %rdi
callq 0x44070
jmp 0x9b35c
movq -0xb10(%rbp), %rdi
leaq -0x8a0(%rbp), %rsi
callq 0x9ca20
movq %rax, -0xcf8(%rbp)
jmp 0x9b378
movq -0xcf8(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x880(%rbp), %rdi
callq 0x17e490
jmp 0x9b391
movq -0xce8(%rbp), %rsi
leaq -0x850(%rbp), %rdi
leaq -0x860(%rbp), %rdx
leaq -0x880(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9b3b7
leaq -0x798(%rbp), %rdi
leaq -0x850(%rbp), %rsi
callq 0x2fd80
leaq -0x850(%rbp), %rdi
callq 0x311e8
leaq -0x880(%rbp), %rdi
callq 0x311e8
leaq -0x8a0(%rbp), %rdi
callq 0x311e8
leaq -0x860(%rbp), %rdi
callq 0x441d0
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x9, 0x1614(%rax)
jb 0x9b52a
movq 0x239b37(%rip), %rdi    # 0x2d4f50
leaq 0x13f5a3(%rip), %rsi    # 0x1da9c3
callq 0x2ff50
movq %rax, -0xd00(%rbp)
jmp 0x9b42e
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xd08(%rbp)
jmp 0x9b448
movq -0xd08(%rbp), %rsi
leaq -0x8c0(%rbp), %rdi
callq 0x44070
jmp 0x9b45d
movq -0xb10(%rbp), %rdi
leaq -0x8c0(%rbp), %rsi
callq 0x9ca20
movq %rax, -0xd10(%rbp)
jmp 0x9b479
movq -0xd00(%rbp), %rdi
movq -0xd10(%rbp), %rax
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0xd18(%rbp)
jmp 0x9b499
movq -0xd18(%rbp), %rdi
movq 0x239b21(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b4ae
leaq -0x8c0(%rbp), %rdi
callq 0x311e8
jmp 0x9b52a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9b4fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9b4f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x880(%rbp), %rdi
callq 0x311e8
leaq -0x8a0(%rbp), %rdi
callq 0x311e8
leaq -0x860(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x8c0(%rbp), %rdi
callq 0x311e8
jmp 0x9bc45
movl -0x7f0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7f0(%rbp)
jmp 0x9b870
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xd20(%rbp)
leaq 0x13f47c(%rip), %rsi    # 0x1da9d4
leaq -0x8d0(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b568
movq -0xd20(%rbp), %rdi
leaq -0x498(%rbp), %rsi
leaq -0x8d0(%rbp), %rdx
xorl %ecx, %ecx
callq 0x43f80
movb %al, -0xd21(%rbp)
jmp 0x9b58c
leaq -0x8d0(%rbp), %rdi
callq 0x441d0
movb -0xd21(%rbp), %al
testb $0x1, %al
jne 0x9b5a7
jmp 0x9b86e
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9b645
movq 0x23998a(%rip), %rdi    # 0x2d4f50
leaq 0x13f413(%rip), %rsi    # 0x1da9e0
callq 0x2ff50
movq %rax, -0xd30(%rbp)
jmp 0x9b5db
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xd38(%rbp)
jmp 0x9b5f5
movq -0xd38(%rbp), %rsi
movq -0xd30(%rbp), %rdi
callq 0x9c590
movq %rax, -0xd40(%rbp)
jmp 0x9b611
movq -0xd40(%rbp), %rdi
movq 0x2399a9(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b626
jmp 0x9b645
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x8d0(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xd48(%rbp)
leaq 0x13f375(%rip), %rsi    # 0x1da9d4
leaq -0x900(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b66f
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xd50(%rbp)
jmp 0x9b689
movq -0xd50(%rbp), %rsi
leaq -0x940(%rbp), %rdi
callq 0x44070
jmp 0x9b69e
movq -0xb10(%rbp), %rdi
leaq -0x940(%rbp), %rsi
callq 0x9ca20
movq %rax, -0xd58(%rbp)
jmp 0x9b6ba
movq -0xd58(%rbp), %rax
movsd (%rax), %xmm0
leaq -0x920(%rbp), %rdi
callq 0x17e490
jmp 0x9b6d3
movq -0xd48(%rbp), %rsi
leaq -0x8f0(%rbp), %rdi
leaq -0x900(%rbp), %rdx
leaq -0x920(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9b6f9
leaq -0x798(%rbp), %rdi
leaq -0x8f0(%rbp), %rsi
callq 0x2fd80
leaq -0x8f0(%rbp), %rdi
callq 0x311e8
leaq -0x920(%rbp), %rdi
callq 0x311e8
leaq -0x940(%rbp), %rdi
callq 0x311e8
leaq -0x900(%rbp), %rdi
callq 0x441d0
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9b86c
movq 0x2397f5(%rip), %rdi    # 0x2d4f50
leaq 0x13f261(%rip), %rsi    # 0x1da9c3
callq 0x2ff50
movq %rax, -0xd60(%rbp)
jmp 0x9b770
leaq -0x498(%rbp), %rdi
movl $0x2, %esi
callq 0x43fe0
movq %rax, -0xd68(%rbp)
jmp 0x9b78a
movq -0xd68(%rbp), %rsi
leaq -0x960(%rbp), %rdi
callq 0x44070
jmp 0x9b79f
movq -0xb10(%rbp), %rdi
leaq -0x960(%rbp), %rsi
callq 0x9ca20
movq %rax, -0xd70(%rbp)
jmp 0x9b7bb
movq -0xd60(%rbp), %rdi
movq -0xd70(%rbp), %rax
movsd (%rax), %xmm0
callq 0x30710
movq %rax, -0xd78(%rbp)
jmp 0x9b7db
movq -0xd78(%rbp), %rdi
movq 0x2397df(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b7f0
leaq -0x960(%rbp), %rdi
callq 0x311e8
jmp 0x9b86c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9b83e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9b832
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x920(%rbp), %rdi
callq 0x311e8
leaq -0x940(%rbp), %rdi
callq 0x311e8
leaq -0x900(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x960(%rbp), %rdi
callq 0x311e8
jmp 0x9bc45
jmp 0x9b86e
jmp 0x9b870
jmp 0x9b8bb
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
cmpl $0x3, 0x1614(%rax)
jb 0x9b8b9
movq 0x2396c3(%rip), %rdi    # 0x2d4f50
leaq 0x13f15a(%rip), %rsi    # 0x1da9ee
callq 0x2ff50
movq %rax, -0xd80(%rbp)
jmp 0x9b8a2
movq -0xd80(%rbp), %rdi
movq 0x239718(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9b8b7
jmp 0x9b8b9
jmp 0x9b8bb
movq -0xb28(%rbp), %rdi
callq 0x2f700
testb $0x1, %al
jne 0x9baf8
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xd88(%rbp)
leaq 0x13ec07(%rip), %rsi    # 0x1da4f0
leaq -0x970(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b8f9
movq -0xd88(%rbp), %rdi
leaq -0x970(%rbp), %rsi
xorl %edx, %edx
callq 0x450e0
movb %al, -0xd89(%rbp)
jmp 0x9b916
leaq -0x970(%rbp), %rdi
callq 0x441d0
movb -0xd89(%rbp), %al
testb $0x1, %al
jne 0x9b931
jmp 0x9baf6
movq -0xb28(%rbp), %rdx
leaq 0x13f02f(%rip), %rsi    # 0x1da96e
leaq -0x9b0(%rbp), %rdi
callq 0x44240
jmp 0x9b94d
leaq 0x13f025(%rip), %rdx    # 0x1da979
leaq -0x990(%rbp), %rdi
leaq -0x9b0(%rbp), %rsi
callq 0x441f0
jmp 0x9b969
leaq -0x9b0(%rbp), %rdi
callq 0x311e8
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xd98(%rbp)
leaq 0x13efee(%rip), %rsi    # 0x1da97d
leaq -0x9e0(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9b99f
leaq -0xa00(%rbp), %rdi
leaq -0x990(%rbp), %rsi
callq 0x2f300
jmp 0x9b9b4
movq -0xd98(%rbp), %rsi
leaq -0x9d0(%rbp), %rdi
leaq -0x9e0(%rbp), %rdx
leaq -0xa00(%rbp), %rcx
xorl %r8d, %r8d
callq 0x8def0
jmp 0x9b9da
leaq -0x798(%rbp), %rdi
movq %rdi, -0xda0(%rbp)
leaq -0x9d0(%rbp), %rsi
movq %rsi, -0xda8(%rbp)
callq 0x2fd80
movq -0xda8(%rbp), %rdi
callq 0x311e8
leaq -0xa00(%rbp), %rdi
callq 0x311e8
leaq -0x9e0(%rbp), %rdi
callq 0x441d0
movq -0xda0(%rbp), %rsi
leaq 0x13f982(%rip), %rdx    # 0x1db3af
leaq -0xa20(%rbp), %rdi
callq 0x447b0
jmp 0x9ba3b
leaq -0x798(%rbp), %rdi
leaq -0xa20(%rbp), %rsi
callq 0x2fd80
leaq -0xa20(%rbp), %rdi
callq 0x311e8
leaq -0x990(%rbp), %rdi
callq 0x311e8
jmp 0x9baf6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x970(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x9b0(%rbp), %rdi
callq 0x311e8
jmp 0x9bc45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bae5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xa00(%rbp), %rdi
callq 0x311e8
leaq -0x9e0(%rbp), %rdi
callq 0x441d0
leaq -0x990(%rbp), %rdi
callq 0x311e8
jmp 0x9bc45
jmp 0x9baf8
leaq -0x798(%rbp), %rdi
callq 0x30b70
movb (%rax), %al
movb %al, -0xa21(%rbp)
movsbl -0xa21(%rbp), %eax
cmpl $0xa, %eax
je 0x9bb53
leaq 0x13f890(%rip), %rdx    # 0x1db3af
leaq -0xa48(%rbp), %rdi
leaq -0x798(%rbp), %rsi
callq 0x447b0
jmp 0x9bb34
leaq -0x798(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x2fd80
leaq -0xa48(%rbp), %rdi
callq 0x311e8
leaq -0x448(%rbp), %rdi
leaq -0x798(%rbp), %rsi
callq 0x2f780
jmp 0x9bb68
testb $0x1, -0x31(%rbp)
je 0x9bc00
leaq -0x688(%rbp), %rdi
callq 0x8aed0
movq %rax, -0xdb0(%rbp)
leaq 0x13ee78(%rip), %rsi    # 0x1daa04
leaq -0xa58(%rbp), %rdi
xorl %edx, %edx
callq 0x43f20
jmp 0x9bb9c
movq -0xdb0(%rbp), %rdi
leaq -0x498(%rbp), %rsi
leaq -0xa58(%rbp), %rdx
xorl %ecx, %ecx
callq 0x43f80
movb %al, -0xdb1(%rbp)
jmp 0x9bbc0
leaq -0xa58(%rbp), %rdi
callq 0x441d0
movb -0xdb1(%rbp), %al
testb $0x1, %al
jne 0x9bbd8
jmp 0x9bbfe
movl $0x8, -0x754(%rbp)
jmp 0x9bc0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xa58(%rbp), %rdi
callq 0x441d0
jmp 0x9bc45
jmp 0x9bc00
movl $0x0, -0x754(%rbp)
leaq -0x7b8(%rbp), %rdi
callq 0x311e8
leaq -0x798(%rbp), %rdi
callq 0x311e8
movl -0x754(%rbp), %eax
movl %eax, -0xdb8(%rbp)
testl %eax, %eax
je 0x9bc43
jmp 0x9bc34
movl -0xdb8(%rbp), %eax
subl $0x8, %eax
je 0x9bc75
jmp 0x9bc41
jmp 0x9bc64
jmp 0x9bc62
leaq -0x7b8(%rbp), %rdi
callq 0x311e8
leaq -0x798(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
jmp 0x9bc64
leaq -0x688(%rbp), %rdi
callq 0x8aef0
jmp 0x9a9ed
jmp 0x9bc77
leaq -0x448(%rbp), %rdi
callq 0x30910
jmp 0x9bc85
jmp 0x9bd37
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
movq %rax, -0xdc0(%rbp)
leaq 0x13ed73(%rip), %rsi    # 0x1daa16
leaq -0xa98(%rbp), %rdi
leaq -0x228(%rbp), %rdx
callq 0x44240
jmp 0x9bcb8
leaq 0x13ed6c(%rip), %rdx    # 0x1daa2b
leaq -0xa78(%rbp), %rdi
leaq -0xa98(%rbp), %rsi
callq 0x441f0
jmp 0x9bcd4
movq -0xdc0(%rbp), %rdi
leaq -0xa78(%rbp), %rsi
callq 0xeada0
jmp 0x9bce9
leaq -0xa78(%rbp), %rdi
callq 0x311e8
leaq -0xa98(%rbp), %rdi
callq 0x311e8
jmp 0x9bd37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9bd29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xa78(%rbp), %rdi
callq 0x311e8
leaq -0xa98(%rbp), %rdi
callq 0x311e8
jmp 0x9bd54
leaq -0x498(%rbp), %rdi
callq 0x45ac0
leaq -0x448(%rbp), %rdi
callq 0x304f0
jmp 0x9bf9d
leaq -0x498(%rbp), %rdi
callq 0x45ac0
leaq -0x448(%rbp), %rdi
callq 0x304f0
jmp 0x9bfb3
movq -0xb18(%rbp), %rdi
callq 0x2f290
movq %rax, -0xaa0(%rbp)
movq -0xaa0(%rbp), %rdi
movl $0x1b6, %esi            # imm = 0x1B6
callq 0x2f380
movl %eax, -0xaa4(%rbp)
cmpl $0x0, -0xaa4(%rbp)
je 0x9be58
movq -0xb18(%rbp), %rdx
movq -0xb08(%rbp), %rax
movq 0x60(%rax), %rax
movq %rax, -0xdc8(%rbp)
leaq 0x13ec70(%rip), %rsi    # 0x1daa38
leaq -0xae8(%rbp), %rdi
callq 0x44240
jmp 0x9bdd6
leaq 0x13ec4e(%rip), %rdx    # 0x1daa2b
leaq -0xac8(%rbp), %rdi
leaq -0xae8(%rbp), %rsi
callq 0x441f0
jmp 0x9bdf2
movq -0xdc8(%rbp), %rdi
leaq -0xac8(%rbp), %rsi
callq 0xeada0
jmp 0x9be07
leaq -0xac8(%rbp), %rdi
callq 0x311e8
leaq -0xae8(%rbp), %rdi
callq 0x311e8
jmp 0x9be58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x9be47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xac8(%rbp), %rdi
callq 0x311e8
leaq -0xae8(%rbp), %rdi
callq 0x311e8
jmp 0x9bfb3
movq -0xaa0(%rbp), %rdi
xorl %esi, %esi
movb %sil, %al
callq 0x2fb30
movl %eax, -0xdcc(%rbp)
jmp 0x9be71
movl -0xdcc(%rbp), %eax
movl %eax, -0xaec(%rbp)
cmpl $0x0, -0xaec(%rbp)
jge 0x9bed5
movq 0x2390c3(%rip), %rdi    # 0x2d4f50
leaq 0x146453(%rip), %rsi    # 0x1e22e7
callq 0x2ff50
movq %rax, -0xdd8(%rbp)
jmp 0x9bea2
movq -0xdd8(%rbp), %rdi
movq -0xaa0(%rbp), %rsi
callq 0x2ff50
movq %rax, -0xde0(%rbp)
jmp 0x9bebe
movq -0xde0(%rbp), %rdi
movq 0x2390fc(%rip), %rsi    # 0x2d4fc8
callq 0x30c10
jmp 0x9bed3
jmp 0x9bed5
movq -0xb08(%rbp), %rdi
addq $0x88, %rdi
callq 0x458f0
movq %rax, -0xaf8(%rbp)
movq -0xb08(%rbp), %rdi
addq $0x88, %rdi
callq 0x45920
movq %rax, -0xb00(%rbp)
leaq -0xaf8(%rbp), %rdi
leaq -0xb00(%rbp), %rsi
callq 0x45860
testb $0x1, %al
jne 0x9bf22
jmp 0x9bf8e
movl -0xaec(%rbp), %eax
movl %eax, -0xdec(%rbp)
leaq -0xaf8(%rbp), %rdi
movq %rdi, -0xdf8(%rbp)
callq 0x8e170
movq %rax, %rdi
callq 0x2f290
movq -0xdf8(%rbp), %rdi
movq %rax, -0xde8(%rbp)
callq 0x8e170
movq %rax, %rdi
callq 0x2f720
movl -0xdec(%rbp), %edi
movq -0xde8(%rbp), %rsi
movq %rax, %rdx
callq 0x30c00
jmp 0x9bf7b
jmp 0x9bf7d
leaq -0xaf8(%rbp), %rdi
callq 0x8aef0
jmp 0x9beef
movl -0xaec(%rbp), %edi
callq 0x2f5c0
jmp 0x9bf9b
jmp 0x9bf9d
leaq -0x228(%rbp), %rdi
callq 0x311e8
addq $0xe18, %rsp            # imm = 0xE18
popq %rbx
popq %rbp
retq
leaq -0x228(%rbp), %rdi
callq 0x311e8
movq -0x60(%rbp), %rdi
callq 0x30170
nopl (%rax,%rax)