// File: Laakeri[P]Triangulator/src/PMC.cpp
// Function: PMC::solvedp(Graph const&, std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int>>>>, PMC::valueT, PMC::valueT, int)
vector<pair<int, int> > solvedp(const Graph& G, vector<vector<int> > PMCs, valueT lowerBound, valueT upperBound, int PROBLEM) {
	map<vector<int>, int> sepsMap, ccsMap;
	vector<vector<int> > seps, ccs;
	vector<pair<pair<int, int>, int> > niceTrp;
	assert(G.isConnected());
	if (PMCs.size() == 0) return FAILSOLUTION;
	
	for (int i = 0; i < (int)PMCs.size(); i++) {
		for (int j = 0; j < G.n; j++) {
			u[j] = 0;
		}
		for (int x : PMCs[i]) {
			u[x] = 2;
		}
		for (int ii = 0; ii < G.n; ii++) {
			if (u[ii] == 0) {
				vector<int> nb;
				dfs4(G, ii, nb);
				assert(nb.size() > 0 && nb.size() < PMCs[i].size());
				for (int j = 0; j < G.n; j++) {
					u2[j] = 0;
				}
				int ff = 0;
				vector<int> co;
				for (int x : PMCs[i]) {
					if (u[x] == 2) {
						ff = dfs5(G, x, co);
						break;
					}
				}
				assert(ff > 0 && ff + (int)nb.size() == (int)PMCs[i].size());
				for (int a : nb) {
					u[a] = 2;
				}
				sort(nb.begin(), nb.end());
				if (!sepsMap.count(nb)) {
					sepsMap[nb] = seps.size();
					seps.push_back(nb);
				}
				sort(co.begin(), co.end());
				if (!ccsMap.count(co)) {
					ccsMap[co] = ccs.size();
					ccs.push_back(co);
				}
				niceTrp.push_back({{sepsMap[nb], ccsMap[co]}, i});
			}
		}
	}
	vector<int> all;
	for (int i = 0; i < G.n; i++) all.push_back(i);
	assert(!sepsMap.count({}));
	assert(!ccsMap.count(all));
	sepsMap[{}] = seps.size();
	ccsMap[all] = ccs.size();
	seps.push_back({});
	ccs.push_back(all);
	pair<int, int> rootState = {(int)seps.size()-1, (int)ccs.size()-1};
	for (int i = 0; i < (int)PMCs.size(); i++) {
		niceTrp.push_back({rootState, i});
	}
	auto cmp = [&](pair<pair<int, int>, int> a, pair<pair<int, int>, int> b) {
		if (seps[a.F.F].size() + ccs[a.F.S].size() != seps[b.F.F].size() + ccs[b.F.S].size()) {
			return seps[a.F.F].size() + ccs[a.F.S].size() < seps[b.F.F].size() + ccs[b.F.S].size();
		}
		else {
			return a<b;
		}
	};
	sort(niceTrp.begin(), niceTrp.end(), cmp);
	map<pair<int, int>, pair<valueT, int> > dp;
	
	for (auto trp : niceTrp) {
		assert(trp.F.F < (int)seps.size());
		assert(trp.F.S < (int)ccs.size());
		vector<int> sep = seps[trp.F.F];
		vector<int> co = ccs[trp.F.S];
		vector<int> uni = sep;
		uni.insert(uni.end(), co.begin(), co.end());
		sort(uni.begin(), uni.end());
		// just assert things
		for (int i = 1; i < (int)uni.size(); i++) {
			assert(uni[i] != uni[i-1]);
		}
		for (int x : PMCs[trp.S]) {
			assert(binary_search(uni.begin(), uni.end(), x));
		}
		for (int x : sep) {
			assert(binary_search(PMCs[trp.S].begin(), PMCs[trp.S].end(), x));
		}
		// assert ends
		
		valueT tval;
		if (PROBLEM == PROBLEM_MINFILL || PROBLEM == PROBLEM_TREEWIDTH || PROBLEM == PROBLEM_BAYES || PROBLEM == PROBLEM_HYPER || PROBLEM == PROBLEM_DECIDE) {
			tval.setV((int64_t)0);
		}
		else if (PROBLEM == PROBLEM_FRACHYPER) {
			tval.setV((ld)0);
		}
		else {
			assert(0);
		}
		
		bool failed = false;
		if (PMCs[trp.S].size() == uni.size()) {
		}
		else {
			for (int i = 0; i < G.n; i++) {
				u[i] = -1;
			}
			for (int x : uni) {
				u[x] = 0;
			}
			for (int x : PMCs[trp.S]) {
				u[x] = 2;
			}
			it = 2;
			for (int x : uni) {
				if (u[x] == 0) {
					it++;
					vector<int> nco;
					vector<int> nsep;
					dfs6(G, x, nco, nsep);
					assert(nco.size() > 0 && nco.size() < co.size());
					assert(nsep.size() > 0 && nsep.size() < PMCs[trp.S].size());
					sort(nco.begin(), nco.end());
					sort(nsep.begin(), nsep.end());
					assert(nco.size() + nsep.size() < co.size() + sep.size());
					
					if (!ccsMap.count(nco) || !sepsMap.count(nsep)) {
						failed = true;
						break;
					}
					else {
						pair<int, int> id = {sepsMap[nsep], ccsMap[nco]};
						if (!dp.count(id)) {
							failed = true;
							break;
						}
						else {
							tval = mergeCost(tval, dp[id].F, PROBLEM);
						}
					}
				}
			}
		}
		
		valueT cost = cliqueCost(G, PMCs[trp.S], sep, PROBLEM, tval, upperBound);
		
		assert(cost <= upperBound);
		
		tval = mergeCost(tval, cost, PROBLEM);
		
		if (!failed && tval <= upperBound) {
			if (!dp.count(trp.F)) {
				dp[trp.F] = {tval, trp.S};
			}
			else {
				if (tval < dp[trp.F].F) {
					dp[trp.F] = {tval, trp.S};
				}
			}
		}
	}
	if (!dp.count(rootState)) return FAILSOLUTION;
	vector<pair<int, int> > sol;
	queue<pair<int, int> > reconstruct;
	reconstruct.push(rootState);
	while (!reconstruct.empty()) {
		pair<int, int> state = reconstruct.front();
		reconstruct.pop();
		assert(dp.count(state));
		pair<pair<int, int>, int> trp = {state, dp[state].S};
		
		assert(trp.F.F < (int)seps.size());
		assert(trp.F.S < (int)ccs.size());
		vector<int> sep = seps[trp.F.F];
		vector<int> co = ccs[trp.F.S];
		vector<int> uni = sep;
		uni.insert(uni.end(), co.begin(), co.end());
		sort(uni.begin(), uni.end());
		// just assert things
		for (int i = 1; i < (int)uni.size(); i++) {
			assert(uni[i] != uni[i-1]);
		}
		for (int x : PMCs[trp.S]) {
			assert(binary_search(uni.begin(), uni.end(), x));
		}
		for (int x : sep) {
			assert(binary_search(PMCs[trp.S].begin(), PMCs[trp.S].end(), x));
		}
		// assert ends
		
		for (int i = 0; i < (int)PMCs[trp.S].size(); i++) {
			for (int ii = i+1; ii < (int)PMCs[trp.S].size(); ii++) {
				int a = PMCs[trp.S][i];
				int b = PMCs[trp.S][ii];
				if (!G.hasEdge(a, b)) {
					if (!binary_search(sep.begin(), sep.end(), a) || !binary_search(sep.begin(), sep.end(), b)) {
						sol.push_back({a, b});
					}
				}
			}
		}
		
		if (PMCs[trp.S].size() != uni.size()) {
			for (int i = 0; i < G.n; i++) {
				u[i] = -1;
			}
			for (int x : uni) {
				u[x] = 0;
			}
			for (int x : PMCs[trp.S]) {
				u[x] = 2;
			}
			it = 2;
			for (int x : uni) {
				if (u[x] == 0) {
					it++;
					vector<int> nco;
					vector<int> nsep;
					dfs6(G, x, nco, nsep);
					assert(nco.size() > 0 && nco.size() < co.size());
					assert(nsep.size() > 0 && nsep.size() < PMCs[trp.S].size());
					sort(nco.begin(), nco.end());
					sort(nsep.begin(), nsep.end());
					assert(nco.size() + nsep.size() < co.size() + sep.size());
					
					assert(ccsMap.count(nco) && sepsMap.count(nsep));
					pair<int, int> id = {sepsMap[nsep], ccsMap[nco]};
					reconstruct.push(id);
				}
			}
		}
	}
	if (PROBLEM == PROBLEM_MINFILL) assert((int64_t)sol.size() == dp[rootState].F.valInt);
	sort(sol.begin(), sol.end());
	for (int i = 1; i < (int)sol.size(); i++) {
		assert(sol[i] != sol[i-1]);
	}
	if (PROBLEM == PROBLEM_MINFILL) assert((int64_t)sol.size() >= lowerBound.valInt);
	return sol;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xce0, %rsp            # imm = 0xCE0
movq %rdx, -0x970(%rbp)
movq %rdi, -0x968(%rbp)
movq %rdi, %rax
movq %rax, -0x960(%rbp)
leaq 0x40(%rbp), %rax
movq %rax, -0x958(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x950(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x43910
leaq -0x80(%rbp), %rdi
callq 0x43910
leaq -0x98(%rbp), %rdi
callq 0x17630
leaq -0xb0(%rbp), %rdi
callq 0x17630
leaq -0xc8(%rbp), %rdi
callq 0x43930
movq -0x10(%rbp), %rdi
callq 0x16d00
movb %al, -0x945(%rbp)
jmp 0x3e7af
movb -0x945(%rbp), %al
testb $0x1, %al
jne 0x3e7bb
jmp 0x3e7bd
jmp 0x3e7f3
leaq 0x1c46b(%rip), %rdi     # 0x5ac2f
leaq 0x1beab(%rip), %rsi     # 0x5a676
movl $0x23f, %edx            # imm = 0x23F
leaq 0x1c58f(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x4138e
movq -0x970(%rbp), %rdi
callq 0x5e80
cmpq $0x0, %rax
jne 0x3e829
movq -0x968(%rbp), %rdi
leaq 0x5f48bd(%rip), %rsi    # 0x6330d0
callq 0x56a0
jmp 0x3e81a
movl $0x1, -0xd8(%rbp)
jmp 0x41348
movl $0x0, -0xdc(%rbp)
movq -0x970(%rbp), %rdi
movl -0xdc(%rbp), %eax
movl %eax, -0x974(%rbp)
callq 0x5e80
movq %rax, %rcx
movl -0x974(%rbp), %eax
cmpl %ecx, %eax
jge 0x3eecd
movl $0x0, -0xe0(%rbp)
movl -0xe0(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x3e89b
movslq -0xe0(%rbp), %rcx
leaq 0x5f486d(%rip), %rax    # 0x6330f0
movl $0x0, (%rax,%rcx,4)
movl -0xe0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xe0(%rbp)
jmp 0x3e866
movq -0x970(%rbp), %rdi
movslq -0xdc(%rbp), %rsi
callq 0x178a0
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rdi
callq 0xe060
movq %rax, -0xf0(%rbp)
movq -0xe8(%rbp), %rdi
callq 0xe090
movq %rax, -0xf8(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3e8f4
jmp 0x3e92b
leaq -0xf0(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0xfc(%rbp)
movslq -0xfc(%rbp), %rcx
leaq 0x5f47da(%rip), %rax    # 0x6330f0
movl $0x2, (%rax,%rcx,4)
leaq -0xf0(%rbp), %rdi
callq 0xe120
jmp 0x3e8db
movl $0x0, -0x100(%rbp)
movl -0x100(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x3eeb7
movslq -0x100(%rbp), %rcx
leaq 0x5f479a(%rip), %rax    # 0x6330f0
cmpl $0x0, (%rax,%rcx,4)
jne 0x3eea1
leaq -0x118(%rbp), %rdi
movq %rdi, -0x980(%rbp)
callq 0xdf40
movq -0x980(%rbp), %rdx
movq -0x10(%rbp), %rdi
movl -0x100(%rbp), %esi
callq 0x3ca30
jmp 0x3e98b
leaq -0x118(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x981(%rbp)
jbe 0x3e9ec
leaq -0x118(%rbp), %rdi
callq 0x59a0
movq -0x970(%rbp), %rdi
movq %rax, -0x990(%rbp)
movslq -0xdc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq -0x990(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0x981(%rbp)
movb -0x981(%rbp), %al
testb $0x1, %al
jne 0x3e9f8
jmp 0x3e9fa
jmp 0x3ea30
leaq 0x1c3c2(%rip), %rdi     # 0x5adc3
leaq 0x1bc6e(%rip), %rsi     # 0x5a676
movl $0x24d, %edx            # imm = 0x24D
leaq 0x1c352(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x3ee90
movl $0x0, -0x11c(%rbp)
movl -0x11c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x3ea6f
movslq -0x11c(%rbp), %rcx
leaq 0x6253d9(%rip), %rax    # 0x663e30
movl $0x0, (%rax,%rcx,4)
movl -0x11c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x11c(%rbp)
jmp 0x3ea3a
movl $0x0, -0x120(%rbp)
leaq -0x138(%rbp), %rdi
callq 0xdf40
movq -0x970(%rbp), %rdi
movslq -0xdc(%rbp), %rsi
callq 0x178a0
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rdi
callq 0xe060
movq %rax, -0x148(%rbp)
movq -0x140(%rbp), %rdi
callq 0xe090
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3eae1
jmp 0x3eb6b
leaq -0x148(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x154(%rbp)
movslq -0x154(%rbp), %rcx
leaq 0x5f45ed(%rip), %rax    # 0x6330f0
cmpl $0x2, (%rax,%rcx,4)
jne 0x3eb58
movq -0x10(%rbp), %rdi
movl -0x154(%rbp), %esi
leaq -0x138(%rbp), %rdx
callq 0x3e480
movl %eax, -0x994(%rbp)
jmp 0x3eb27
movl -0x994(%rbp), %eax
movl %eax, -0x120(%rbp)
jmp 0x3eb6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x6d30
jmp 0x3ee90
jmp 0x3eb5a
leaq -0x148(%rbp), %rdi
callq 0xe120
jmp 0x3eac5
xorl %eax, %eax
cmpl $0x0, -0x120(%rbp)
movb %al, -0x995(%rbp)
jle 0x3ebd4
movl -0x120(%rbp), %eax
movl %eax, -0x9a0(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x59a0
movq -0x970(%rbp), %rdi
movq %rax, %rcx
movl -0x9a0(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x99c(%rbp)
movslq -0xdc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movl -0x99c(%rbp), %eax
cmpl %ecx, %eax
sete %al
movb %al, -0x995(%rbp)
movb -0x995(%rbp), %al
testb $0x1, %al
jne 0x3ebe0
jmp 0x3ebe2
jmp 0x3ec01
leaq 0x1c206(%rip), %rdi     # 0x5adef
leaq 0x1ba86(%rip), %rsi     # 0x5a676
movl $0x259, %edx            # imm = 0x259
leaq 0x1c16a(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x118(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rdi
callq 0xe060
movq %rax, -0x168(%rbp)
movq -0x160(%rbp), %rdi
callq 0xe090
movq %rax, -0x170(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3ec4e
jmp 0x3ec85
leaq -0x168(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x174(%rbp)
movslq -0x174(%rbp), %rcx
leaq 0x5f4480(%rip), %rax    # 0x6330f0
movl $0x2, (%rax,%rcx,4)
leaq -0x168(%rbp), %rdi
callq 0xe120
jmp 0x3ec35
leaq -0x118(%rbp), %rdi
movq %rdi, -0x9a8(%rbp)
callq 0xe060
movq -0x9a8(%rbp), %rdi
movq %rax, -0x180(%rbp)
callq 0xe090
movq %rax, -0x188(%rbp)
movq -0x180(%rbp), %rdi
movq -0x188(%rbp), %rsi
callq 0x176e0
jmp 0x3ecc7
leaq -0x50(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x43950
movq %rax, -0x9b0(%rbp)
jmp 0x3ece0
movq -0x9b0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3ed3e
leaq -0x98(%rbp), %rdi
callq 0x5e80
movl %eax, -0x9bc(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x439b0
movq %rax, -0x9b8(%rbp)
jmp 0x3ed18
movq -0x9b8(%rbp), %rax
movl -0x9bc(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x98(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x17bb0
jmp 0x3ed3c
jmp 0x3ed3e
leaq -0x138(%rbp), %rdi
movq %rdi, -0x9c8(%rbp)
callq 0xe060
movq -0x9c8(%rbp), %rdi
movq %rax, -0x190(%rbp)
callq 0xe090
movq %rax, -0x198(%rbp)
movq -0x190(%rbp), %rdi
movq -0x198(%rbp), %rsi
callq 0x176e0
jmp 0x3ed80
leaq -0x80(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x43950
movq %rax, -0x9d0(%rbp)
jmp 0x3ed99
movq -0x9d0(%rbp), %rax
cmpq $0x0, %rax
jne 0x3edf7
leaq -0xb0(%rbp), %rdi
callq 0x5e80
movl %eax, -0x9dc(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x439b0
movq %rax, -0x9d8(%rbp)
jmp 0x3edd1
movq -0x9d8(%rbp), %rax
movl -0x9dc(%rbp), %ecx
movl %ecx, (%rax)
leaq -0xb0(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x17bb0
jmp 0x3edf5
jmp 0x3edf7
leaq -0x50(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x439b0
movq %rax, -0x9e8(%rbp)
jmp 0x3ee10
leaq -0x80(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x439b0
movq %rax, -0x9f0(%rbp)
jmp 0x3ee29
movq -0x9f0(%rbp), %rdx
movq -0x9e8(%rbp), %rsi
leaq -0x1ac(%rbp), %rdi
callq 0xdfc0
jmp 0x3ee45
leaq -0x1a4(%rbp), %rdi
leaq -0x1ac(%rbp), %rsi
leaq -0xdc(%rbp), %rdx
callq 0x43ac0
jmp 0x3ee61
leaq -0xc8(%rbp), %rdi
leaq -0x1a4(%rbp), %rsi
callq 0x43a90
jmp 0x3ee76
leaq -0x138(%rbp), %rdi
callq 0x6d30
leaq -0x118(%rbp), %rdi
callq 0x6d30
jmp 0x3eea1
leaq -0x118(%rbp), %rdi
callq 0x6d30
jmp 0x4138e
jmp 0x3eea3
movl -0x100(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x100(%rbp)
jmp 0x3e935
jmp 0x3eeb9
movl -0xdc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xdc(%rbp)
jmp 0x3e833
leaq -0x1c8(%rbp), %rdi
callq 0xdf40
movl $0x0, -0x1cc(%rbp)
movl -0x1cc(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x3ef31
leaq -0x1c8(%rbp), %rdi
leaq -0x1cc(%rbp), %rsi
callq 0xdff0
jmp 0x3ef07
jmp 0x3ef09
movl -0x1cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1cc(%rbp)
jmp 0x3eee3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x4133a
xorps %xmm0, %xmm0
movaps %xmm0, -0x1f0(%rbp)
movq $0x0, -0x1e0(%rbp)
leaq -0x1f0(%rbp), %rdi
movq %rdi, -0xa00(%rbp)
callq 0xdf40
movq -0xa00(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x43950
movq %rax, -0x9f8(%rbp)
jmp 0x3ef72
movq -0x9f8(%rbp), %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3ef88
jmp 0x3ef8a
jmp 0x3efcc
leaq 0x1be93(%rip), %rdi     # 0x5ae24
leaq 0x1b6de(%rip), %rsi     # 0x5a676
movl $0x26d, %edx            # imm = 0x26D
leaq 0x1bdc2(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x6d30
jmp 0x4133a
leaq -0x1f0(%rbp), %rdi
callq 0x6d30
leaq -0x80(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x43950
movq %rax, -0xa08(%rbp)
jmp 0x3eff1
movq -0xa08(%rbp), %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3f007
jmp 0x3f009
jmp 0x3f028
leaq 0x1be27(%rip), %rdi     # 0x5ae37
leaq 0x1b65f(%rip), %rsi     # 0x5a676
movl $0x26e, %edx            # imm = 0x26E
leaq 0x1bd43(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x5e80
movl %eax, -0xa1c(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x210(%rbp)
movq $0x0, -0x200(%rbp)
leaq -0x210(%rbp), %rdi
movq %rdi, -0xa18(%rbp)
callq 0xdf40
movq -0xa18(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x43af0
movq %rax, -0xa10(%rbp)
jmp 0x3f07b
movq -0xa10(%rbp), %rax
movl -0xa1c(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x210(%rbp), %rdi
callq 0x6d30
leaq -0xb0(%rbp), %rdi
callq 0x5e80
movl %eax, -0xa2c(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x439b0
movq %rax, -0xa28(%rbp)
jmp 0x3f0c1
movq -0xa28(%rbp), %rax
movl -0xa2c(%rbp), %ecx
movl %ecx, (%rax)
xorps %xmm0, %xmm0
movaps %xmm0, -0x230(%rbp)
movq $0x0, -0x220(%rbp)
leaq -0x230(%rbp), %rdi
movq %rdi, -0xa38(%rbp)
callq 0xdf40
movq -0xa38(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0x26d00
jmp 0x3f10d
leaq -0x230(%rbp), %rdi
callq 0x6d30
leaq -0xb0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x17bb0
jmp 0x3f12e
leaq -0x98(%rbp), %rdi
callq 0x5e80
decl %eax
movl %eax, -0x23c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5e80
decl %eax
movl %eax, -0x240(%rbp)
leaq -0x238(%rbp), %rdi
leaq -0x23c(%rbp), %rsi
leaq -0x240(%rbp), %rdx
callq 0x5380
jmp 0x3f172
movl $0x0, -0x244(%rbp)
movq -0x970(%rbp), %rdi
movl -0x244(%rbp), %eax
movl %eax, -0xa3c(%rbp)
callq 0x5e80
movq %rax, %rcx
movl -0xa3c(%rbp), %eax
cmpl %ecx, %eax
jge 0x3f22f
leaq -0x250(%rbp), %rdi
leaq -0x238(%rbp), %rsi
leaq -0x244(%rbp), %rdx
callq 0x43bd0
jmp 0x3f1c1
leaq -0xc8(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x43a90
jmp 0x3f1d6
jmp 0x3f1d8
movl -0x244(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x244(%rbp)
jmp 0x3f17c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x6d30
jmp 0x4133a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x6d30
jmp 0x4133a
leaq -0x98(%rbp), %rax
movq %rax, -0x260(%rbp)
leaq -0xb0(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0xc8(%rbp), %rdi
movq %rdi, -0xa48(%rbp)
callq 0x43c00
movq -0xa48(%rbp), %rdi
movq %rax, -0x268(%rbp)
callq 0x43c30
movq %rax, -0x270(%rbp)
movups -0x260(%rbp), %xmm0
movaps %xmm0, -0x280(%rbp)
movq -0x268(%rbp), %rdi
movq -0x270(%rbp), %rsi
movq -0x280(%rbp), %rdx
movq -0x278(%rbp), %rcx
callq 0x413d0
jmp 0x3f2a9
leaq -0x2b0(%rbp), %rdi
callq 0x43c60
leaq -0xc8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rdi
callq 0x43c00
movq %rax, -0x2c0(%rbp)
movq -0x2b8(%rbp), %rdi
callq 0x43c30
movq %rax, -0x2c8(%rbp)
leaq -0x2c0(%rbp), %rdi
leaq -0x2c8(%rbp), %rsi
callq 0x43c80
testb $0x1, %al
jne 0x3f305
jmp 0x40292
leaq -0x2c0(%rbp), %rdi
callq 0x43cc0
movq (%rax), %rcx
movq %rcx, -0x2d4(%rbp)
movl 0x8(%rax), %eax
movl %eax, -0x2cc(%rbp)
movl -0x2d4(%rbp), %eax
movl %eax, -0xa4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x5e80
movq %rax, %rcx
movl -0xa4c(%rbp), %eax
cmpl %ecx, %eax
jge 0x3f34b
jmp 0x3f36a
leaq 0x1baf8(%rip), %rdi     # 0x5ae4a
leaq 0x1b31d(%rip), %rsi     # 0x5a676
movl $0x283, %edx            # imm = 0x283
leaq 0x1ba01(%rip), %rcx     # 0x5ad66
callq 0x31a0
movl -0x2d0(%rbp), %eax
movl %eax, -0xa50(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5e80
movq %rax, %rcx
movl -0xa50(%rbp), %eax
cmpl %ecx, %eax
jge 0x3f391
jmp 0x3f3b0
leaq 0x1bacd(%rip), %rdi     # 0x5ae65
leaq 0x1b2d7(%rip), %rsi     # 0x5a676
movl $0x284, %edx            # imm = 0x284
leaq 0x1b9bb(%rip), %rcx     # 0x5ad66
callq 0x31a0
movslq -0x2d4(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0x178a0
movq %rax, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x6490
jmp 0x3f3d4
movslq -0x2d0(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x178a0
movq %rax, %rsi
leaq -0x308(%rbp), %rdi
callq 0x6490
jmp 0x3f3f8
leaq -0x320(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x6490
jmp 0x3f40d
leaq -0x320(%rbp), %rdi
movq %rdi, -0xa60(%rbp)
callq 0xe090
movq %rax, -0x330(%rbp)
leaq -0x328(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x177f0
leaq -0x308(%rbp), %rdi
movq %rdi, -0xa68(%rbp)
callq 0xe060
movq -0xa68(%rbp), %rdi
movq %rax, -0x338(%rbp)
callq 0xe090
movq -0xa60(%rbp), %rdi
movq %rax, -0x340(%rbp)
movq -0x328(%rbp), %rsi
movq -0x338(%rbp), %rdx
movq -0x340(%rbp), %rcx
callq 0x2de00
movq %rax, -0xa58(%rbp)
jmp 0x3f491
movq -0xa58(%rbp), %rax
movq %rax, -0x348(%rbp)
leaq -0x320(%rbp), %rdi
movq %rdi, -0xa70(%rbp)
callq 0xe060
movq -0xa70(%rbp), %rdi
movq %rax, -0x350(%rbp)
callq 0xe090
movq %rax, -0x358(%rbp)
movq -0x350(%rbp), %rdi
movq -0x358(%rbp), %rsi
callq 0x176e0
jmp 0x3f4e1
movl $0x1, -0x35c(%rbp)
movl -0x35c(%rbp), %eax
movl %eax, -0xa74(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movl -0xa74(%rbp), %eax
cmpl %ecx, %eax
jge 0x3f5e7
movslq -0x35c(%rbp), %rsi
leaq -0x320(%rbp), %rdi
callq 0x178f0
movl (%rax), %eax
movl %eax, -0xa78(%rbp)
movl -0x35c(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
leaq -0x320(%rbp), %rdi
callq 0x178f0
movq %rax, %rcx
movl -0xa78(%rbp), %eax
cmpl (%rcx), %eax
je 0x3f556
jmp 0x3f5d1
leaq 0x1b922(%rip), %rdi     # 0x5ae7f
leaq 0x1b112(%rip), %rsi     # 0x5a676
movl $0x28c, %edx            # imm = 0x28C
leaq 0x1b7f6(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x4132e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x40281
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x40275
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x40269
jmp 0x3f5d3
movl -0x35c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x35c(%rbp)
jmp 0x3f4eb
movq -0x970(%rbp), %rdi
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, -0x368(%rbp)
movq -0x368(%rbp), %rdi
callq 0xe060
movq %rax, -0x370(%rbp)
movq -0x368(%rbp), %rdi
callq 0xe090
movq %rax, -0x378(%rbp)
leaq -0x370(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3f643
jmp 0x3f6e6
leaq -0x370(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x37c(%rbp)
leaq -0x320(%rbp), %rdi
movq %rdi, -0xa88(%rbp)
callq 0xe060
movq -0xa88(%rbp), %rdi
movq %rax, -0x388(%rbp)
callq 0xe090
movq %rax, -0x390(%rbp)
movq -0x388(%rbp), %rdi
movq -0x390(%rbp), %rsi
leaq -0x37c(%rbp), %rdx
callq 0x43ce0
movb %al, -0xa79(%rbp)
jmp 0x3f6a6
movb -0xa79(%rbp), %al
testb $0x1, %al
jne 0x3f6b2
jmp 0x3f6b4
jmp 0x3f6d3
leaq 0x1b7d7(%rip), %rdi     # 0x5ae92
leaq 0x1afb4(%rip), %rsi     # 0x5a676
movl $0x28f, %edx            # imm = 0x28F
leaq 0x1b698(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x3f6d5
leaq -0x370(%rbp), %rdi
callq 0xe120
jmp 0x3f627
leaq -0x2f0(%rbp), %rax
movq %rax, -0x398(%rbp)
movq -0x398(%rbp), %rdi
callq 0xe060
movq %rax, -0x3a0(%rbp)
movq -0x398(%rbp), %rdi
callq 0xe090
movq %rax, -0x3a8(%rbp)
leaq -0x3a0(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3f736
jmp 0x3f7f0
leaq -0x3a0(%rbp), %rdi
callq 0xe100
movq -0x970(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x3ac(%rbp)
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0xe060
movq -0x970(%rbp), %rdi
movq %rax, -0x3b8(%rbp)
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0xe090
movq %rax, -0x3c0(%rbp)
movq -0x3b8(%rbp), %rdi
movq -0x3c0(%rbp), %rsi
leaq -0x3ac(%rbp), %rdx
callq 0x43ce0
movb %al, -0xa89(%rbp)
jmp 0x3f7b0
movb -0xa89(%rbp), %al
testb $0x1, %al
jne 0x3f7bc
jmp 0x3f7be
jmp 0x3f7dd
leaq 0x1b6f6(%rip), %rdi     # 0x5aebb
leaq 0x1aeaa(%rip), %rsi     # 0x5a676
movl $0x292, %edx            # imm = 0x292
leaq 0x1b58e(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x3f7df
leaq -0x3a0(%rbp), %rdi
callq 0xe120
jmp 0x3f71a
leaq -0x3f0(%rbp), %rdi
callq 0x3a0d0
jmp 0x3f7fe
cmpl $0x1, -0x1c(%rbp)
je 0x3f81c
cmpl $0x2, -0x1c(%rbp)
je 0x3f81c
cmpl $0x3, -0x1c(%rbp)
je 0x3f81c
cmpl $0x4, -0x1c(%rbp)
je 0x3f81c
cmpl $0x5, -0x1c(%rbp)
jne 0x3f82e
leaq -0x3f0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3a140
jmp 0x3f86a
cmpl $0x6, -0x1c(%rbp)
jne 0x3f849
movq %rsp, %rax
fldz
fstpt (%rax)
leaq -0x3f0(%rbp), %rdi
callq 0x3a1a0
jmp 0x3f868
leaq 0x19920(%rip), %rdi     # 0x59170
leaq 0x1ae1f(%rip), %rsi     # 0x5a676
movl $0x29e, %edx            # imm = 0x29E
leaq 0x1b503(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x3f86a
movq -0x970(%rbp), %rdi
movb $0x0, -0x3f1(%rbp)
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, -0xa98(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xa98(%rbp), %rax
cmpq %rcx, %rax
jne 0x3f8b3
jmp 0x3ff3d
movl $0x0, -0x3f8(%rbp)
movl -0x3f8(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x3f8f2
movslq -0x3f8(%rbp), %rcx
leaq 0x5f3816(%rip), %rax    # 0x6330f0
movl $0xffffffff, (%rax,%rcx,4) # imm = 0xFFFFFFFF
movl -0x3f8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3f8(%rbp)
jmp 0x3f8bd
leaq -0x320(%rbp), %rax
movq %rax, -0x400(%rbp)
movq -0x400(%rbp), %rdi
callq 0xe060
movq %rax, -0x408(%rbp)
movq -0x400(%rbp), %rdi
callq 0xe090
movq %rax, -0x410(%rbp)
leaq -0x408(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3f93f
jmp 0x3f976
leaq -0x408(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x414(%rbp)
movslq -0x414(%rbp), %rcx
leaq 0x5f378f(%rip), %rax    # 0x6330f0
movl $0x0, (%rax,%rcx,4)
leaq -0x408(%rbp), %rdi
callq 0xe120
jmp 0x3f926
movq -0x970(%rbp), %rdi
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, -0x420(%rbp)
movq -0x420(%rbp), %rdi
callq 0xe060
movq %rax, -0x428(%rbp)
movq -0x420(%rbp), %rdi
callq 0xe090
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3f9cf
jmp 0x3fa06
leaq -0x428(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x434(%rbp)
movslq -0x434(%rbp), %rcx
leaq 0x5f36ff(%rip), %rax    # 0x6330f0
movl $0x2, (%rax,%rcx,4)
leaq -0x428(%rbp), %rdi
callq 0xe120
jmp 0x3f9b6
movl $0x2, 0x655160(%rip)    # 0x694b70
leaq -0x320(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rdi
callq 0xe060
movq %rax, -0x448(%rbp)
movq -0x440(%rbp), %rdi
callq 0xe090
movq %rax, -0x450(%rbp)
leaq -0x448(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x3fa60
jmp 0x3ff3b
leaq -0x448(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x454(%rbp)
movslq -0x454(%rbp), %rcx
leaq 0x5f366e(%rip), %rax    # 0x6330f0
cmpl $0x0, (%rax,%rcx,4)
jne 0x3ff28
movl 0x6550de(%rip), %eax    # 0x694b70
incl %eax
movl %eax, 0x6550d6(%rip)    # 0x694b70
leaq -0x470(%rbp), %rdi
movq %rdi, -0xaa8(%rbp)
callq 0xdf40
leaq -0x488(%rbp), %rdi
movq %rdi, -0xaa0(%rbp)
callq 0xdf40
movq -0xaa8(%rbp), %rdx
movq -0xaa0(%rbp), %rcx
movq -0x10(%rbp), %rdi
movl -0x454(%rbp), %esi
callq 0x3e5e0
jmp 0x3fadf
leaq -0x470(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xaa9(%rbp)
jbe 0x3fb31
leaq -0x470(%rbp), %rdi
callq 0x59a0
movq %rax, -0xab8(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xab8(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0xaa9(%rbp)
movb -0xaa9(%rbp), %al
testb $0x1, %al
jne 0x3fb3d
jmp 0x3fb3f
jmp 0x3fb8d
leaq 0x1b3ae(%rip), %rdi     # 0x5aef4
leaq 0x1ab29(%rip), %rsi     # 0x5a676
movl $0x2b5, %edx            # imm = 0x2B5
leaq 0x1b20d(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x6d30
leaq -0x470(%rbp), %rdi
callq 0x6d30
jmp 0x40269
leaq -0x488(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xab9(%rbp)
jbe 0x3fbee
leaq -0x488(%rbp), %rdi
callq 0x59a0
movq -0x970(%rbp), %rdi
movq %rax, -0xac8(%rbp)
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xac8(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0xab9(%rbp)
movb -0xab9(%rbp), %al
testb $0x1, %al
jne 0x3fbfa
jmp 0x3fbfc
jmp 0x3fc1b
leaq 0x1b31a(%rip), %rdi     # 0x5af1d
leaq 0x1aa6c(%rip), %rsi     # 0x5a676
movl $0x2b6, %edx            # imm = 0x2B6
leaq 0x1b150(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x470(%rbp), %rdi
movq %rdi, -0xad0(%rbp)
callq 0xe060
movq -0xad0(%rbp), %rdi
movq %rax, -0x490(%rbp)
callq 0xe090
movq %rax, -0x498(%rbp)
movq -0x490(%rbp), %rdi
movq -0x498(%rbp), %rsi
callq 0x176e0
jmp 0x3fc5d
leaq -0x488(%rbp), %rdi
movq %rdi, -0xad8(%rbp)
callq 0xe060
movq -0xad8(%rbp), %rdi
movq %rax, -0x4a0(%rbp)
callq 0xe090
movq %rax, -0x4a8(%rbp)
movq -0x4a0(%rbp), %rdi
movq -0x4a8(%rbp), %rsi
callq 0x176e0
jmp 0x3fc9f
leaq -0x470(%rbp), %rdi
callq 0x59a0
movq %rax, -0xaf0(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xaf0(%rbp), %rax
addq %rcx, %rax
movq %rax, -0xae0(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x59a0
movq %rax, -0xae8(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x59a0
movq -0xae8(%rbp), %rcx
movq %rax, %rdx
movq -0xae0(%rbp), %rax
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x3fd0c
jmp 0x3fd2b
leaq 0x1b23e(%rip), %rdi     # 0x5af51
leaq 0x1a95c(%rip), %rsi     # 0x5a676
movl $0x2b9, %edx            # imm = 0x2B9
leaq 0x1b040(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x80(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x43950
movq %rax, -0xaf8(%rbp)
jmp 0x3fd44
movq -0xaf8(%rbp), %rax
cmpq $0x0, %rax
je 0x3fd77
leaq -0x50(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x43950
movq %rax, -0xb00(%rbp)
jmp 0x3fd6a
movq -0xb00(%rbp), %rax
cmpq $0x0, %rax
jne 0x3fd8d
movb $0x1, -0x3f1(%rbp)
movl $0x2a, -0xd8(%rbp)
jmp 0x3ff00
leaq -0x50(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x439b0
movq %rax, -0xb08(%rbp)
jmp 0x3fda6
leaq -0x80(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x439b0
movq %rax, -0xb10(%rbp)
jmp 0x3fdbf
movq -0xb10(%rbp), %rdx
movq -0xb08(%rbp), %rsi
leaq -0x4b0(%rbp), %rdi
callq 0xdfc0
jmp 0x3fddb
leaq -0x2b0(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x43d70
movq %rax, -0xb18(%rbp)
jmp 0x3fdf7
movq -0xb18(%rbp), %rax
cmpq $0x0, %rax
jne 0x3fe1a
movb $0x1, -0x3f1(%rbp)
movl $0x2a, -0xd8(%rbp)
jmp 0x3ff00
movaps -0x3f0(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
movaps -0x3d0(%rbp), %xmm2
movaps %xmm2, -0x4f0(%rbp)
movaps %xmm1, -0x500(%rbp)
movaps %xmm0, -0x510(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xb20(%rbp)
jmp 0x3fe60
movq -0xb20(%rbp), %rax
movaps (%rax), %xmm0
movaps 0x10(%rax), %xmm1
movaps 0x20(%rax), %xmm2
movaps %xmm2, -0x520(%rbp)
movaps %xmm1, -0x530(%rbp)
movaps %xmm0, -0x540(%rbp)
movl -0x1c(%rbp), %esi
movaps -0x540(%rbp), %xmm0
movaps -0x530(%rbp), %xmm1
movaps -0x520(%rbp), %xmm2
movq %rsp, %rax
movaps %xmm2, 0x50(%rax)
movaps %xmm1, 0x40(%rax)
movaps %xmm0, 0x30(%rax)
movaps -0x510(%rbp), %xmm0
movaps -0x500(%rbp), %xmm1
movaps -0x4f0(%rbp), %xmm2
movaps %xmm2, 0x20(%rax)
movaps %xmm1, 0x10(%rax)
movaps %xmm0, (%rax)
leaq -0x4e0(%rbp), %rdi
callq 0x3b3e0
jmp 0x3fedc
leaq -0x3f0(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
movl $0x24, %edx
callq 0x3250
jmp 0x3fef6
movl $0x0, -0xd8(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x6d30
leaq -0x470(%rbp), %rdi
callq 0x6d30
movl -0xd8(%rbp), %eax
testl %eax, %eax
je 0x3ff26
jmp 0x3ff24
jmp 0x3ff3b
jmp 0x3ff28
jmp 0x3ff2a
leaq -0x448(%rbp), %rdi
callq 0xe120
jmp 0x3fa44
jmp 0x3ff3d
movq -0x970(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0xb28(%rbp)
movslq -0x2cc(%rbp), %rsi
callq 0x178a0
movq -0xb28(%rbp), %rsi
movq %rax, %rdx
movq -0x958(%rbp), %rax
movl -0x1c(%rbp), %r8d
movaps -0x3f0(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
movaps -0x3d0(%rbp), %xmm2
movaps %xmm2, -0x580(%rbp)
movaps %xmm1, -0x590(%rbp)
movaps %xmm0, -0x5a0(%rbp)
movaps (%rax), %xmm0
movaps 0x10(%rax), %xmm1
movaps 0x20(%rax), %xmm2
movaps %xmm2, -0x5b0(%rbp)
movaps %xmm1, -0x5c0(%rbp)
movaps %xmm0, -0x5d0(%rbp)
movaps -0x5d0(%rbp), %xmm0
movaps -0x5c0(%rbp), %xmm1
movaps -0x5b0(%rbp), %xmm2
movq %rsp, %rax
movaps %xmm2, 0x50(%rax)
movaps %xmm1, 0x40(%rax)
movaps %xmm0, 0x30(%rax)
movaps -0x5a0(%rbp), %xmm0
movaps -0x590(%rbp), %xmm1
movaps -0x580(%rbp), %xmm2
movaps %xmm2, 0x20(%rax)
movaps %xmm1, 0x10(%rax)
movaps %xmm0, (%rax)
leaq -0x570(%rbp), %rdi
leaq -0x2f0(%rbp), %rcx
callq 0x3b4f0
jmp 0x40013
movq -0x958(%rbp), %rsi
leaq -0x570(%rbp), %rdi
callq 0x3a380
testb $0x1, %al
jne 0x4002c
jmp 0x4002e
jmp 0x4004d
leaq 0x1af4e(%rip), %rdi     # 0x5af83
leaq 0x1a63a(%rip), %rsi     # 0x5a676
movl $0x2cf, %edx            # imm = 0x2CF
leaq 0x1ad1e(%rip), %rcx     # 0x5ad66
callq 0x31a0
movaps -0x3f0(%rbp), %xmm0
movaps -0x3e0(%rbp), %xmm1
movaps -0x3d0(%rbp), %xmm2
movaps %xmm2, -0x610(%rbp)
movaps %xmm1, -0x620(%rbp)
movaps %xmm0, -0x630(%rbp)
movaps -0x570(%rbp), %xmm0
movaps -0x560(%rbp), %xmm1
movaps -0x550(%rbp), %xmm2
movaps %xmm2, -0x640(%rbp)
movaps %xmm1, -0x650(%rbp)
movaps %xmm0, -0x660(%rbp)
movl -0x1c(%rbp), %esi
movaps -0x660(%rbp), %xmm0
movaps -0x650(%rbp), %xmm1
movaps -0x640(%rbp), %xmm2
movq %rsp, %rax
movaps %xmm2, 0x50(%rax)
movaps %xmm1, 0x40(%rax)
movaps %xmm0, 0x30(%rax)
movaps -0x630(%rbp), %xmm0
movaps -0x620(%rbp), %xmm1
movaps -0x610(%rbp), %xmm2
movaps %xmm2, 0x20(%rax)
movaps %xmm1, 0x10(%rax)
movaps %xmm0, (%rax)
leaq -0x600(%rbp), %rdi
callq 0x3b3e0
jmp 0x400f6
leaq -0x3f0(%rbp), %rdi
leaq -0x600(%rbp), %rsi
movl $0x24, %edx
callq 0x3250
testb $0x1, -0x3f1(%rbp)
jne 0x40234
movq -0x958(%rbp), %rsi
leaq -0x3f0(%rbp), %rdi
callq 0x3a380
testb $0x1, %al
jne 0x40137
jmp 0x40234
leaq -0x2b0(%rbp), %rdi
leaq -0x2d4(%rbp), %rsi
callq 0x43d70
movq %rax, -0xb30(%rbp)
jmp 0x40153
movq -0xb30(%rbp), %rax
cmpq $0x0, %rax
jne 0x401b0
leaq -0x2cc(%rbp), %rdx
leaq -0x6a0(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x43eb0
jmp 0x4017c
leaq -0x2b0(%rbp), %rdi
leaq -0x2d4(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xb38(%rbp)
jmp 0x40198
movq -0xb38(%rbp), %rdi
leaq -0x6a0(%rbp), %rsi
callq 0x43ef0
jmp 0x40232
leaq -0x2b0(%rbp), %rdi
leaq -0x2d4(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xb40(%rbp)
jmp 0x401cc
movq -0xb40(%rbp), %rsi
leaq -0x3f0(%rbp), %rdi
callq 0x3a200
testb $0x1, %al
jne 0x401e5
jmp 0x40230
leaq -0x2cc(%rbp), %rdx
leaq -0x6e0(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x43eb0
jmp 0x40201
leaq -0x2b0(%rbp), %rdi
leaq -0x2d4(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xb48(%rbp)
jmp 0x4021d
movq -0xb48(%rbp), %rdi
leaq -0x6e0(%rbp), %rsi
callq 0x43ef0
jmp 0x40232
jmp 0x40234
leaq -0x320(%rbp), %rdi
callq 0x6d30
leaq -0x308(%rbp), %rdi
callq 0x6d30
leaq -0x2f0(%rbp), %rdi
callq 0x6d30
leaq -0x2c0(%rbp), %rdi
callq 0x43f30
jmp 0x3f2e9
leaq -0x320(%rbp), %rdi
callq 0x6d30
leaq -0x308(%rbp), %rdi
callq 0x6d30
leaq -0x2f0(%rbp), %rdi
callq 0x6d30
jmp 0x4132e
leaq -0x2b0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x43d70
movq %rax, -0xb50(%rbp)
jmp 0x402ae
movq -0xb50(%rbp), %rax
cmpq $0x0, %rax
jne 0x402df
movq -0x968(%rbp), %rdi
leaq 0x5f2e07(%rip), %rsi    # 0x6330d0
callq 0x56a0
jmp 0x402d0
movl $0x1, -0xd8(%rbp)
jmp 0x41314
movq -0x968(%rbp), %rdi
movb $0x0, -0x6e1(%rbp)
callq 0xbd50
leaq -0x738(%rbp), %rdi
callq 0x43f50
jmp 0x40300
leaq -0x738(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x43f80
jmp 0x40315
jmp 0x40317
leaq -0x738(%rbp), %rdi
callq 0x43fb0
movb %al, -0xb51(%rbp)
jmp 0x4032b
movb -0xb51(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4033c
jmp 0x4111d
leaq -0x738(%rbp), %rdi
callq 0x43fd0
movq %rax, -0xb60(%rbp)
jmp 0x40351
movq -0xb60(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x740(%rbp)
leaq -0x738(%rbp), %rdi
callq 0x43ff0
jmp 0x40370
leaq -0x2b0(%rbp), %rdi
leaq -0x740(%rbp), %rsi
callq 0x43d70
movq %rax, -0xb68(%rbp)
jmp 0x4038c
movq -0xb68(%rbp), %rax
cmpq $0x0, %rax
je 0x4039b
jmp 0x403e8
leaq 0x1abf4(%rip), %rdi     # 0x5af96
leaq 0x1a2cd(%rip), %rsi     # 0x5a676
movl $0x2e5, %edx            # imm = 0x2E5
leaq 0x1a9b1(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x41306
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x412ea
leaq -0x2b0(%rbp), %rdi
leaq -0x740(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xb70(%rbp)
jmp 0x40404
movq -0xb70(%rbp), %rdx
addq $0x30, %rdx
leaq -0x74c(%rbp), %rdi
leaq -0x740(%rbp), %rsi
callq 0x43bd0
jmp 0x40424
movl -0x74c(%rbp), %eax
movl %eax, -0xb74(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x5e80
movq %rax, %rcx
movl -0xb74(%rbp), %eax
cmpl %ecx, %eax
jge 0x4044b
jmp 0x4046a
leaq 0x1a9f8(%rip), %rdi     # 0x5ae4a
leaq 0x1a21d(%rip), %rsi     # 0x5a676
movl $0x2e8, %edx            # imm = 0x2E8
leaq 0x1a901(%rip), %rcx     # 0x5ad66
callq 0x31a0
movl -0x748(%rbp), %eax
movl %eax, -0xb78(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x5e80
movq %rax, %rcx
movl -0xb78(%rbp), %eax
cmpl %ecx, %eax
jge 0x40491
jmp 0x404b0
leaq 0x1a9cd(%rip), %rdi     # 0x5ae65
leaq 0x1a1d7(%rip), %rsi     # 0x5a676
movl $0x2e9, %edx            # imm = 0x2E9
leaq 0x1a8bb(%rip), %rcx     # 0x5ad66
callq 0x31a0
movslq -0x74c(%rbp), %rsi
leaq -0x98(%rbp), %rdi
callq 0x178a0
movq %rax, %rsi
leaq -0x768(%rbp), %rdi
callq 0x6490
jmp 0x404d4
movslq -0x748(%rbp), %rsi
leaq -0xb0(%rbp), %rdi
callq 0x178a0
movq %rax, %rsi
leaq -0x780(%rbp), %rdi
callq 0x6490
jmp 0x404f8
leaq -0x798(%rbp), %rdi
leaq -0x768(%rbp), %rsi
callq 0x6490
jmp 0x4050d
leaq -0x798(%rbp), %rdi
movq %rdi, -0xb88(%rbp)
callq 0xe090
movq %rax, -0x7a8(%rbp)
leaq -0x7a0(%rbp), %rdi
leaq -0x7a8(%rbp), %rsi
callq 0x177f0
leaq -0x780(%rbp), %rdi
movq %rdi, -0xb90(%rbp)
callq 0xe060
movq -0xb90(%rbp), %rdi
movq %rax, -0x7b0(%rbp)
callq 0xe090
movq -0xb88(%rbp), %rdi
movq %rax, -0x7b8(%rbp)
movq -0x7a0(%rbp), %rsi
movq -0x7b0(%rbp), %rdx
movq -0x7b8(%rbp), %rcx
callq 0x2de00
movq %rax, -0xb80(%rbp)
jmp 0x40591
movq -0xb80(%rbp), %rax
movq %rax, -0x7c0(%rbp)
leaq -0x798(%rbp), %rdi
movq %rdi, -0xb98(%rbp)
callq 0xe060
movq -0xb98(%rbp), %rdi
movq %rax, -0x7c8(%rbp)
callq 0xe090
movq %rax, -0x7d0(%rbp)
movq -0x7c8(%rbp), %rdi
movq -0x7d0(%rbp), %rsi
callq 0x176e0
jmp 0x405e1
movl $0x1, -0x7d4(%rbp)
movl -0x7d4(%rbp), %eax
movl %eax, -0xb9c(%rbp)
leaq -0x798(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movl -0xb9c(%rbp), %eax
cmpl %ecx, %eax
jge 0x406d0
movslq -0x7d4(%rbp), %rsi
leaq -0x798(%rbp), %rdi
callq 0x178f0
movl (%rax), %eax
movl %eax, -0xba0(%rbp)
movl -0x7d4(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
leaq -0x798(%rbp), %rdi
callq 0x178f0
movq %rax, %rcx
movl -0xba0(%rbp), %eax
cmpl (%rcx), %eax
je 0x40656
jmp 0x406ba
leaq 0x1a822(%rip), %rdi     # 0x5ae7f
leaq 0x1a012(%rip), %rsi     # 0x5a676
movl $0x2f1, %edx            # imm = 0x2F1
leaq 0x1a6f6(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x4110c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x41100
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
jmp 0x410f4
jmp 0x406bc
movl -0x7d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7d4(%rbp)
jmp 0x405eb
movq -0x970(%rbp), %rdi
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, -0x7e0(%rbp)
movq -0x7e0(%rbp), %rdi
callq 0xe060
movq %rax, -0x7e8(%rbp)
movq -0x7e0(%rbp), %rdi
callq 0xe090
movq %rax, -0x7f0(%rbp)
leaq -0x7e8(%rbp), %rdi
leaq -0x7f0(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x4072c
jmp 0x407cf
leaq -0x7e8(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x7f4(%rbp)
leaq -0x798(%rbp), %rdi
movq %rdi, -0xbb0(%rbp)
callq 0xe060
movq -0xbb0(%rbp), %rdi
movq %rax, -0x800(%rbp)
callq 0xe090
movq %rax, -0x808(%rbp)
movq -0x800(%rbp), %rdi
movq -0x808(%rbp), %rsi
leaq -0x7f4(%rbp), %rdx
callq 0x43ce0
movb %al, -0xba1(%rbp)
jmp 0x4078f
movb -0xba1(%rbp), %al
testb $0x1, %al
jne 0x4079b
jmp 0x4079d
jmp 0x407bc
leaq 0x1a6ee(%rip), %rdi     # 0x5ae92
leaq 0x19ecb(%rip), %rsi     # 0x5a676
movl $0x2f4, %edx            # imm = 0x2F4
leaq 0x1a5af(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x407be
leaq -0x7e8(%rbp), %rdi
callq 0xe120
jmp 0x40710
leaq -0x768(%rbp), %rax
movq %rax, -0x810(%rbp)
movq -0x810(%rbp), %rdi
callq 0xe060
movq %rax, -0x818(%rbp)
movq -0x810(%rbp), %rdi
callq 0xe090
movq %rax, -0x820(%rbp)
leaq -0x818(%rbp), %rdi
leaq -0x820(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x4081f
jmp 0x408d9
leaq -0x818(%rbp), %rdi
callq 0xe100
movq -0x970(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x824(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0xe060
movq -0x970(%rbp), %rdi
movq %rax, -0x830(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0xe090
movq %rax, -0x838(%rbp)
movq -0x830(%rbp), %rdi
movq -0x838(%rbp), %rsi
leaq -0x824(%rbp), %rdx
callq 0x43ce0
movb %al, -0xbb1(%rbp)
jmp 0x40899
movb -0xbb1(%rbp), %al
testb $0x1, %al
jne 0x408a5
jmp 0x408a7
jmp 0x408c6
leaq 0x1a60d(%rip), %rdi     # 0x5aebb
leaq 0x19dc1(%rip), %rsi     # 0x5a676
movl $0x2f7, %edx            # imm = 0x2F7
leaq 0x1a4a5(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x408c8
leaq -0x818(%rbp), %rdi
callq 0xe120
jmp 0x40803
movl $0x0, -0x83c(%rbp)
movq -0x970(%rbp), %rdi
movl -0x83c(%rbp), %eax
movl %eax, -0xbb8(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movl -0xbb8(%rbp), %eax
cmpl %ecx, %eax
jge 0x40afa
movl -0x83c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x840(%rbp)
movq -0x970(%rbp), %rdi
movl -0x840(%rbp), %eax
movl %eax, -0xbbc(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movl -0xbbc(%rbp), %eax
cmpl %ecx, %eax
jge 0x40ae4
movq -0x970(%rbp), %rdi
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
movslq -0x83c(%rbp), %rsi
callq 0x178f0
movq -0x970(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x844(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
movslq -0x840(%rbp), %rsi
callq 0x178f0
movl (%rax), %eax
movl %eax, -0x848(%rbp)
movq -0x10(%rbp), %rdi
movl -0x844(%rbp), %esi
movl -0x848(%rbp), %edx
callq 0x16400
movb %al, -0xbbd(%rbp)
jmp 0x409d3
movb -0xbbd(%rbp), %al
testb $0x1, %al
jne 0x40ace
jmp 0x409e3
leaq -0x768(%rbp), %rdi
movq %rdi, -0xbc8(%rbp)
callq 0xe060
movq -0xbc8(%rbp), %rdi
movq %rax, -0x850(%rbp)
callq 0xe090
movq %rax, -0x858(%rbp)
movq -0x850(%rbp), %rdi
movq -0x858(%rbp), %rsi
leaq -0x844(%rbp), %rdx
callq 0x43ce0
movb %al, -0xbbe(%rbp)
jmp 0x40a32
movb -0xbbe(%rbp), %al
testb $0x1, %al
jne 0x40a3e
jmp 0x40a99
leaq -0x768(%rbp), %rdi
movq %rdi, -0xbd8(%rbp)
callq 0xe060
movq -0xbd8(%rbp), %rdi
movq %rax, -0x860(%rbp)
callq 0xe090
movq %rax, -0x868(%rbp)
movq -0x860(%rbp), %rdi
movq -0x868(%rbp), %rsi
leaq -0x848(%rbp), %rdx
callq 0x43ce0
movb %al, -0xbc9(%rbp)
jmp 0x40a8d
movb -0xbc9(%rbp), %al
testb $0x1, %al
jne 0x40acc
jmp 0x40a99
leaq -0x870(%rbp), %rdi
leaq -0x844(%rbp), %rsi
leaq -0x848(%rbp), %rdx
callq 0xdfc0
jmp 0x40ab5
movq -0x968(%rbp), %rdi
leaq -0x870(%rbp), %rsi
callq 0x179a0
jmp 0x40aca
jmp 0x40acc
jmp 0x40ace
jmp 0x40ad0
movl -0x840(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x840(%rbp)
jmp 0x4092a
jmp 0x40ae6
movl -0x83c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x83c(%rbp)
jmp 0x408e3
movq -0x970(%rbp), %rdi
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, -0xbe0(%rbp)
leaq -0x798(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xbe0(%rbp), %rax
cmpq %rcx, %rax
je 0x410cb
movl $0x0, -0x874(%rbp)
movl -0x874(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x50(%rcx), %eax
jge 0x40b7a
movslq -0x874(%rbp), %rcx
leaq 0x5f258e(%rip), %rax    # 0x6330f0
movl $0xffffffff, (%rax,%rcx,4) # imm = 0xFFFFFFFF
movl -0x874(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x874(%rbp)
jmp 0x40b45
leaq -0x798(%rbp), %rax
movq %rax, -0x880(%rbp)
movq -0x880(%rbp), %rdi
callq 0xe060
movq %rax, -0x888(%rbp)
movq -0x880(%rbp), %rdi
callq 0xe090
movq %rax, -0x890(%rbp)
leaq -0x888(%rbp), %rdi
leaq -0x890(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x40bc7
jmp 0x40bfe
leaq -0x888(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x894(%rbp)
movslq -0x894(%rbp), %rcx
leaq 0x5f2507(%rip), %rax    # 0x6330f0
movl $0x0, (%rax,%rcx,4)
leaq -0x888(%rbp), %rdi
callq 0xe120
jmp 0x40bae
movq -0x970(%rbp), %rdi
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, -0x8a0(%rbp)
movq -0x8a0(%rbp), %rdi
callq 0xe060
movq %rax, -0x8a8(%rbp)
movq -0x8a0(%rbp), %rdi
callq 0xe090
movq %rax, -0x8b0(%rbp)
leaq -0x8a8(%rbp), %rdi
leaq -0x8b0(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x40c57
jmp 0x40c8e
leaq -0x8a8(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x8b4(%rbp)
movslq -0x8b4(%rbp), %rcx
leaq 0x5f2477(%rip), %rax    # 0x6330f0
movl $0x2, (%rax,%rcx,4)
leaq -0x8a8(%rbp), %rdi
callq 0xe120
jmp 0x40c3e
movl $0x2, 0x653ed8(%rip)    # 0x694b70
leaq -0x798(%rbp), %rax
movq %rax, -0x8c0(%rbp)
movq -0x8c0(%rbp), %rdi
callq 0xe060
movq %rax, -0x8c8(%rbp)
movq -0x8c0(%rbp), %rdi
callq 0xe090
movq %rax, -0x8d0(%rbp)
leaq -0x8c8(%rbp), %rdi
leaq -0x8d0(%rbp), %rsi
callq 0xe0c0
testb $0x1, %al
jne 0x40ce8
jmp 0x410c9
leaq -0x8c8(%rbp), %rdi
callq 0xe100
movl (%rax), %eax
movl %eax, -0x8d4(%rbp)
movslq -0x8d4(%rbp), %rcx
leaq 0x5f23e6(%rip), %rax    # 0x6330f0
cmpl $0x0, (%rax,%rcx,4)
jne 0x410b6
movl 0x653e56(%rip), %eax    # 0x694b70
incl %eax
movl %eax, 0x653e4e(%rip)    # 0x694b70
leaq -0x8f0(%rbp), %rdi
movq %rdi, -0xbf0(%rbp)
callq 0xdf40
leaq -0x908(%rbp), %rdi
movq %rdi, -0xbe8(%rbp)
callq 0xdf40
movq -0xbf0(%rbp), %rdx
movq -0xbe8(%rbp), %rcx
movq -0x10(%rbp), %rdi
movl -0x8d4(%rbp), %esi
callq 0x3e5e0
jmp 0x40d67
leaq -0x8f0(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xbf1(%rbp)
jbe 0x40db9
leaq -0x8f0(%rbp), %rdi
callq 0x59a0
movq %rax, -0xc00(%rbp)
leaq -0x780(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xc00(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0xbf1(%rbp)
movb -0xbf1(%rbp), %al
testb $0x1, %al
jne 0x40dc5
jmp 0x40dc7
jmp 0x40e15
leaq 0x1a126(%rip), %rdi     # 0x5aef4
leaq 0x198a1(%rip), %rsi     # 0x5a676
movl $0x318, %edx            # imm = 0x318
leaq 0x19f85(%rip), %rcx     # 0x5ad66
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd0(%rbp)
movl %eax, -0xd4(%rbp)
leaq -0x908(%rbp), %rdi
callq 0x6d30
leaq -0x8f0(%rbp), %rdi
callq 0x6d30
jmp 0x410f4
leaq -0x908(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xc01(%rbp)
jbe 0x40e76
leaq -0x908(%rbp), %rdi
callq 0x59a0
movq -0x970(%rbp), %rdi
movq %rax, -0xc10(%rbp)
movslq -0x744(%rbp), %rsi
callq 0x178a0
movq %rax, %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xc10(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0xc01(%rbp)
movb -0xc01(%rbp), %al
testb $0x1, %al
jne 0x40e82
jmp 0x40e84
jmp 0x40ea3
leaq 0x1a092(%rip), %rdi     # 0x5af1d
leaq 0x197e4(%rip), %rsi     # 0x5a676
movl $0x319, %edx            # imm = 0x319
leaq 0x19ec8(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x8f0(%rbp), %rdi
movq %rdi, -0xc18(%rbp)
callq 0xe060
movq -0xc18(%rbp), %rdi
movq %rax, -0x910(%rbp)
callq 0xe090
movq %rax, -0x918(%rbp)
movq -0x910(%rbp), %rdi
movq -0x918(%rbp), %rsi
callq 0x176e0
jmp 0x40ee5
leaq -0x908(%rbp), %rdi
movq %rdi, -0xc20(%rbp)
callq 0xe060
movq -0xc20(%rbp), %rdi
movq %rax, -0x920(%rbp)
callq 0xe090
movq %rax, -0x928(%rbp)
movq -0x920(%rbp), %rdi
movq -0x928(%rbp), %rsi
callq 0x176e0
jmp 0x40f27
leaq -0x8f0(%rbp), %rdi
callq 0x59a0
movq %rax, -0xc38(%rbp)
leaq -0x908(%rbp), %rdi
callq 0x59a0
movq %rax, %rcx
movq -0xc38(%rbp), %rax
addq %rcx, %rax
movq %rax, -0xc28(%rbp)
leaq -0x780(%rbp), %rdi
callq 0x59a0
movq %rax, -0xc30(%rbp)
leaq -0x768(%rbp), %rdi
callq 0x59a0
movq -0xc30(%rbp), %rcx
movq %rax, %rdx
movq -0xc28(%rbp), %rax
addq %rdx, %rcx
cmpq %rcx, %rax
jae 0x40f94
jmp 0x40fb3
leaq 0x19fb6(%rip), %rdi     # 0x5af51
leaq 0x196d4(%rip), %rsi     # 0x5a676
movl $0x31c, %edx            # imm = 0x31C
leaq 0x19db8(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x80(%rbp), %rdi
leaq -0x8f0(%rbp), %rsi
callq 0x43950
movq %rax, -0xc40(%rbp)
jmp 0x40fcc
movq -0xc40(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0xc41(%rbp)
je 0x4100e
leaq -0x50(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0x43950
movq %rax, -0xc50(%rbp)
jmp 0x40ffa
movq -0xc50(%rbp), %rax
cmpq $0x0, %rax
setne %al
movb %al, -0xc41(%rbp)
movb -0xc41(%rbp), %al
testb $0x1, %al
jne 0x4101a
jmp 0x4101c
jmp 0x4103b
leaq 0x19f83(%rip), %rdi     # 0x5afa6
leaq 0x1964c(%rip), %rsi     # 0x5a676
movl $0x31e, %edx            # imm = 0x31E
leaq 0x19d30(%rip), %rcx     # 0x5ad66
callq 0x31a0
leaq -0x50(%rbp), %rdi
leaq -0x908(%rbp), %rsi
callq 0x439b0
movq %rax, -0xc58(%rbp)
jmp 0x41054
leaq -0x80(%rbp), %rdi
leaq -0x8f0(%rbp), %rsi
callq 0x439b0
movq %rax, -0xc60(%rbp)
jmp 0x4106d
movq -0xc60(%rbp), %rdx
movq -0xc58(%rbp), %rsi
leaq -0x930(%rbp), %rdi
callq 0xdfc0
jmp 0x41089
leaq -0x738(%rbp), %rdi
leaq -0x930(%rbp), %rsi
callq 0x43f80
jmp 0x4109e
leaq -0x908(%rbp), %rdi
callq 0x6d30
leaq -0x8f0(%rbp), %rdi
callq 0x6d30
jmp 0x410b8
leaq -0x8c8(%rbp), %rdi
callq 0xe120
jmp 0x40ccc
jmp 0x410cb
leaq -0x798(%rbp), %rdi
callq 0x6d30
leaq -0x780(%rbp), %rdi
callq 0x6d30
leaq -0x768(%rbp), %rdi
callq 0x6d30
jmp 0x40317
leaq -0x798(%rbp), %rdi
callq 0x6d30
leaq -0x780(%rbp), %rdi
callq 0x6d30
leaq -0x768(%rbp), %rdi
callq 0x6d30
jmp 0x412ea
cmpl $0x1, -0x1c(%rbp)
jne 0x41188
movq -0x968(%rbp), %rdi
callq 0x5680
movq %rax, -0xc70(%rbp)
leaq -0x2b0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x43dd0
movq %rax, -0xc68(%rbp)
jmp 0x41152
movq -0xc70(%rbp), %rax
movq -0xc68(%rbp), %rcx
cmpq (%rcx), %rax
jne 0x41167
jmp 0x41186
leaq 0x19e61(%rip), %rdi     # 0x5afcf
leaq 0x19501(%rip), %rsi     # 0x5a676
movl $0x325, %edx            # imm = 0x325
leaq 0x19be5(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x41188
movq -0x968(%rbp), %rdi
callq 0xc0b0
movq -0x968(%rbp), %rdi
movq %rax, -0x938(%rbp)
callq 0xc040
movq %rax, -0x940(%rbp)
movq -0x938(%rbp), %rdi
movq -0x940(%rbp), %rsi
callq 0x17a10
jmp 0x411c3
movl $0x1, -0x944(%rbp)
movq -0x968(%rbp), %rdi
movl -0x944(%rbp), %eax
movl %eax, -0xc74(%rbp)
callq 0x5680
movq %rax, %rcx
movl -0xc74(%rbp), %eax
cmpl %ecx, %eax
jge 0x41281
movq -0x968(%rbp), %rdi
movslq -0x944(%rbp), %rsi
callq 0x2dc50
movq -0x968(%rbp), %rdi
movq %rax, -0xc80(%rbp)
movl -0x944(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0x2dc50
movq -0xc80(%rbp), %rdi
movq %rax, %rsi
callq 0x44010
movb %al, -0xc75(%rbp)
jmp 0x4123e
movb -0xc75(%rbp), %al
testb $0x1, %al
jne 0x4124a
jmp 0x4124c
jmp 0x4126b
leaq 0x19daa(%rip), %rdi     # 0x5affd
leaq 0x1941c(%rip), %rsi     # 0x5a676
movl $0x328, %edx            # imm = 0x328
leaq 0x19b00(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x4126d
movl -0x944(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x944(%rbp)
jmp 0x411cd
cmpl $0x1, -0x1c(%rbp)
jne 0x412c2
movq -0x968(%rbp), %rdi
callq 0x5680
movq -0x950(%rbp), %rcx
cmpq (%rcx), %rax
jl 0x412a1
jmp 0x412c0
leaq 0x19d68(%rip), %rdi     # 0x5b010
leaq 0x193c7(%rip), %rsi     # 0x5a676
movl $0x32a, %edx            # imm = 0x32A
leaq 0x19aab(%rip), %rcx     # 0x5ad66
callq 0x31a0
jmp 0x412c2
movb $0x1, -0x6e1(%rbp)
movl $0x1, -0xd8(%rbp)
leaq -0x738(%rbp), %rdi
callq 0x44040
testb $0x1, -0x6e1(%rbp)
jne 0x41304
jmp 0x412f8
leaq -0x738(%rbp), %rdi
callq 0x44040
jmp 0x41306
movq -0x968(%rbp), %rdi
callq 0x5470
jmp 0x41314
movq -0x968(%rbp), %rdi
callq 0x5470
jmp 0x4132e
leaq -0x2b0(%rbp), %rdi
callq 0x44060
leaq -0x1c8(%rbp), %rdi
callq 0x6d30
jmp 0x41348
leaq -0x2b0(%rbp), %rdi
callq 0x44060
leaq -0x1c8(%rbp), %rdi
callq 0x6d30
jmp 0x4138e
leaq -0xc8(%rbp), %rdi
callq 0x44080
leaq -0xb0(%rbp), %rdi
callq 0x5e20
leaq -0x98(%rbp), %rdi
callq 0x5e20
leaq -0x80(%rbp), %rdi
callq 0x440e0
leaq -0x50(%rbp), %rdi
callq 0x440e0
movq -0x960(%rbp), %rax
addq $0xce0, %rsp            # imm = 0xCE0
popq %rbp
retq
leaq -0xc8(%rbp), %rdi
callq 0x44080
leaq -0xb0(%rbp), %rdi
callq 0x5e20
leaq -0x98(%rbp), %rdi
callq 0x5e20
leaq -0x80(%rbp), %rdi
callq 0x440e0
leaq -0x50(%rbp), %rdi
callq 0x440e0
movq -0xd0(%rbp), %rdi
callq 0x3480