// File: Laakeri[P]maxpre/src/main.cpp
// Function: main
int main(int argc, char* argv[]){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	if ((argc > 1 && isHelp(argv[1])) || (argc > 2 && isHelp(argv[2])) || (argc > 3 && isHelp(argv[3]))) {
		printHelp(cout);
		return 0;
	}
	if (argc < 3) {
		cout<<"Use -help"<<endl;
		cout<<"Use -help"<<endl;
		return 0;
	}
	auto flags = getFlags(argc, argv);
	if (flags.count("h") || flags.count("help")) {
		printHelp(cout);
	}
	string type(argv[2]);
	assert(type == "solve" || type == "preprocess" || type == "reconstruct");
	string file(argv[1]);
	if (type == "reconstruct") {
		if (!flags.count("mapfile")) {
			cout<<"Give mapfile with -mapfile= flag"<<endl;
			cerr<<"Give mapfile with -mapfile= flag"<<endl;
			return 0;
		}
		string mapFile = flags["mapfile"];
		maxPreprocessor::OutputReader opr;
		ifstream in(file);
		int readStatus = opr.readSolution(in);
		in.close();
		if (readStatus > 0) {
			cout<<"Failed to parse solution"<<endl;
			cerr<<"Failed to parse solution"<<endl;
			return 0;
		}
		if (opr.status == 2) {
			cout<<"s UNSATISFIABLE"<<endl;
		}
		else {
			ifstream mapF(mapFile);
			int vars, ppVars, originalVars;
			mapF>>vars>>ppVars>>originalVars;
			vector<int> varMap(vars);
			for (int i = 0; i < vars; i++) mapF>>varMap[i];
			vector<int> trueLits;
			for (int lit : opr.trueLits) {
				if (abs(lit) > vars) continue;
				if (lit > 0) lit = varMap[abs(lit)-1];
				else lit = -varMap[abs(lit)-1];
				trueLits.push_back(lit);
			}
			maxPreprocessor::Trace trace;
			int traceLines;
			mapF>>traceLines;
			trace.operations.resize(traceLines);
			trace.data.resize(traceLines);
			for (int i = 0; i < traceLines; i++) {
				mapF>>trace.operations[i];
				int sz;
				mapF>>sz;
				trace.data[i].resize(sz);
				for (int j = 0; j < sz; j++) {
					mapF>>trace.data[i][j];
				}
			}
			trace.printSolution(cout, trueLits, opr.ansW, ppVars, originalVars);
		}
		return 0;
	}
	
	if (type == "solve") {
		// just check that -solver flag is used
		if (!(flags.count("solver") && flags["solver"].size() > 0)) {
			cout<<"Please specify the solver"<<endl;
			cerr<<"Please specify the solver"<<endl;
			return 0;
		}
	}
	
	string techniques = parseTechniques(flags);
	double timeLimit = parseTimeLimit(flags);
	bool BVEgate = parseBVEgate(flags);
	bool labelMatching = parseLabelMatching(flags);
	bool maxSat = parseProblemType(flags);
	int skipTechnique = parseSkipTechnique(flags);
  bool BVEsortMaxFirst = parseBVEsortMaxFirst(flags);
  int BVElocalGrow = parseBVElocalGrow(flags);
  int BVEglobalGrow = parseBVEglobalGrow(flags);
	
	ifstream instanceFile(file);
	if (instanceFile.fail()) {
		cout<<"Failed to read the input file"<<endl;
		cerr<<"Failed to read the input file"<<endl;
		return 0;
	}
	maxPreprocessor::InputReader inputReader;
	int readStatus = inputReader.readClauses(instanceFile, maxSat);
	instanceFile.close();
	
	if (readStatus > 0) {
		cout<<"Failed to parse input instance: "<<inputReader.readError<<endl;
		cerr<<"Failed to parse input instance: "<<inputReader.readError<<endl;
		return 0;
	}
	
	int outputFormat = maxPreprocessor::INPUT_FORMAT_WPMS;
	if (flags["outputformat"] == "original") {
		outputFormat = inputReader.inputFormat;
		if (outputFormat == maxPreprocessor::INPUT_FORMAT_MS) {
			// preprocessor works in labeled cnf so it cannot output pure maxsat
			outputFormat = maxPreprocessor::INPUT_FORMAT_WPMS;
		}
		string outf;
		if (outputFormat == maxPreprocessor::INPUT_FORMAT_WPMS) {
			outf = "weighted partial Max-SAT";
		}
		else if (outputFormat == maxPreprocessor::INPUT_FORMAT_SAT) {
			outf = "SAT";
		}
		else {
			return 0;
		}
		cout<<"c Outputformat "<<outf<<endl;
		cerr<<"Outputformat "<<outf<<endl;
	}
	
	int verb = parseVerb(flags);
	
	maxPreprocessor::PreprocessorInterface pif(inputReader.clauses, inputReader.weights, inputReader.top);
	pif.setBVEGateExtraction(BVEgate);
	pif.setLabelMatching(labelMatching);
	pif.setSkipTechnique(skipTechnique);
  pif.setBVEsortMaxFirst(BVEsortMaxFirst);
  pif.setBVElocalGrowLimit(BVElocalGrow);
  pif.setBVEglobalGrowLimit(BVEglobalGrow);

	maxPreprocessor::Timer preprocessTimer;
	preprocessTimer.start();
	
	pif.preprocess(techniques, verb, timeLimit);
	
	preprocessTimer.stop();
	
	cerr<<"Preprocess time: "<<preprocessTimer.getTime().count()<<endl;
	if (verb > 0) pif.printTimeLog(cerr);
	if (type == "preprocess") {
		if (verb > 0) pif.printTechniqueLog(cerr);
		pif.printTechniqueLog(cout);
		pif.printTimeLog(cout);
		pif.printInfoLog(cout);
		pif.printInstance(cout, outputFormat);
		
		if (flags.count("mapfile")) {
			string mapFile = flags["mapfile"];
			cout<<"c Outputting reconstruction map to "<<mapFile<<endl;
			cerr<<"Outputting reconstruction map to "<<mapFile<<endl;
			ofstream out(mapFile);
			pif.printMap(out);
			out.close();
		}
		else {
			cout<<"c No -mapfile= given, will not ouput reconstruction map"<<endl;
			cerr<<"No -mapfile= given, will not ouput reconstruction map"<<endl;
		}
	}
	if (type == "solve") {
		string solver;
		if (flags.count("solver") && flags["solver"].size() > 0) {
			solver = flags["solver"];
			cout<<"c Using solver "<<solver<<endl;
			cerr<<"Using solver "<<solver<<endl;
			cout<<"c Solver flags "<<flags["solverflags"]<<endl;
			cerr<<"Solver flags "<<flags["solverflags"]<<endl;
		}
		else {
			cout<<"Please specify the solver"<<endl;
			cerr<<"Please specify the solver"<<endl;
			return 0;
		}
		
		ofstream out("preprocessed.wcnf");
		pif.printInstance(out, outputFormat);
		out.close();
		
		maxPreprocessor::Timer solveTimer;
		solveTimer.start();
		if (system((solver + " preprocessed.wcnf " + flags["solverflags"] + " > sol0.sol").c_str())) {
			cout<<"Solver error"<<endl;
			cerr<<"Solver error"<<endl;
			return 0;
		}
		solveTimer.stop();
		
		maxPreprocessor::OutputReader opr;
		ifstream in("sol0.sol");
		readStatus = opr.readSolution(in);
		in.close();
		if (readStatus > 0) {
			cout<<"Failed to parse solution"<<endl;
			cerr<<"Failed to parse solution"<<endl;
			return 0;
		}
		
		if (opr.status == 2) {
			cout<<"s UNSATISFIABLE"<<endl;
		}
		else {
			pif.printSolution(opr.trueLits, cout, opr.ansW);
		}
		cerr<<"Preprocess time: "<<preprocessTimer.getTime().count()<<", Solve time: "<<solveTimer.getTime().count()<<endl;
		if (verb > 0) pif.printTimeLog(cerr);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e50, %rsp           # imm = 0x2E50
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
xorl %edi, %edi
callq 0x4180
movq 0xa7101(%rip), %rax     # 0xaefd8
movq (%rax), %rax
movq 0xa70f7(%rip), %rdi     # 0xaefd8
addq -0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x42d0
cmpl $0x1, -0x8(%rbp)
jle 0x7f06
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x7af0
cmpl $0x0, %eax
jne 0x7f36
cmpl $0x2, -0x8(%rbp)
jle 0x7f1e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x7af0
cmpl $0x0, %eax
jne 0x7f36
cmpl $0x3, -0x8(%rbp)
jle 0x7f4e
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x7af0
cmpl $0x0, %eax
je 0x7f4e
movq 0xa708b(%rip), %rdi     # 0xaefc8
callq 0x7280
movl $0x0, -0x4(%rbp)
jmp 0xa39c
cmpl $0x3, -0x8(%rbp)
jge 0x7fa4
movq 0xa706d(%rip), %rdi     # 0xaefc8
leaq 0x7e03c(%rip), %rsi     # 0x85f9e
callq 0x4380
movq %rax, %rdi
movq 0xa703f(%rip), %rsi     # 0xaefb0
callq 0x43d0
movq 0xa704b(%rip), %rdi     # 0xaefc8
leaq 0x7e01a(%rip), %rsi     # 0x85f9e
callq 0x4380
movq %rax, %rdi
movq 0xa701d(%rip), %rsi     # 0xaefb0
callq 0x43d0
movl $0x0, -0x4(%rbp)
jmp 0xa39c
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0x40(%rbp), %rdi
callq 0x4b40
leaq -0x61(%rbp), %rdi
movq %rdi, -0x2ae0(%rbp)
callq 0x4620
movq -0x2ae0(%rbp), %rdx
movb $0x0, -0x9a(%rbp)
movb $0x0, -0x9b(%rbp)
leaq 0x7dfbc(%rip), %rsi     # 0x85f9c
leaq -0x60(%rbp), %rdi
callq 0xa430
jmp 0x7feb
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2ae8(%rbp)
jmp 0x8001
movq -0x2ae8(%rbp), %rcx
movb $0x1, %al
cmpq $0x0, %rcx
movb %al, -0x2ae9(%rbp)
jne 0x8080
leaq -0x99(%rbp), %rdi
movq %rdi, -0x2af8(%rbp)
callq 0x4620
movq -0x2af8(%rbp), %rdx
movb $0x1, -0x9a(%rbp)
leaq 0x7df65(%rip), %rsi     # 0x85fa3
leaq -0x98(%rbp), %rdi
callq 0xa430
jmp 0x804c
movb $0x1, -0x9b(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2b00(%rbp)
jmp 0x806c
movq -0x2b00(%rbp), %rax
cmpq $0x0, %rax
setne %al
movb %al, -0x2ae9(%rbp)
movb -0x2ae9(%rbp), %al
movb %al, -0x2b01(%rbp)
testb $0x1, -0x9b(%rbp)
jne 0x8097
jmp 0x80a3
leaq -0x98(%rbp), %rdi
callq 0x4240
testb $0x1, -0x9a(%rbp)
jne 0x80ae
jmp 0x80ba
leaq -0x99(%rbp), %rdi
callq 0x43f0
leaq -0x60(%rbp), %rdi
callq 0x4240
leaq -0x61(%rbp), %rdi
callq 0x43f0
movb -0x2b01(%rbp), %al
testb $0x1, %al
jne 0x80db
jmp 0x817e
movq 0xa6ee6(%rip), %rdi     # 0xaefc8
callq 0x7280
jmp 0x80e9
jmp 0x817e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x815f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x813d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
testb $0x1, -0x9b(%rbp)
jne 0x812f
jmp 0x813b
leaq -0x98(%rbp), %rdi
callq 0x4240
jmp 0x813d
testb $0x1, -0x9a(%rbp)
jne 0x8148
jmp 0x8154
leaq -0x99(%rbp), %rdi
callq 0x43f0
jmp 0x8156
leaq -0x60(%rbp), %rdi
callq 0x4240
leaq -0x61(%rbp), %rdi
callq 0x43f0
jmp 0xa3f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3f0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x2b18(%rbp)
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x2b10(%rbp)
callq 0x4620
movq -0x2b18(%rbp), %rsi
movq -0x2b10(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
callq 0xa430
jmp 0x81bc
leaq -0xc1(%rbp), %rdi
callq 0x43f0
leaq 0x7ddd9(%rip), %rsi     # 0x85fa8
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2b19(%rbp)
jmp 0x81e3
movb -0x2b19(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x2b1a(%rbp)
jne 0x8251
jmp 0x81f8
leaq 0x7ddaf(%rip), %rsi     # 0x85fae
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2b1b(%rbp)
jmp 0x8213
movb -0x2b1b(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x2b1a(%rbp)
jne 0x8251
jmp 0x8228
leaq 0x7dd8a(%rip), %rsi     # 0x85fb9
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2b1c(%rbp)
jmp 0x8243
movb -0x2b1c(%rbp), %al
movb %al, -0x2b1a(%rbp)
jmp 0x8251
movb -0x2b1a(%rbp), %al
testb $0x1, %al
jne 0x825d
jmp 0x825f
jmp 0x82ac
leaq 0x7dd5f(%rip), %rdi     # 0x85fc5
leaq 0x7dd99(%rip), %rsi     # 0x86006
movl $0x17f, %edx            # imm = 0x17F
leaq 0x7dd96(%rip), %rcx     # 0x8600f
callq 0x4260
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xc1(%rbp), %rdi
callq 0x43f0
jmp 0xa3f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3e4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x2b30(%rbp)
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x2b28(%rbp)
callq 0x4620
movq -0x2b30(%rbp), %rsi
movq -0x2b28(%rbp), %rdx
leaq -0xe8(%rbp), %rdi
callq 0xa430
jmp 0x82ea
leaq -0xe9(%rbp), %rdi
callq 0x43f0
leaq 0x7dcbc(%rip), %rsi     # 0x85fb9
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2b31(%rbp)
jmp 0x8311
movb -0x2b31(%rbp), %al
testb $0x1, %al
jne 0x8320
jmp 0x8b0d
leaq -0x111(%rbp), %rdi
movq %rdi, -0x2b40(%rbp)
callq 0x4620
movq -0x2b40(%rbp), %rdx
leaq 0x7dce5(%rip), %rsi     # 0x86026
leaq -0x110(%rbp), %rdi
callq 0xa430
jmp 0x834f
leaq -0x40(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2b48(%rbp)
jmp 0x8368
movq -0x2b48(%rbp), %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
movb %al, -0x2b49(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4240
leaq -0x111(%rbp), %rdi
callq 0x43f0
movb -0x2b49(%rbp), %al
testb $0x1, %al
jne 0x83a5
jmp 0x8482
movq 0xa6c1c(%rip), %rdi     # 0xaefc8
leaq 0x7dc7b(%rip), %rsi     # 0x8602e
callq 0x4380
movq %rax, -0x2b58(%rbp)
jmp 0x83c1
movq -0x2b58(%rbp), %rdi
movq 0xa6be1(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x83d6
movq 0xa6c13(%rip), %rdi     # 0xaeff0
leaq 0x7dc4a(%rip), %rsi     # 0x8602e
callq 0x4380
movq %rax, -0x2b60(%rbp)
jmp 0x83f2
movq -0x2b60(%rbp), %rdi
movq 0xa6bb0(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8407
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa37b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0xe9(%rbp), %rdi
callq 0x43f0
jmp 0xa3e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8471
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4240
leaq -0x111(%rbp), %rdi
callq 0x43f0
jmp 0xa3d8
leaq -0x159(%rbp), %rdi
movq %rdi, -0x2b68(%rbp)
callq 0x4620
movq -0x2b68(%rbp), %rdx
leaq 0x7db83(%rip), %rsi     # 0x86026
leaq -0x158(%rbp), %rdi
callq 0xa430
jmp 0x84b1
leaq -0x40(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2b70(%rbp)
jmp 0x84ca
movq -0x2b70(%rbp), %rsi
leaq -0x138(%rbp), %rdi
callq 0x4190
jmp 0x84df
leaq -0x158(%rbp), %rdi
callq 0x4240
leaq -0x159(%rbp), %rdi
callq 0x43f0
leaq -0x188(%rbp), %rdi
callq 0xa6f0
leaq -0x390(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
movl $0x8, %edx
callq 0x45a0
jmp 0x851d
leaq -0x188(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x5bd10
movl %eax, -0x2b74(%rbp)
jmp 0x8538
movl -0x2b74(%rbp), %eax
movl %eax, -0x394(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x40b0
jmp 0x8552
cmpl $0x0, -0x394(%rbp)
jle 0x8630
movq 0xa6a62(%rip), %rdi     # 0xaefc8
leaq 0x7dae2(%rip), %rsi     # 0x8604f
callq 0x4380
movq %rax, -0x2b80(%rbp)
jmp 0x857b
movq -0x2b80(%rbp), %rdi
movq 0xa6a27(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8590
movq 0xa6a59(%rip), %rdi     # 0xaeff0
leaq 0x7dab1(%rip), %rsi     # 0x8604f
callq 0x4380
movq %rax, -0x2b88(%rbp)
jmp 0x85ac
movq -0x2b88(%rbp), %rdi
movq 0xa69f6(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x85c1
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0x8abb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x85fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4240
leaq -0x159(%rbp), %rdi
callq 0x43f0
jmp 0xa3d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8af0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8ae4
cmpl $0x2, -0x188(%rbp)
jne 0x866f
movq 0xa6988(%rip), %rdi     # 0xaefc8
leaq 0x7da21(%rip), %rsi     # 0x86068
callq 0x4380
movq %rax, -0x2b90(%rbp)
jmp 0x8655
movq -0x2b90(%rbp), %rdi
movq 0xa694d(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x866a
jmp 0x8aaa
leaq -0x5a0(%rbp), %rdi
leaq -0x138(%rbp), %rsi
movl $0x8, %edx
callq 0x45a0
jmp 0x8689
leaq -0x5a0(%rbp), %rdi
leaq -0x5a4(%rbp), %rsi
callq 0x4230
movq %rax, -0x2b98(%rbp)
jmp 0x86a5
movq -0x2b98(%rbp), %rdi
leaq -0x5a8(%rbp), %rsi
callq 0x4230
movq %rax, -0x2ba0(%rbp)
jmp 0x86c1
movq -0x2ba0(%rbp), %rdi
leaq -0x5ac(%rbp), %rsi
callq 0x4230
jmp 0x86d6
movslq -0x5a4(%rbp), %rax
movq %rax, -0x2bb0(%rbp)
leaq -0x5c9(%rbp), %rdi
movq %rdi, -0x2ba8(%rbp)
callq 0xa710
movq -0x2bb0(%rbp), %rsi
movq -0x2ba8(%rbp), %rdx
leaq -0x5c8(%rbp), %rdi
callq 0xa730
jmp 0x8713
leaq -0x5c9(%rbp), %rdi
callq 0xa7a0
movl $0x0, -0x5d0(%rbp)
movl -0x5d0(%rbp), %eax
cmpl -0x5a4(%rbp), %eax
jge 0x87ad
movslq -0x5d0(%rbp), %rsi
leaq -0x5c8(%rbp), %rdi
callq 0xa7c0
movq %rax, %rsi
leaq -0x5a0(%rbp), %rdi
callq 0x4230
jmp 0x875b
jmp 0x875d
movl -0x5d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5d0(%rbp)
jmp 0x8729
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8a9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x5c9(%rbp), %rdi
callq 0xa7a0
jmp 0x8a9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8a90
leaq -0x5e8(%rbp), %rdi
callq 0xa7e0
leaq -0x188(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x5f0(%rbp)
movq -0x5f0(%rbp), %rdi
callq 0xa800
movq %rax, -0x5f8(%rbp)
movq -0x5f0(%rbp), %rdi
callq 0xa830
movq %rax, -0x600(%rbp)
leaq -0x5f8(%rbp), %rdi
leaq -0x600(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x880d
jmp 0x88cf
leaq -0x5f8(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x604(%rbp)
movl -0x604(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cmpl -0x5a4(%rbp), %eax
jle 0x8838
jmp 0x88ad
cmpl $0x0, -0x604(%rbp)
jle 0x886a
movl -0x604(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
subl $0x1, %eax
movslq %eax, %rsi
leaq -0x5c8(%rbp), %rdi
callq 0xa7c0
movl (%rax), %eax
movl %eax, -0x604(%rbp)
jmp 0x8896
movl -0x604(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
subl $0x1, %eax
movslq %eax, %rsi
leaq -0x5c8(%rbp), %rdi
callq 0xa7c0
movq %rax, %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, -0x604(%rbp)
leaq -0x5e8(%rbp), %rdi
leaq -0x604(%rbp), %rsi
callq 0xa8c0
jmp 0x88ab
jmp 0x88ad
leaq -0x5f8(%rbp), %rdi
callq 0xa930
jmp 0x87f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8a84
leaq -0x640(%rbp), %rdi
callq 0xa950
leaq -0x5a0(%rbp), %rdi
leaq -0x644(%rbp), %rsi
callq 0x4230
jmp 0x88f0
leaq -0x638(%rbp), %rdi
movslq -0x644(%rbp), %rsi
callq 0xa990
jmp 0x8905
leaq -0x620(%rbp), %rdi
movslq -0x644(%rbp), %rsi
callq 0xaa20
jmp 0x891a
movl $0x0, -0x648(%rbp)
movl -0x648(%rbp), %eax
cmpl -0x644(%rbp), %eax
jge 0x8a21
leaq -0x638(%rbp), %rdi
movslq -0x648(%rbp), %rsi
callq 0xa7c0
movq %rax, %rsi
leaq -0x5a0(%rbp), %rdi
callq 0x4230
jmp 0x895a
leaq -0x5a0(%rbp), %rdi
leaq -0x64c(%rbp), %rsi
callq 0x4230
jmp 0x896f
leaq -0x620(%rbp), %rdi
movslq -0x648(%rbp), %rsi
callq 0xaab0
movq %rax, %rdi
movslq -0x64c(%rbp), %rsi
callq 0xa990
jmp 0x8993
movl $0x0, -0x650(%rbp)
movl -0x650(%rbp), %eax
cmpl -0x64c(%rbp), %eax
jge 0x8a0b
leaq -0x620(%rbp), %rdi
movslq -0x648(%rbp), %rsi
callq 0xaab0
movq %rax, %rdi
movslq -0x650(%rbp), %rsi
callq 0xa7c0
movq %rax, %rsi
leaq -0x5a0(%rbp), %rdi
callq 0x4230
jmp 0x89de
jmp 0x89e0
movl -0x650(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x650(%rbp)
jmp 0x899d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x640(%rbp), %rdi
callq 0xaad0
jmp 0x8a84
jmp 0x8a0d
movl -0x648(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x648(%rbp)
jmp 0x8924
movq -0x168(%rbp), %rcx
movl -0x5a8(%rbp), %r8d
movl -0x5ac(%rbp), %r9d
movq 0xa658b(%rip), %rsi     # 0xaefc8
leaq -0x640(%rbp), %rdi
leaq -0x5e8(%rbp), %rdx
callq 0x5e800
jmp 0x8a52
leaq -0x640(%rbp), %rdi
callq 0xaad0
leaq -0x5e8(%rbp), %rdi
callq 0xab00
leaq -0x5c8(%rbp), %rdi
callq 0xab00
leaq -0x5a0(%rbp), %rdi
callq 0x40e0
jmp 0x8aaa
leaq -0x5e8(%rbp), %rdi
callq 0xab00
leaq -0x5c8(%rbp), %rdi
callq 0xab00
leaq -0x5a0(%rbp), %rdi
callq 0x40e0
jmp 0x8ae4
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x40e0
leaq -0x188(%rbp), %rdi
callq 0xab60
leaq -0x138(%rbp), %rdi
callq 0x4240
jmp 0xa37b
leaq -0x390(%rbp), %rdi
callq 0x40e0
leaq -0x188(%rbp), %rdi
callq 0xab60
leaq -0x138(%rbp), %rdi
callq 0x4240
jmp 0xa3d8
leaq 0x7d494(%rip), %rsi     # 0x85fa8
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2bb1(%rbp)
jmp 0x8b28
movb -0x2bb1(%rbp), %al
testb $0x1, %al
jne 0x8b37
jmp 0x8d73
leaq -0x671(%rbp), %rdi
movq %rdi, -0x2bc0(%rbp)
callq 0x4620
movq -0x2bc0(%rbp), %rdx
movb $0x0, -0x69a(%rbp)
movb $0x0, -0x69b(%rbp)
leaq 0x7cf49(%rip), %rsi     # 0x85aaf
leaq -0x670(%rbp), %rdi
callq 0xa430
jmp 0x8b74
leaq -0x40(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2bc8(%rbp)
jmp 0x8b8d
movq -0x2bc8(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x2bc9(%rbp)
je 0x8c11
leaq -0x699(%rbp), %rdi
movq %rdi, -0x2bd8(%rbp)
callq 0x4620
movq -0x2bd8(%rbp), %rdx
movb $0x1, -0x69a(%rbp)
leaq 0x7cee5(%rip), %rsi     # 0x85aaf
leaq -0x698(%rbp), %rdi
callq 0xa430
jmp 0x8bd8
movb $0x1, -0x69b(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2be0(%rbp)
jmp 0x8bf8
movq -0x2be0(%rbp), %rdi
callq 0x42a0
cmpq $0x0, %rax
seta %al
movb %al, -0x2bc9(%rbp)
movb -0x2bc9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x2be1(%rbp)
testb $0x1, -0x69b(%rbp)
jne 0x8c2a
jmp 0x8c36
leaq -0x698(%rbp), %rdi
callq 0x4240
testb $0x1, -0x69a(%rbp)
jne 0x8c41
jmp 0x8c4d
leaq -0x699(%rbp), %rdi
callq 0x43f0
leaq -0x670(%rbp), %rdi
callq 0x4240
leaq -0x671(%rbp), %rdi
callq 0x43f0
movb -0x2be1(%rbp), %al
testb $0x1, %al
jne 0x8c74
jmp 0x8d71
movq 0xa634d(%rip), %rdi     # 0xaefc8
leaq 0x7d3f6(%rip), %rsi     # 0x86078
callq 0x4380
movq %rax, -0x2bf0(%rbp)
jmp 0x8c90
movq -0x2bf0(%rbp), %rdi
movq 0xa6312(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8ca5
movq 0xa6344(%rip), %rdi     # 0xaeff0
leaq 0x7d3c5(%rip), %rsi     # 0x86078
callq 0x4380
movq %rax, -0x2bf8(%rbp)
jmp 0x8cc1
movq -0x2bf8(%rbp), %rdi
movq 0xa62e1(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8cd6
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa37b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8d60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8d54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x8d3b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
testb $0x1, -0x69b(%rbp)
jne 0x8d2d
jmp 0x8d39
leaq -0x698(%rbp), %rdi
callq 0x4240
jmp 0x8d3b
testb $0x1, -0x69a(%rbp)
jne 0x8d46
jmp 0x8d52
leaq -0x699(%rbp), %rdi
callq 0x43f0
jmp 0x8d54
leaq -0x670(%rbp), %rdi
callq 0x4240
leaq -0x671(%rbp), %rdi
callq 0x43f0
jmp 0xa3d8
jmp 0x8d73
leaq -0x6c0(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4f00
jmp 0x8d85
leaq -0x40(%rbp), %rdi
callq 0x5240
movsd %xmm0, -0x2c00(%rbp)
jmp 0x8d98
movsd -0x2c00(%rbp), %xmm0
movsd %xmm0, -0x6c8(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5500
movb %al, -0x2c01(%rbp)
jmp 0x8db9
movb -0x2c01(%rbp), %al
andb $0x1, %al
movb %al, -0x6c9(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5890
movb %al, -0x2c02(%rbp)
jmp 0x8dd8
movb -0x2c02(%rbp), %al
andb $0x1, %al
movb %al, -0x6ca(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x5c20
movb %al, -0x2c03(%rbp)
jmp 0x8df7
movb -0x2c03(%rbp), %al
andb $0x1, %al
movb %al, -0x6cb(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x6200
movl %eax, -0x2c08(%rbp)
jmp 0x8e16
movl -0x2c08(%rbp), %eax
movl %eax, -0x6d0(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x6530
movb %al, -0x2c09(%rbp)
jmp 0x8e33
movb -0x2c09(%rbp), %al
andb $0x1, %al
movb %al, -0x6d1(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x68c0
movl %eax, -0x2c10(%rbp)
jmp 0x8e52
movl -0x2c10(%rbp), %eax
movl %eax, -0x6d8(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x6bf0
movl %eax, -0x2c14(%rbp)
jmp 0x8e6f
movl -0x2c14(%rbp), %eax
movl %eax, -0x6dc(%rbp)
leaq -0x8e8(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
movl $0x8, %edx
callq 0x45a0
jmp 0x8e95
movq -0x8e8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8e8(%rbp,%rax), %rdi
callq 0x4030
movb %al, -0x2c15(%rbp)
jmp 0x8eb5
movb -0x2c15(%rbp), %al
testb $0x1, %al
jne 0x8ec4
jmp 0x8f5e
movq 0xa60fd(%rip), %rdi     # 0xaefc8
leaq 0x7d1c0(%rip), %rsi     # 0x86092
callq 0x4380
movq %rax, -0x2c20(%rbp)
jmp 0x8ee0
movq -0x2c20(%rbp), %rdi
movq 0xa60c2(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8ef5
movq 0xa60f4(%rip), %rdi     # 0xaeff0
leaq 0x7d18f(%rip), %rsi     # 0x86092
callq 0x4380
movq %rax, -0x2c28(%rbp)
jmp 0x8f11
movq -0x2c28(%rbp), %rdi
movq 0xa6091(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x8f26
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa363
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3c0
leaq -0x970(%rbp), %rdi
movq %rdi, -0x2c38(%rbp)
callq 0xab80
movq -0x2c38(%rbp), %rdi
movzbl -0x6cb(%rbp), %edx
andl $0x1, %edx
leaq -0x8e8(%rbp), %rsi
callq 0x59960
movl %eax, -0x2c2c(%rbp)
jmp 0x8f96
movl -0x2c2c(%rbp), %eax
movl %eax, -0x974(%rbp)
leaq -0x8e8(%rbp), %rdi
callq 0x40b0
jmp 0x8fb0
cmpl $0x0, -0x974(%rbp)
jle 0x907e
movq 0xa6004(%rip), %rdi     # 0xaefc8
leaq 0x7d0e5(%rip), %rsi     # 0x860b0
callq 0x4380
movq %rax, -0x2c40(%rbp)
jmp 0x8fd9
movq -0x2c40(%rbp), %rdi
leaq -0x960(%rbp), %rsi
callq 0x4370
movq %rax, -0x2c48(%rbp)
jmp 0x8ff5
movq -0x2c48(%rbp), %rdi
movq 0xa5fad(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x900a
movq 0xa5fdf(%rip), %rdi     # 0xaeff0
leaq 0x7d098(%rip), %rsi     # 0x860b0
callq 0x4380
movq %rax, -0x2c50(%rbp)
jmp 0x9026
movq -0x2c50(%rbp), %rdi
leaq -0x960(%rbp), %rsi
callq 0x4370
movq %rax, -0x2c58(%rbp)
jmp 0x9042
movq -0x2c58(%rbp), %rdi
movq 0xa5f60(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9057
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3b4
movl $0x1, -0x978(%rbp)
leaq -0x999(%rbp), %rdi
movq %rdi, -0x2c60(%rbp)
callq 0x4620
movq -0x2c60(%rbp), %rdx
leaq 0x7d028(%rip), %rsi     # 0x860d1
leaq -0x998(%rbp), %rdi
callq 0xa430
jmp 0x90b7
leaq -0x40(%rbp), %rdi
leaq -0x998(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2c68(%rbp)
jmp 0x90d0
movq -0x2c68(%rbp), %rdi
leaq 0x7d000(%rip), %rsi     # 0x860de
callq 0xa640
movb %al, -0x2c69(%rbp)
jmp 0x90eb
leaq -0x998(%rbp), %rdi
callq 0x4240
leaq -0x999(%rbp), %rdi
callq 0x43f0
movb -0x2c69(%rbp), %al
testb $0x1, %al
jne 0x9112
jmp 0x92ad
movl -0x938(%rbp), %eax
movl %eax, -0x978(%rbp)
cmpl $0x2, -0x978(%rbp)
jne 0x916a
movl $0x1, -0x978(%rbp)
jmp 0x916a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9159
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x998(%rbp), %rdi
callq 0x4240
leaq -0x999(%rbp), %rdi
callq 0x43f0
jmp 0xa3b4
leaq -0x9c0(%rbp), %rdi
callq 0x4500
cmpl $0x1, -0x978(%rbp)
jne 0x91b3
leaq 0x7cf61(%rip), %rsi     # 0x860e7
leaq -0x9c0(%rbp), %rdi
callq 0x44f0
jmp 0x9194
jmp 0x91eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x9c0(%rbp), %rdi
callq 0x4240
jmp 0xa3b4
cmpl $0x3, -0x978(%rbp)
jne 0x91d3
leaq 0x7c00f(%rip), %rsi     # 0x851d2
leaq -0x9c0(%rbp), %rdi
callq 0x44f0
jmp 0x91d1
jmp 0x91e9
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0x928f
jmp 0x91eb
movq 0xa5dd6(%rip), %rdi     # 0xaefc8
leaq 0x7cf07(%rip), %rsi     # 0x86100
callq 0x4380
movq %rax, -0x2c78(%rbp)
jmp 0x9207
movq -0x2c78(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x4370
movq %rax, -0x2c80(%rbp)
jmp 0x9223
movq -0x2c80(%rbp), %rdi
movq 0xa5d7f(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9238
movq 0xa5db1(%rip), %rdi     # 0xaeff0
leaq 0x7cebc(%rip), %rsi     # 0x86102
callq 0x4380
movq %rax, -0x2c88(%rbp)
jmp 0x9254
movq -0x2c88(%rbp), %rdi
leaq -0x9c0(%rbp), %rsi
callq 0x4370
movq %rax, -0x2c90(%rbp)
jmp 0x9270
movq -0x2c90(%rbp), %rdi
movq 0xa5d32(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9285
movl $0x0, -0x118(%rbp)
leaq -0x9c0(%rbp), %rdi
callq 0x4240
movl -0x118(%rbp), %eax
testl %eax, %eax
jne 0xa357
jmp 0x92ab
jmp 0x92ad
leaq -0x40(%rbp), %rdi
callq 0x6f20
movl %eax, -0x2c94(%rbp)
jmp 0x92be
movl -0x2c94(%rbp), %eax
movl %eax, -0x9c4(%rbp)
leaq -0x930(%rbp), %rsi
leaq -0x918(%rbp), %rdx
movq -0x940(%rbp), %rcx
leaq -0x2260(%rbp), %rdi
xorl %r8d, %r8d
callq 0x77530
jmp 0x92f0
movzbl -0x6c9(%rbp), %esi
andl $0x1, %esi
leaq -0x2260(%rbp), %rdi
callq 0x78d30
jmp 0x9308
movzbl -0x6ca(%rbp), %esi
andl $0x1, %esi
leaq -0x2260(%rbp), %rdi
callq 0x78d60
jmp 0x9320
movl -0x6d0(%rbp), %esi
leaq -0x2260(%rbp), %rdi
callq 0x78d90
jmp 0x9334
movzbl -0x6d1(%rbp), %esi
andl $0x1, %esi
leaq -0x2260(%rbp), %rdi
callq 0x78db0
jmp 0x934c
movl -0x6d8(%rbp), %esi
leaq -0x2260(%rbp), %rdi
callq 0x78de0
jmp 0x9360
movl -0x6dc(%rbp), %esi
leaq -0x2260(%rbp), %rdi
callq 0x78e00
jmp 0x9374
leaq -0x2278(%rbp), %rdi
callq 0x60980
jmp 0x9382
leaq -0x2278(%rbp), %rdi
callq 0x609d0
jmp 0x9390
leaq -0x2298(%rbp), %rdi
leaq -0x6c0(%rbp), %rsi
callq 0x4190
jmp 0x93a5
movl -0x9c4(%rbp), %edx
movsd -0x6c8(%rbp), %xmm0
leaq -0x2260(%rbp), %rdi
leaq -0x2298(%rbp), %rsi
callq 0x77940
jmp 0x93c8
leaq -0x2298(%rbp), %rdi
callq 0x4240
leaq -0x2278(%rbp), %rdi
callq 0x60a10
jmp 0x93e2
movq 0xa5c07(%rip), %rdi     # 0xaeff0
leaq 0x7cd20(%rip), %rsi     # 0x86110
callq 0x4380
movq %rax, -0x2ca0(%rbp)
jmp 0x93fe
leaq -0x2278(%rbp), %rdi
callq 0x60a80
movsd %xmm0, -0x2ca8(%rbp)
jmp 0x9414
movsd -0x2ca8(%rbp), %xmm0
movsd %xmm0, -0x22a0(%rbp)
leaq -0x22a0(%rbp), %rdi
callq 0xabd0
movsd %xmm0, -0x2cb0(%rbp)
jmp 0x943a
movsd -0x2cb0(%rbp), %xmm0
movq -0x2ca0(%rbp), %rdi
callq 0x4660
movq %rax, -0x2cb8(%rbp)
jmp 0x9457
movq -0x2cb8(%rbp), %rdi
movq 0xa5b4b(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x946c
cmpl $0x0, -0x9c4(%rbp)
jle 0x94ba
movq 0xa5b74(%rip), %rsi     # 0xaeff0
leaq -0x2260(%rbp), %rdi
callq 0x79590
jmp 0x948a
jmp 0x94ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa3a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2298(%rbp), %rdi
callq 0x4240
jmp 0xa3a8
leaq 0x7caed(%rip), %rsi     # 0x85fae
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2cb9(%rbp)
jmp 0x94d5
movb -0x2cb9(%rbp), %al
testb $0x1, %al
jne 0x94e4
jmp 0x9843
cmpl $0x0, -0x9c4(%rbp)
jle 0x9504
movq 0xa5afc(%rip), %rsi     # 0xaeff0
leaq -0x2260(%rbp), %rdi
callq 0x79560
jmp 0x9502
jmp 0x9504
movq 0xa5abd(%rip), %rsi     # 0xaefc8
leaq -0x2260(%rbp), %rdi
callq 0x79560
jmp 0x9519
movq 0xa5aa8(%rip), %rsi     # 0xaefc8
leaq -0x2260(%rbp), %rdi
callq 0x79590
jmp 0x952e
movq 0xa5a93(%rip), %rsi     # 0xaefc8
leaq -0x2260(%rbp), %rdi
callq 0x795c0
jmp 0x9543
movl -0x978(%rbp), %edx
movq 0xa5a78(%rip), %rsi     # 0xaefc8
leaq -0x2260(%rbp), %rdi
callq 0x78e20
jmp 0x955e
leaq -0x22c1(%rbp), %rdi
movq %rdi, -0x2cc8(%rbp)
callq 0x4620
movq -0x2cc8(%rbp), %rdx
leaq 0x7caa7(%rip), %rsi     # 0x86026
leaq -0x22c0(%rbp), %rdi
callq 0xa430
jmp 0x958d
leaq -0x40(%rbp), %rdi
leaq -0x22c0(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2cd0(%rbp)
jmp 0x95a6
leaq -0x22c0(%rbp), %rdi
callq 0x4240
leaq -0x22c1(%rbp), %rdi
callq 0x43f0
movq -0x2cd0(%rbp), %rax
cmpq $0x0, %rax
je 0x97dd
leaq -0x2309(%rbp), %rdi
movq %rdi, -0x2cd8(%rbp)
callq 0x4620
movq -0x2cd8(%rbp), %rdx
leaq 0x7ca36(%rip), %rsi     # 0x86026
leaq -0x2308(%rbp), %rdi
callq 0xa430
jmp 0x95fe
leaq -0x40(%rbp), %rdi
leaq -0x2308(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2ce0(%rbp)
jmp 0x9617
movq -0x2ce0(%rbp), %rsi
leaq -0x22e8(%rbp), %rdi
callq 0x4190
jmp 0x962c
leaq -0x2308(%rbp), %rdi
callq 0x4240
leaq -0x2309(%rbp), %rdi
callq 0x43f0
movq 0xa597d(%rip), %rdi     # 0xaefc8
leaq 0x7cad0(%rip), %rsi     # 0x86122
callq 0x4380
movq %rax, -0x2ce8(%rbp)
jmp 0x9660
movq -0x2ce8(%rbp), %rdi
leaq -0x22e8(%rbp), %rsi
callq 0x4370
movq %rax, -0x2cf0(%rbp)
jmp 0x967c
movq -0x2cf0(%rbp), %rdi
movq 0xa5926(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9691
movq 0xa5958(%rip), %rdi     # 0xaeff0
leaq 0x7ca85(%rip), %rsi     # 0x86124
callq 0x4380
movq %rax, -0x2cf8(%rbp)
jmp 0x96ad
movq -0x2cf8(%rbp), %rdi
leaq -0x22e8(%rbp), %rsi
callq 0x4370
movq %rax, -0x2d00(%rbp)
jmp 0x96c9
movq -0x2d00(%rbp), %rdi
movq 0xa58d9(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x96de
leaq -0x2510(%rbp), %rdi
leaq -0x22e8(%rbp), %rsi
movl $0x10, %edx
callq 0x4680
jmp 0x96f8
leaq -0x2260(%rbp), %rdi
leaq -0x2510(%rbp), %rsi
callq 0x795f0
jmp 0x970d
leaq -0x2510(%rbp), %rdi
callq 0x4520
jmp 0x971b
leaq -0x2510(%rbp), %rdi
callq 0x4550
leaq -0x22e8(%rbp), %rdi
callq 0x4240
jmp 0x9841
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x975e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x22c0(%rbp), %rdi
callq 0x4240
leaq -0x22c1(%rbp), %rdi
callq 0x43f0
jmp 0xa3a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9795
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2308(%rbp), %rdi
callq 0x4240
leaq -0x2309(%rbp), %rdi
callq 0x43f0
jmp 0xa3a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x97cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2510(%rbp), %rdi
callq 0x4550
leaq -0x22e8(%rbp), %rdi
callq 0x4240
jmp 0xa3a8
movq 0xa57e4(%rip), %rdi     # 0xaefc8
leaq 0x7c95b(%rip), %rsi     # 0x86146
callq 0x4380
movq %rax, -0x2d08(%rbp)
jmp 0x97f9
movq -0x2d08(%rbp), %rdi
movq 0xa57a9(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x980e
movq 0xa57db(%rip), %rdi     # 0xaeff0
leaq 0x7c92c(%rip), %rsi     # 0x86148
callq 0x4380
movq %rax, -0x2d10(%rbp)
jmp 0x982a
movq -0x2d10(%rbp), %rdi
movq 0xa5778(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x983f
jmp 0x9841
jmp 0x9843
leaq 0x7c75e(%rip), %rsi     # 0x85fa8
leaq -0xc0(%rbp), %rdi
callq 0xa640
movb %al, -0x2d11(%rbp)
jmp 0x985e
movb -0x2d11(%rbp), %al
testb $0x1, %al
jne 0x986d
jmp 0xa341
leaq -0x2530(%rbp), %rdi
callq 0x4500
leaq -0x2551(%rbp), %rdi
movq %rdi, -0x2d20(%rbp)
callq 0x4620
movq -0x2d20(%rbp), %rdx
movb $0x0, -0x257a(%rbp)
movb $0x0, -0x257b(%rbp)
leaq 0x7c207(%rip), %rsi     # 0x85aaf
leaq -0x2550(%rbp), %rdi
callq 0xa430
jmp 0x98b6
leaq -0x40(%rbp), %rdi
leaq -0x2550(%rbp), %rsi
callq 0xa5e0
movq %rax, -0x2d28(%rbp)
jmp 0x98cf
movq -0x2d28(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x2d29(%rbp)
je 0x9953
leaq -0x2579(%rbp), %rdi
movq %rdi, -0x2d38(%rbp)
callq 0x4620
movq -0x2d38(%rbp), %rdx
movb $0x1, -0x257a(%rbp)
leaq 0x7c1a3(%rip), %rsi     # 0x85aaf
leaq -0x2578(%rbp), %rdi
callq 0xa430
jmp 0x991a
movb $0x1, -0x257b(%rbp)
leaq -0x40(%rbp), %rdi
leaq -0x2578(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2d40(%rbp)
jmp 0x993a
movq -0x2d40(%rbp), %rdi
callq 0x42a0
cmpq $0x0, %rax
seta %al
movb %al, -0x2d29(%rbp)
movb -0x2d29(%rbp), %al
movb %al, -0x2d41(%rbp)
testb $0x1, -0x257b(%rbp)
jne 0x996a
jmp 0x9976
leaq -0x2578(%rbp), %rdi
callq 0x4240
testb $0x1, -0x257a(%rbp)
jne 0x9981
jmp 0x998d
leaq -0x2579(%rbp), %rdi
callq 0x43f0
leaq -0x2550(%rbp), %rdi
callq 0x4240
leaq -0x2551(%rbp), %rdi
callq 0x43f0
movb -0x2d41(%rbp), %al
testb $0x1, %al
jne 0x99b4
jmp 0x9d5d
leaq -0x25a1(%rbp), %rdi
movq %rdi, -0x2d50(%rbp)
callq 0x4620
movq -0x2d50(%rbp), %rdx
leaq 0x7c0da(%rip), %rsi     # 0x85aaf
leaq -0x25a0(%rbp), %rdi
callq 0xa430
jmp 0x99e3
leaq -0x40(%rbp), %rdi
leaq -0x25a0(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2d58(%rbp)
jmp 0x99fc
movq -0x2d58(%rbp), %rsi
leaq -0x2530(%rbp), %rdi
callq 0x4060
jmp 0x9a11
leaq -0x25a0(%rbp), %rdi
callq 0x4240
leaq -0x25a1(%rbp), %rdi
callq 0x43f0
movq 0xa5598(%rip), %rdi     # 0xaefc8
leaq 0x7c747(%rip), %rsi     # 0x8617e
callq 0x4380
movq %rax, -0x2d60(%rbp)
jmp 0x9a45
movq -0x2d60(%rbp), %rdi
leaq -0x2530(%rbp), %rsi
callq 0x4370
movq %rax, -0x2d68(%rbp)
jmp 0x9a61
movq -0x2d68(%rbp), %rdi
movq 0xa5541(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9a76
movq 0xa5573(%rip), %rdi     # 0xaeff0
leaq 0x7c6fc(%rip), %rsi     # 0x86180
callq 0x4380
movq %rax, -0x2d70(%rbp)
jmp 0x9a92
movq -0x2d70(%rbp), %rdi
leaq -0x2530(%rbp), %rsi
callq 0x4370
movq %rax, -0x2d78(%rbp)
jmp 0x9aae
movq -0x2d78(%rbp), %rdi
movq 0xa54f4(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9ac3
movq 0xa54fe(%rip), %rdi     # 0xaefc8
leaq 0x7c6bd(%rip), %rsi     # 0x8618e
callq 0x4380
movq %rax, -0x2d80(%rbp)
jmp 0x9adf
leaq -0x25c9(%rbp), %rdi
movq %rdi, -0x2d88(%rbp)
callq 0x4620
movq -0x2d88(%rbp), %rdx
leaq 0x7c69e(%rip), %rsi     # 0x8619e
leaq -0x25c8(%rbp), %rdi
callq 0xa430
jmp 0x9b0e
leaq -0x40(%rbp), %rdi
leaq -0x25c8(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2d90(%rbp)
jmp 0x9b27
movq -0x2d90(%rbp), %rsi
movq -0x2d80(%rbp), %rdi
callq 0x4370
movq %rax, -0x2d98(%rbp)
jmp 0x9b43
movq -0x2d98(%rbp), %rdi
movq 0xa545f(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9b58
leaq -0x25c8(%rbp), %rdi
callq 0x4240
leaq -0x25c9(%rbp), %rdi
callq 0x43f0
movq 0xa5479(%rip), %rdi     # 0xaeff0
leaq 0x7c612(%rip), %rsi     # 0x86190
callq 0x4380
movq %rax, -0x2da0(%rbp)
jmp 0x9b8c
leaq -0x25f1(%rbp), %rdi
movq %rdi, -0x2da8(%rbp)
callq 0x4620
movq -0x2da8(%rbp), %rdx
leaq 0x7c5f1(%rip), %rsi     # 0x8619e
leaq -0x25f0(%rbp), %rdi
callq 0xa430
jmp 0x9bbb
leaq -0x40(%rbp), %rdi
leaq -0x25f0(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2db0(%rbp)
jmp 0x9bd4
movq -0x2db0(%rbp), %rsi
movq -0x2da0(%rbp), %rdi
callq 0x4370
movq %rax, -0x2db8(%rbp)
jmp 0x9bf0
movq -0x2db8(%rbp), %rdi
movq 0xa53b2(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9c05
leaq -0x25f0(%rbp), %rdi
callq 0x4240
leaq -0x25f1(%rbp), %rdi
callq 0x43f0
jmp 0x9dd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9c96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9c8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9c71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
testb $0x1, -0x257b(%rbp)
jne 0x9c63
jmp 0x9c6f
leaq -0x2578(%rbp), %rdi
callq 0x4240
jmp 0x9c71
testb $0x1, -0x257a(%rbp)
jne 0x9c7c
jmp 0x9c88
leaq -0x2579(%rbp), %rdi
callq 0x43f0
jmp 0x9c8a
leaq -0x2550(%rbp), %rdi
callq 0x4240
leaq -0x2551(%rbp), %rdi
callq 0x43f0
jmp 0xa333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9ccd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x25a0(%rbp), %rdi
callq 0x4240
leaq -0x25a1(%rbp), %rdi
callq 0x43f0
jmp 0xa333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9d15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x25c8(%rbp), %rdi
callq 0x4240
leaq -0x25c9(%rbp), %rdi
callq 0x43f0
jmp 0xa333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0x9d4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x25f0(%rbp), %rdi
callq 0x4240
leaq -0x25f1(%rbp), %rdi
callq 0x43f0
jmp 0xa333
movq 0xa5264(%rip), %rdi     # 0xaefc8
leaq 0x7c30d(%rip), %rsi     # 0x86078
callq 0x4380
movq %rax, -0x2dc0(%rbp)
jmp 0x9d79
movq -0x2dc0(%rbp), %rdi
movq 0xa5229(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9d8e
movq 0xa525b(%rip), %rdi     # 0xaeff0
leaq 0x7c2dc(%rip), %rsi     # 0x86078
callq 0x4380
movq %rax, -0x2dc8(%rbp)
jmp 0x9daa
movq -0x2dc8(%rbp), %rdi
movq 0xa51f8(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9dbf
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa301
leaq 0x7b76f(%rip), %rsi     # 0x8554b
leaq -0x27f8(%rbp), %rdi
movl $0x10, %edx
callq 0x4400
jmp 0x9def
movl -0x978(%rbp), %edx
leaq -0x2260(%rbp), %rdi
leaq -0x27f8(%rbp), %rsi
callq 0x78e20
jmp 0x9e0a
leaq -0x27f8(%rbp), %rdi
callq 0x4520
jmp 0x9e18
leaq -0x2810(%rbp), %rdi
callq 0x60980
jmp 0x9e26
leaq -0x2810(%rbp), %rdi
callq 0x609d0
jmp 0x9e34
leaq 0x7c36f(%rip), %rdx     # 0x861aa
leaq -0x2870(%rbp), %rdi
leaq -0x2530(%rbp), %rsi
callq 0xac90
jmp 0x9e50
leaq -0x2891(%rbp), %rdi
movq %rdi, -0x2dd0(%rbp)
callq 0x4620
movq -0x2dd0(%rbp), %rdx
leaq 0x7c32d(%rip), %rsi     # 0x8619e
leaq -0x2890(%rbp), %rdi
callq 0xa430
jmp 0x9e7f
leaq -0x40(%rbp), %rdi
leaq -0x2890(%rbp), %rsi
callq 0xa4e0
movq %rax, -0x2dd8(%rbp)
jmp 0x9e98
movq -0x2dd8(%rbp), %rdx
leaq -0x2850(%rbp), %rdi
leaq -0x2870(%rbp), %rsi
callq 0xac40
jmp 0x9eb4
leaq 0x7b6bf(%rip), %rdx     # 0x8557a
leaq -0x2830(%rbp), %rdi
leaq -0x2850(%rbp), %rsi
callq 0xabf0
jmp 0x9ed0
leaq -0x2830(%rbp), %rdi
callq 0x4170
movq %rax, %rdi
callq 0x4340
movl %eax, -0x2ddc(%rbp)
jmp 0x9eec
leaq -0x2830(%rbp), %rdi
callq 0x4240
leaq -0x2850(%rbp), %rdi
callq 0x4240
leaq -0x2890(%rbp), %rdi
callq 0x4240
leaq -0x2891(%rbp), %rdi
callq 0x43f0
leaq -0x2870(%rbp), %rdi
callq 0x4240
movl -0x2ddc(%rbp), %eax
cmpl $0x0, %eax
je 0xa037
movq 0xa508a(%rip), %rdi     # 0xaefc8
leaq 0x7c279(%rip), %rsi     # 0x861be
callq 0x4380
movq %rax, -0x2de8(%rbp)
jmp 0x9f53
movq -0x2de8(%rbp), %rdi
movq 0xa504f(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9f68
movq 0xa5081(%rip), %rdi     # 0xaeff0
leaq 0x7c248(%rip), %rsi     # 0x861be
callq 0x4380
movq %rax, -0x2df0(%rbp)
jmp 0x9f84
movq -0x2df0(%rbp), %rdi
movq 0xa501e(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0x9f99
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa2f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa01a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa00e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2830(%rbp), %rdi
callq 0x4240
leaq -0x2850(%rbp), %rdi
callq 0x4240
leaq -0x2890(%rbp), %rdi
callq 0x4240
leaq -0x2891(%rbp), %rdi
callq 0x43f0
leaq -0x2870(%rbp), %rdi
callq 0x4240
jmp 0xa327
leaq -0x2810(%rbp), %rdi
callq 0x60a10
jmp 0xa045
leaq -0x28c0(%rbp), %rdi
callq 0xa6f0
leaq 0x7b525(%rip), %rsi     # 0x8557d
leaq -0x2ac8(%rbp), %rdi
movl $0x8, %edx
callq 0x4640
jmp 0xa06b
leaq -0x28c0(%rbp), %rdi
leaq -0x2ac8(%rbp), %rsi
callq 0x5bd10
movl %eax, -0x2df4(%rbp)
jmp 0xa086
movl -0x2df4(%rbp), %eax
movl %eax, -0x974(%rbp)
leaq -0x2ac8(%rbp), %rdi
callq 0x40b0
jmp 0xa0a0
cmpl $0x0, -0x974(%rbp)
jle 0xa153
movq 0xa4f14(%rip), %rdi     # 0xaefc8
leaq 0x7bf94(%rip), %rsi     # 0x8604f
callq 0x4380
movq %rax, -0x2e00(%rbp)
jmp 0xa0c9
movq -0x2e00(%rbp), %rdi
movq 0xa4ed9(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0xa0de
movq 0xa4f0b(%rip), %rdi     # 0xaeff0
leaq 0x7bf63(%rip), %rsi     # 0x8604f
callq 0x4380
movq %rax, -0x2e08(%rbp)
jmp 0xa0fa
movq -0x2e08(%rbp), %rdi
movq 0xa4ea8(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0xa10f
movl $0x0, -0x4(%rbp)
movl $0x1, -0x118(%rbp)
jmp 0xa2dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xa31b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x2ac8(%rbp), %rdi
callq 0x40e0
jmp 0xa31b
cmpl $0x2, -0x28c0(%rbp)
jne 0xa18f
movq 0xa4e65(%rip), %rdi     # 0xaefc8
leaq 0x7befe(%rip), %rsi     # 0x86068
callq 0x4380
movq %rax, -0x2e10(%rbp)
jmp 0xa178
movq -0x2e10(%rbp), %rdi
movq 0xa4e2a(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0xa18d
jmp 0xa1b4
leaq -0x28b8(%rbp), %rsi
movq -0x28a0(%rbp), %rcx
movq 0xa4e24(%rip), %rdx     # 0xaefc8
leaq -0x2260(%rbp), %rdi
callq 0x78070
jmp 0xa1b2
jmp 0xa1b4
movq 0xa4e35(%rip), %rdi     # 0xaeff0
leaq 0x7bf4e(%rip), %rsi     # 0x86110
callq 0x4380
movq %rax, -0x2e18(%rbp)
jmp 0xa1d0
leaq -0x2278(%rbp), %rdi
callq 0x60a80
movsd %xmm0, -0x2e20(%rbp)
jmp 0xa1e6
movsd -0x2e20(%rbp), %xmm0
movsd %xmm0, -0x2ad0(%rbp)
leaq -0x2ad0(%rbp), %rdi
callq 0xabd0
movsd %xmm0, -0x2e28(%rbp)
jmp 0xa20c
movsd -0x2e28(%rbp), %xmm0
movq -0x2e18(%rbp), %rdi
callq 0x4660
movq %rax, -0x2e30(%rbp)
jmp 0xa229
movq -0x2e30(%rbp), %rdi
leaq 0x7bf94(%rip), %rsi     # 0x861cb
callq 0x4380
movq %rax, -0x2e38(%rbp)
jmp 0xa245
leaq -0x2810(%rbp), %rdi
callq 0x60a80
movsd %xmm0, -0x2e40(%rbp)
jmp 0xa25b
movsd -0x2e40(%rbp), %xmm0
movsd %xmm0, -0x2ad8(%rbp)
leaq -0x2ad8(%rbp), %rdi
callq 0xabd0
movsd %xmm0, -0x2e48(%rbp)
jmp 0xa281
movsd -0x2e48(%rbp), %xmm0
movq -0x2e38(%rbp), %rdi
callq 0x4660
movq %rax, -0x2e50(%rbp)
jmp 0xa29e
movq -0x2e50(%rbp), %rdi
movq 0xa4d04(%rip), %rsi     # 0xaefb0
callq 0x43d0
jmp 0xa2b3
cmpl $0x0, -0x9c4(%rbp)
jle 0xa2d3
movq 0xa4d2d(%rip), %rsi     # 0xaeff0
leaq -0x2260(%rbp), %rdi
callq 0x79590
jmp 0xa2d1
jmp 0xa2d3
movl $0x0, -0x118(%rbp)
leaq -0x2ac8(%rbp), %rdi
callq 0x40e0
leaq -0x28c0(%rbp), %rdi
callq 0xab60
leaq -0x27f8(%rbp), %rdi
callq 0x4550
leaq -0x2530(%rbp), %rdi
callq 0x4240
movl -0x118(%rbp), %eax
testl %eax, %eax
jne 0xa34b
jmp 0xa319
jmp 0xa341
leaq -0x28c0(%rbp), %rdi
callq 0xab60
leaq -0x27f8(%rbp), %rdi
callq 0x4550
leaq -0x2530(%rbp), %rdi
callq 0x4240
jmp 0xa3a8
movl $0x0, -0x118(%rbp)
leaq -0x2260(%rbp), %rdi
callq 0xad10
leaq -0x970(%rbp), %rdi
callq 0xad70
leaq -0x8e8(%rbp), %rdi
callq 0x40e0
leaq -0x6c0(%rbp), %rdi
callq 0x4240
leaq -0xe8(%rbp), %rdi
callq 0x4240
leaq -0xc0(%rbp), %rdi
callq 0x4240
leaq -0x40(%rbp), %rdi
callq 0xa5c0
movl -0x4(%rbp), %eax
addq $0x2e50, %rsp           # imm = 0x2E50
popq %rbp
retq
leaq -0x2260(%rbp), %rdi
callq 0xad10
leaq -0x970(%rbp), %rdi
callq 0xad70
leaq -0x8e8(%rbp), %rdi
callq 0x40e0
leaq -0x6c0(%rbp), %rdi
callq 0x4240
leaq -0xe8(%rbp), %rdi
callq 0x4240
leaq -0xc0(%rbp), %rdi
callq 0x4240
leaq -0x40(%rbp), %rdi
callq 0xa5c0
movq -0x70(%rbp), %rdi
callq 0x4610
nopw %cs:(%rax,%rax)
nopl (%rax)