// File: Laakeri[P]maxpre/src/./BVE.cpp
// Function: maxPreprocessor::Preprocessor::searchXor(int) const
pair<vector<int>, int> Preprocessor::searchXor(int var) const {
	if (pi.litClauses[posLit(var)].size() < 2 || pi.litClauses[negLit(var)].size() < 2) return {vector<int>(), 0};
	int maxXorVar = 2;
	while ((1 << maxXorVar) <= (int)min(pi.litClauses[posLit(var)].size(), pi.litClauses[negLit(var)].size())) maxXorVar++;
	vector<unordered_map<int, int> > pCnt(maxXorVar + 2);
	vector<unordered_map<int, int> > nCnt(maxXorVar + 2);
	
	for (int c : pi.litClauses[posLit(var)]) {
		if ((int)pi.clauses[c].lit.size() > maxXorVar + 1) continue;
		if (pi.clauses[c].lit.size() < 3) continue;
		for (int l : pi.clauses[c].lit) {
			pCnt[(int)pi.clauses[c].lit.size() - 1][l]++;
		}
	}
	for (int c : pi.litClauses[negLit(var)]) {
		if ((int)pi.clauses[c].lit.size() > maxXorVar + 1) continue;
		if (pi.clauses[c].lit.size() < 3) continue;
		for (int l : pi.clauses[c].lit) {
			nCnt[(int)pi.clauses[c].lit.size() - 1][l]++;
		}
	}
	vector<pair<vector<int>, int> > cand;
	for (int c : pi.litClauses[posLit(var)]) {
		if ((int)pi.clauses[c].lit.size() > maxXorVar + 1) continue;
		if (pi.clauses[c].lit.size() < 3) continue;
		int sz = pi.clauses[c].lit.size() - 1;
		bool f = false;
		for (int l : pi.clauses[c].lit) {
			if (litVariable(l) == var) continue;
			if (pCnt[sz][l] < (1 << (sz-2))) {
				f = true;
				break;
			}
			if (nCnt[sz][l] < (1 << (sz-2))) {
				f = true;
				break;
			}
		}
		if (f) continue;
		cand.push_back({vector<int>(), c});
		for (int l : pi.clauses[c].lit) {
			if (litVariable(l) == var) continue;
			cand.back().F.push_back(litVariable(l));
		}
	}
	for (int c : pi.litClauses[negLit(var)]) {
		if ((int)pi.clauses[c].lit.size() > maxXorVar + 1) continue;
		if (pi.clauses[c].lit.size() < 3) continue;
		int sz = pi.clauses[c].lit.size() - 1;
		bool f = false;
		for (int l : pi.clauses[c].lit) {
			if (litVariable(l) == var) continue;
			if (pCnt[sz][l] < (1 << (sz-2))) {
				f = true;
				break;
			}
			if (nCnt[sz][l] < (1 << (sz-2))) {
				f = true;
				break;
			}
		}
		if (f) continue;
		cand.push_back({vector<int>(), c});
		for (int l : pi.clauses[c].lit) {
			if (litVariable(l) == var) continue;
			cand.back().F.push_back(litVariable(l));
		}
	}
	sort(cand.begin(), cand.end());
	vector<int> tCls;
	for (unsigned i = 0; i < cand.size(); i++) {
		if (i == 0 || cand[i].F != cand[i - 1].F) {
			tCls.clear();
		}
		tCls.push_back(cand[i].S);
		if (i + 1 == cand.size() || cand[i + 1].F != cand[i].F) {
			int sz = cand[i].F.size();
			if ((1 << sz) > (int)tCls.size()) continue;
			vector<int> enC;
			vector<int> onC;
			vector<int> epC;
			vector<int> opC;
			for (int b = 0; b < (1<<(int)cand[i].F.size()); b++) {
				bool ff = false;
				int enf = -1;
				int onf = -1;
				int epf = -1;
				int opf = -1;
				for (int c : tCls) {
					bool f = false;
					bool pol = false;
					int pt = 0;
					for (int l : pi.clauses[c].lit) {
						if (litValue(l) == false) pt ^= 1;
						if (l == posLit(var)) pol = true;
						else if (l == negLit(var)) pol = false;
						else {
							bool lf = false;
							int lv = litVariable(l);
							for (int j = 0; j < (int)cand[i].F.size(); j++) {
								if (lv == cand[i].F[j]) {
									if (litValue(l) == false && (b&(1<<j)) == 0) {
										lf = true;
										break;
									}
									if (litValue(l) == true && (b&(1<<j)) > 0) {
										lf = true;
										break;
									}
								}
							}
							if (!lf) {
								f = true;
								break;
							}
						}
					}
					if (!f) {
						ff = true;
						if (pol == false && pt == 0) enf = c;
						else if (pol == false && pt == 1) onf = c;
						else if (pol == true && pt == 0) epf = c;
						else if (pol == true && pt == 1) opf = c;
					}
				}
				if (enf >= 0) {
					enC.push_back(enf);
					assert(epf == -1);
				}
				if (onf >= 0) {
					onC.push_back(onf);
					assert(opf == -1);
				}
				if (epf >= 0) {
					epC.push_back(epf);
					assert(enf == -1);
				}
				if (opf >= 0) {
					opC.push_back(opf);
					assert(onf == -1);
				}
				if (!ff) break;
			}
			if ((int)enC.size() == (1 << sz)/2 && (int)epC.size() == (1 << sz)/2) {
				vector<int> ret;
				for (int c : enC) {
					ret.push_back(c);
				}
				for (int c : epC) {
					ret.push_back(c);
				}
				assert((int)ret.size() == (1 << sz));
				return {ret, (int)ret.size()};
			}
			if ((int)onC.size() == (1 << sz)/2 && (int)opC.size() == (1 << sz)/2) {
				vector<int> ret;
				for (int c : onC) {
					ret.push_back(c);
				}
				for (int c : opC) {
					ret.push_back(c);
				}
				assert((int)ret.size() == (1 << sz));
				return {ret, (int)ret.size()};
			}
		}
	}
	return {vector<int>(), 0};
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x600, %rsp            # imm = 0x600
movq %rdi, -0x468(%rbp)
movq %rdi, %rax
movq %rax, -0x460(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x458(%rbp)
addq $0x18, %rax
movq %rax, -0x450(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movq -0x450(%rbp), %rdi
movslq %eax, %rsi
callq 0x3d180
movq %rax, %rdi
callq 0xf940
cmpq $0x2, %rax
jb 0x170f9
movq -0x458(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x470(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movq -0x470(%rbp), %rdi
movslq %eax, %rsi
callq 0x3d180
movq %rax, %rdi
callq 0xf940
cmpq $0x2, %rax
jae 0x17160
xorps %xmm0, %xmm0
movaps %xmm0, -0x30(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0xa7e0
movq -0x468(%rbp), %rdi
movq -0x478(%rbp), %rsi
movl $0x0, -0x34(%rbp)
leaq -0x34(%rbp), %rdx
callq 0x3d260
jmp 0x17138
leaq -0x30(%rbp), %rdi
callq 0xab00
jmp 0x18c57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xab00
jmp 0x18c67
movl $0x2, -0x48(%rbp)
movq -0x458(%rbp), %rax
movl -0x48(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, -0x47c(%rbp)
addq $0x18, %rax
movq %rax, -0x490(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movq -0x490(%rbp), %rdi
movslq %eax, %rsi
callq 0x3d180
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movq -0x458(%rbp), %rax
movq %rcx, -0x50(%rbp)
addq $0x18, %rax
movq %rax, -0x488(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movq -0x488(%rbp), %rdi
movslq %eax, %rsi
callq 0x3d180
movq %rax, %rdi
callq 0xf940
movq %rax, -0x58(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xf190
movq %rax, %rcx
movl -0x47c(%rbp), %eax
movq (%rcx), %rcx
cmpl %ecx, %eax
jg 0x1720f
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x17167
movl -0x48(%rbp), %eax
addl $0x2, %eax
cltq
movq %rax, -0x4a0(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0x3d9e0
movq -0x4a0(%rbp), %rsi
movq -0x498(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0x3da00
jmp 0x17247
leaq -0x71(%rbp), %rdi
callq 0x3da70
movl -0x48(%rbp), %eax
addl $0x2, %eax
cltq
movq %rax, -0x4b0(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x3d9e0
movq -0x4b0(%rbp), %rsi
movq -0x4a8(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x3da00
jmp 0x1728e
leaq -0x91(%rbp), %rdi
callq 0x3da70
movq -0x458(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x4c0(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x4b4(%rbp)
jmp 0x172bc
movq -0x4c0(%rbp), %rdi
movl -0x4b4(%rbp), %eax
movslq %eax, %rsi
callq 0x3d180
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x3d080
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x1731a
jmp 0x174a6
leaq -0xa8(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xb4(%rbp)
movslq -0xb4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movl -0x48(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x173a0
jmp 0x17495
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x71(%rbp), %rdi
callq 0x3da70
jmp 0x18c67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x91(%rbp), %rdi
callq 0x3da70
jmp 0x18c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x18c40
movq -0x458(%rbp), %rdi
movslq -0xb4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
cmpq $0x3, %rax
jae 0x173c6
jmp 0x17495
movq -0x458(%rbp), %rdi
movslq -0xb4(%rbp), %rsi
callq 0x3d060
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x3d080
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x1741f
jmp 0x17493
leaq -0xc8(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xd4(%rbp)
movslq -0xb4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
decl %eax
movslq %eax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0xd4(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x4c8(%rbp)
jmp 0x17474
movq -0x4c8(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
leaq -0xc8(%rbp), %rdi
callq 0x3d160
jmp 0x17406
jmp 0x17495
leaq -0xa8(%rbp), %rdi
callq 0x3d160
jmp 0x172fe
movq -0x458(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x4d8(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x4cc(%rbp)
jmp 0x174c8
movq -0x4d8(%rbp), %rdi
movl -0x4cc(%rbp), %eax
movslq %eax, %rsi
callq 0x3d180
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x3d080
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x17526
jmp 0x1766d
leaq -0xe8(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0xf4(%rbp)
movslq -0xf4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movl -0x48(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x17564
jmp 0x1765c
movq -0x458(%rbp), %rdi
movslq -0xf4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
cmpq $0x3, %rax
jae 0x1758a
jmp 0x1765c
movq -0x458(%rbp), %rdi
movslq -0xf4(%rbp), %rsi
callq 0x3d060
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rdi
callq 0x3d080
movq %rax, -0x108(%rbp)
movq -0x100(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x110(%rbp)
leaq -0x108(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x175e3
jmp 0x1765a
leaq -0x108(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x114(%rbp)
movslq -0xf4(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
decl %eax
movslq %eax, %rsi
leaq -0x90(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0x114(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x4e0(%rbp)
jmp 0x1763b
movq -0x4e0(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
leaq -0x108(%rbp), %rdi
callq 0x3d160
jmp 0x175ca
jmp 0x1765c
leaq -0xe8(%rbp), %rdi
callq 0x3d160
jmp 0x1750a
leaq -0x130(%rbp), %rdi
callq 0x3dae0
movq -0x458(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x4f0(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x4e4(%rbp)
jmp 0x1769b
movq -0x4f0(%rbp), %rdi
movl -0x4e4(%rbp), %eax
movslq %eax, %rsi
callq 0x3d180
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rdi
callq 0x3d080
movq %rax, -0x140(%rbp)
movq -0x138(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x148(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x176f9
jmp 0x17a99
leaq -0x140(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x14c(%rbp)
movslq -0x14c(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movl -0x48(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x17748
jmp 0x17a88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x18c34
movq -0x458(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
cmpq $0x3, %rax
jae 0x1776e
jmp 0x17a88
movq -0x458(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movq -0x458(%rbp), %rdi
subq $0x1, %rax
movl %eax, -0x150(%rbp)
movb $0x0, -0x151(%rbp)
movslq -0x14c(%rbp), %rsi
callq 0x3d060
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rdi
callq 0x3d080
movq %rax, -0x168(%rbp)
movq -0x160(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x170(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x177f6
jmp 0x178e3
leaq -0x168(%rbp), %rdi
callq 0x3d120
movl (%rax), %eax
movl %eax, -0x174(%rbp)
movl -0x174(%rbp), %edi
callq 0x3c880
movl %eax, -0x4f4(%rbp)
jmp 0x1781d
movl -0x4f4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x1782d
jmp 0x178d2
movslq -0x150(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0x174(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x500(%rbp)
jmp 0x17855
movq -0x500(%rbp), %rax
movl (%rax), %eax
movl -0x150(%rbp), %ecx
subl $0x2, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jge 0x1787d
movb $0x1, -0x151(%rbp)
jmp 0x178e3
movslq -0x150(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0x174(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x508(%rbp)
jmp 0x178a8
movq -0x508(%rbp), %rax
movl (%rax), %eax
movl -0x150(%rbp), %ecx
subl $0x2, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jge 0x178d0
movb $0x1, -0x151(%rbp)
jmp 0x178e3
jmp 0x178d2
leaq -0x168(%rbp), %rdi
callq 0x3d160
jmp 0x177da
testb $0x1, -0x151(%rbp)
je 0x178f1
jmp 0x17a88
xorps %xmm0, %xmm0
movaps %xmm0, -0x1b0(%rbp)
movq $0x0, -0x1a0(%rbp)
leaq -0x1b0(%rbp), %rdi
movq %rdi, -0x510(%rbp)
callq 0xa7e0
movq -0x510(%rbp), %rsi
leaq -0x198(%rbp), %rdi
leaq -0x14c(%rbp), %rdx
callq 0x3db30
jmp 0x17935
leaq -0x130(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x3db00
jmp 0x1794a
leaq -0x198(%rbp), %rdi
callq 0x3db70
leaq -0x1b0(%rbp), %rdi
callq 0xab00
movq -0x458(%rbp), %rdi
movslq -0x14c(%rbp), %rsi
callq 0x3d060
movq %rax, -0x1b8(%rbp)
movq -0x1b8(%rbp), %rdi
callq 0x3d080
movq %rax, -0x1c0(%rbp)
movq -0x1b8(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x1c8(%rbp)
leaq -0x1c0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x179be
jmp 0x17a86
leaq -0x1c0(%rbp), %rdi
callq 0x3d120
movl (%rax), %eax
movl %eax, -0x1cc(%rbp)
movl -0x1cc(%rbp), %edi
callq 0x3c880
movl %eax, -0x514(%rbp)
jmp 0x179e5
movl -0x514(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x17a2c
jmp 0x17a75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17a1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x3db70
leaq -0x1b0(%rbp), %rdi
callq 0xab00
jmp 0x18c34
leaq -0x130(%rbp), %rdi
callq 0x3db90
movq %rax, -0x520(%rbp)
movl -0x1cc(%rbp), %edi
callq 0x3c880
movl %eax, -0x518(%rbp)
jmp 0x17a52
movq -0x520(%rbp), %rdi
movl -0x518(%rbp), %eax
movl %eax, -0x1d0(%rbp)
leaq -0x1d0(%rbp), %rsi
callq 0x3c850
jmp 0x17a73
jmp 0x17a75
leaq -0x1c0(%rbp), %rdi
callq 0x3d160
jmp 0x179a2
jmp 0x17a88
leaq -0x140(%rbp), %rdi
callq 0x3d160
jmp 0x176dd
movq -0x458(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x530(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x524(%rbp)
jmp 0x17abb
movq -0x530(%rbp), %rdi
movl -0x524(%rbp), %eax
movslq %eax, %rsi
callq 0x3d180
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rdi
callq 0x3d080
movq %rax, -0x1e0(%rbp)
movq -0x1d8(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x1e8(%rbp)
leaq -0x1e0(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x17b19
jmp 0x17ea8
leaq -0x1e0(%rbp), %rdi
callq 0x3d120
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x1ec(%rbp)
movslq -0x1ec(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movl -0x48(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jle 0x17b57
jmp 0x17e97
movq -0x458(%rbp), %rdi
movslq -0x1ec(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
cmpq $0x3, %rax
jae 0x17b7d
jmp 0x17e97
movq -0x458(%rbp), %rdi
movslq -0x1ec(%rbp), %rsi
callq 0x3d060
movq %rax, %rdi
callq 0xf940
movq -0x458(%rbp), %rdi
subq $0x1, %rax
movl %eax, -0x1f0(%rbp)
movb $0x0, -0x1f1(%rbp)
movslq -0x1ec(%rbp), %rsi
callq 0x3d060
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rdi
callq 0x3d080
movq %rax, -0x208(%rbp)
movq -0x200(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x210(%rbp)
leaq -0x208(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x17c05
jmp 0x17cf2
leaq -0x208(%rbp), %rdi
callq 0x3d120
movl (%rax), %eax
movl %eax, -0x214(%rbp)
movl -0x214(%rbp), %edi
callq 0x3c880
movl %eax, -0x534(%rbp)
jmp 0x17c2c
movl -0x534(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x17c3c
jmp 0x17ce1
movslq -0x1f0(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0x214(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x540(%rbp)
jmp 0x17c64
movq -0x540(%rbp), %rax
movl (%rax), %eax
movl -0x1f0(%rbp), %ecx
subl $0x2, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jge 0x17c8c
movb $0x1, -0x1f1(%rbp)
jmp 0x17cf2
movslq -0x1f0(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x3da90
movq %rax, %rdi
leaq -0x214(%rbp), %rsi
callq 0x3dab0
movq %rax, -0x548(%rbp)
jmp 0x17cb7
movq -0x548(%rbp), %rax
movl (%rax), %eax
movl -0x1f0(%rbp), %ecx
subl $0x2, %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jge 0x17cdf
movb $0x1, -0x1f1(%rbp)
jmp 0x17cf2
jmp 0x17ce1
leaq -0x208(%rbp), %rdi
callq 0x3d160
jmp 0x17be9
testb $0x1, -0x1f1(%rbp)
je 0x17d00
jmp 0x17e97
xorps %xmm0, %xmm0
movaps %xmm0, -0x250(%rbp)
movq $0x0, -0x240(%rbp)
leaq -0x250(%rbp), %rdi
movq %rdi, -0x550(%rbp)
callq 0xa7e0
movq -0x550(%rbp), %rsi
leaq -0x238(%rbp), %rdi
leaq -0x1ec(%rbp), %rdx
callq 0x3db30
jmp 0x17d44
leaq -0x130(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x3db00
jmp 0x17d59
leaq -0x238(%rbp), %rdi
callq 0x3db70
leaq -0x250(%rbp), %rdi
callq 0xab00
movq -0x458(%rbp), %rdi
movslq -0x1ec(%rbp), %rsi
callq 0x3d060
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
callq 0x3d080
movq %rax, -0x260(%rbp)
movq -0x258(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x268(%rbp)
leaq -0x260(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x17dcd
jmp 0x17e95
leaq -0x260(%rbp), %rdi
callq 0x3d120
movl (%rax), %eax
movl %eax, -0x26c(%rbp)
movl -0x26c(%rbp), %edi
callq 0x3c880
movl %eax, -0x554(%rbp)
jmp 0x17df4
movl -0x554(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x17e3b
jmp 0x17e84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x17e2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x3db70
leaq -0x250(%rbp), %rdi
callq 0xab00
jmp 0x18c34
leaq -0x130(%rbp), %rdi
callq 0x3db90
movq %rax, -0x560(%rbp)
movl -0x26c(%rbp), %edi
callq 0x3c880
movl %eax, -0x558(%rbp)
jmp 0x17e61
movq -0x560(%rbp), %rdi
movl -0x558(%rbp), %eax
movl %eax, -0x270(%rbp)
leaq -0x270(%rbp), %rsi
callq 0x3c850
jmp 0x17e82
jmp 0x17e84
leaq -0x260(%rbp), %rdi
callq 0x3d160
jmp 0x17db1
jmp 0x17e97
leaq -0x1e0(%rbp), %rdi
callq 0x3d160
jmp 0x17afd
leaq -0x130(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x3dc10
movq -0x568(%rbp), %rdi
movq %rax, -0x278(%rbp)
callq 0x3dc40
movq %rax, -0x280(%rbp)
movq -0x278(%rbp), %rdi
movq -0x280(%rbp), %rsi
callq 0x3dbd0
jmp 0x17eea
leaq -0x298(%rbp), %rdi
callq 0xa7e0
movl $0x0, -0x29c(%rbp)
movl -0x29c(%rbp), %eax
movq %rax, -0x570(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3dc70
movq %rax, %rcx
movq -0x570(%rbp), %rax
cmpq %rcx, %rax
jae 0x18b79
cmpl $0x0, -0x29c(%rbp)
je 0x17f90
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x3dcc0
movq -0x588(%rbp), %rdi
movq %rax, -0x580(%rbp)
movl -0x29c(%rbp), %eax
decl %eax
movl %eax, %esi
callq 0x3dcc0
movq -0x580(%rbp), %rdi
movq %rax, %rsi
callq 0x3dc90
movb %al, -0x571(%rbp)
jmp 0x17f84
movb -0x571(%rbp), %al
testb $0x1, %al
jne 0x17f90
jmp 0x17faf
leaq -0x298(%rbp), %rdi
callq 0x3d200
jmp 0x17faf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x18c28
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x3dcc0
movq %rax, %rsi
addq $0x18, %rsi
leaq -0x298(%rbp), %rdi
callq 0xa8c0
jmp 0x17fd8
movl -0x29c(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movq %rax, -0x590(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3dc70
movq %rax, %rcx
movq -0x590(%rbp), %rax
cmpq %rcx, %rax
je 0x18063
movl -0x29c(%rbp), %eax
incl %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x3dcc0
movq -0x5a8(%rbp), %rdi
movq %rax, -0x5a0(%rbp)
movl -0x29c(%rbp), %eax
movl %eax, %esi
callq 0x3dcc0
movq -0x5a0(%rbp), %rdi
movq %rax, %rsi
callq 0x3dc90
movb %al, -0x591(%rbp)
jmp 0x18054
movb -0x591(%rbp), %al
testb $0x1, %al
jne 0x18063
jmp 0x18b63
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x3dcc0
movq %rax, %rdi
callq 0xf940
movl %eax, -0x2a0(%rbp)
movl -0x2a0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl %eax, -0x5ac(%rbp)
leaq -0x298(%rbp), %rdi
callq 0xf940
movq %rax, %rcx
movl -0x5ac(%rbp), %eax
cmpl %ecx, %eax
jle 0x180b6
jmp 0x18b65
leaq -0x2b8(%rbp), %rdi
callq 0xa7e0
leaq -0x2d0(%rbp), %rdi
callq 0xa7e0
leaq -0x2e8(%rbp), %rdi
callq 0xa7e0
leaq -0x300(%rbp), %rdi
callq 0xa7e0
movl $0x0, -0x304(%rbp)
movl -0x304(%rbp), %eax
movl %eax, -0x5b0(%rbp)
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x3dcc0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movl -0x5b0(%rbp), %eax
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jge 0x1867f
movb $0x0, -0x305(%rbp)
movl $0xffffffff, -0x30c(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x310(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x314(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x318(%rbp) # imm = 0xFFFFFFFF
leaq -0x298(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rdi
callq 0xa800
movq %rax, -0x328(%rbp)
movq -0x320(%rbp), %rdi
callq 0xa830
movq %rax, -0x330(%rbp)
leaq -0x328(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x181b1
jmp 0x18536
leaq -0x328(%rbp), %rdi
callq 0xa8a0
movq -0x458(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x334(%rbp)
movb $0x0, -0x335(%rbp)
movb $0x0, -0x336(%rbp)
movl $0x0, -0x33c(%rbp)
movslq -0x334(%rbp), %rsi
callq 0x3d060
movq %rax, -0x348(%rbp)
movq -0x348(%rbp), %rdi
callq 0x3d080
movq %rax, -0x350(%rbp)
movq -0x348(%rbp), %rdi
callq 0x3d0b0
movq %rax, -0x358(%rbp)
leaq -0x350(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x3d0e0
testb $0x1, %al
jne 0x18239
jmp 0x1846d
leaq -0x350(%rbp), %rdi
callq 0x3d120
movl (%rax), %eax
movl %eax, -0x35c(%rbp)
movl -0x35c(%rbp), %edi
callq 0x3c890
movl %eax, -0x5b4(%rbp)
jmp 0x18260
movl -0x5b4(%rbp), %eax
cmpl $0x0, %eax
jne 0x1828d
movl -0x33c(%rbp), %eax
xorl $0x1, %eax
movl %eax, -0x33c(%rbp)
jmp 0x1828d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x18b2e
movl -0x35c(%rbp), %eax
movl %eax, -0x5bc(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x5b8(%rbp)
jmp 0x182a9
movl -0x5bc(%rbp), %eax
movl -0x5b8(%rbp), %ecx
cmpl %ecx, %eax
jne 0x182c5
movb $0x1, -0x336(%rbp)
jmp 0x1845a
movl -0x35c(%rbp), %eax
movl %eax, -0x5c4(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x5c0(%rbp)
jmp 0x182e1
movl -0x5c4(%rbp), %eax
movl -0x5c0(%rbp), %ecx
cmpl %ecx, %eax
jne 0x182fd
movb $0x0, -0x336(%rbp)
jmp 0x18458
movb $0x0, -0x35d(%rbp)
movl -0x35c(%rbp), %edi
callq 0x3c880
movl %eax, -0x5c8(%rbp)
jmp 0x18317
movl -0x5c8(%rbp), %eax
movl %eax, -0x364(%rbp)
movl $0x0, -0x368(%rbp)
movl -0x368(%rbp), %eax
movl %eax, -0x5cc(%rbp)
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x3dcc0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movl -0x5cc(%rbp), %eax
cmpl %ecx, %eax
jge 0x18444
movl -0x364(%rbp), %eax
movl %eax, -0x5d0(%rbp)
movl -0x29c(%rbp), %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
callq 0x3dcc0
movq %rax, %rdi
movslq -0x368(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x5d0(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1842e
movl -0x35c(%rbp), %edi
callq 0x3c890
movl %eax, -0x5d4(%rbp)
jmp 0x183b9
movl -0x5d4(%rbp), %eax
cmpl $0x0, %eax
jne 0x183e9
movl -0x304(%rbp), %eax
movl -0x368(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jne 0x183e9
movb $0x1, -0x35d(%rbp)
jmp 0x18444
movl -0x35c(%rbp), %edi
callq 0x3c890
movl %eax, -0x5d8(%rbp)
jmp 0x183fc
movl -0x5d8(%rbp), %eax
cmpl $0x1, %eax
jne 0x1842c
movl -0x304(%rbp), %eax
movl -0x368(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
andl %ecx, %eax
cmpl $0x0, %eax
jle 0x1842c
movb $0x1, -0x35d(%rbp)
jmp 0x18444
jmp 0x1842e
jmp 0x18430
movl -0x368(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x368(%rbp)
jmp 0x1832d
testb $0x1, -0x35d(%rbp)
jne 0x18456
movb $0x1, -0x335(%rbp)
jmp 0x1846d
jmp 0x18458
jmp 0x1845a
jmp 0x1845c
leaq -0x350(%rbp), %rdi
callq 0x3d160
jmp 0x1821d
testb $0x1, -0x335(%rbp)
jne 0x18523
movb $0x1, -0x305(%rbp)
movb -0x336(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x184a8
cmpl $0x0, -0x33c(%rbp)
jne 0x184a8
movl -0x334(%rbp), %eax
movl %eax, -0x30c(%rbp)
jmp 0x18521
movb -0x336(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x184cf
cmpl $0x1, -0x33c(%rbp)
jne 0x184cf
movl -0x334(%rbp), %eax
movl %eax, -0x310(%rbp)
jmp 0x1851f
movb -0x336(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x184f6
cmpl $0x0, -0x33c(%rbp)
jne 0x184f6
movl -0x334(%rbp), %eax
movl %eax, -0x314(%rbp)
jmp 0x1851d
movb -0x336(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x1851b
cmpl $0x1, -0x33c(%rbp)
jne 0x1851b
movl -0x334(%rbp), %eax
movl %eax, -0x318(%rbp)
jmp 0x1851d
jmp 0x1851f
jmp 0x18521
jmp 0x18523
jmp 0x18525
leaq -0x328(%rbp), %rdi
callq 0xa930
jmp 0x18195
cmpl $0x0, -0x30c(%rbp)
jl 0x18580
leaq -0x2b8(%rbp), %rdi
leaq -0x30c(%rbp), %rsi
callq 0xa8c0
jmp 0x18554
cmpl $-0x1, -0x314(%rbp)
jne 0x1855f
jmp 0x1857e
leaq 0x6dfb3(%rip), %rdi     # 0x86519
leaq 0x6dec2(%rip), %rsi     # 0x8642f
movl $0xf4, %edx
leaq 0x6dfaa(%rip), %rcx     # 0x86523
callq 0x4260
jmp 0x18580
cmpl $0x0, -0x310(%rbp)
jl 0x185ca
leaq -0x2d0(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0xa8c0
jmp 0x1859e
cmpl $-0x1, -0x318(%rbp)
jne 0x185a9
jmp 0x185c8
leaq 0x6dfbe(%rip), %rdi     # 0x8656e
leaq 0x6de78(%rip), %rsi     # 0x8642f
movl $0xf8, %edx
leaq 0x6df60(%rip), %rcx     # 0x86523
callq 0x4260
jmp 0x185ca
cmpl $0x0, -0x314(%rbp)
jl 0x18614
leaq -0x2e8(%rbp), %rdi
leaq -0x314(%rbp), %rsi
callq 0xa8c0
jmp 0x185e8
cmpl $-0x1, -0x30c(%rbp)
jne 0x185f3
jmp 0x18612
leaq 0x6df7e(%rip), %rdi     # 0x86578
leaq 0x6de2e(%rip), %rsi     # 0x8642f
movl $0xfc, %edx
leaq 0x6df16(%rip), %rcx     # 0x86523
callq 0x4260
jmp 0x18614
cmpl $0x0, -0x318(%rbp)
jl 0x1865e
leaq -0x300(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0xa8c0
jmp 0x18632
cmpl $-0x1, -0x310(%rbp)
jne 0x1863d
jmp 0x1865c
leaq 0x6df3e(%rip), %rdi     # 0x86582
leaq 0x6dde4(%rip), %rsi     # 0x8642f
movl $0x100, %edx            # imm = 0x100
leaq 0x6decc(%rip), %rcx     # 0x86523
callq 0x4260
jmp 0x1865e
testb $0x1, -0x305(%rbp)
jne 0x18669
jmp 0x1867f
jmp 0x1866b
movl -0x304(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x304(%rbp)
jmp 0x180f0
leaq -0x2b8(%rbp), %rdi
callq 0xf940
movl %eax, -0x5dc(%rbp)
movl -0x2a0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x5dc(%rbp), %eax
cmpl %ecx, %eax
jne 0x188b2
leaq -0x2e8(%rbp), %rdi
callq 0xf940
movl %eax, -0x5e0(%rbp)
movl -0x2a0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x5e0(%rbp), %eax
cmpl %ecx, %eax
jne 0x188b2
leaq -0x380(%rbp), %rdi
callq 0xa7e0
leaq -0x2b8(%rbp), %rax
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rdi
callq 0xa800
movq %rax, -0x390(%rbp)
movq -0x388(%rbp), %rdi
callq 0xa830
movq %rax, -0x398(%rbp)
leaq -0x390(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x18746
jmp 0x1879c
leaq -0x390(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x39c(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x39c(%rbp), %rsi
callq 0xa8c0
jmp 0x1876f
jmp 0x18771
leaq -0x390(%rbp), %rdi
callq 0xa930
jmp 0x1872d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x380(%rbp), %rdi
callq 0xab00
jmp 0x18b2e
leaq -0x2e8(%rbp), %rax
movq %rax, -0x3a8(%rbp)
movq -0x3a8(%rbp), %rdi
callq 0xa800
movq %rax, -0x3b0(%rbp)
movq -0x3a8(%rbp), %rdi
callq 0xa830
movq %rax, -0x3b8(%rbp)
leaq -0x3b0(%rbp), %rdi
leaq -0x3b8(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x187e9
jmp 0x18822
leaq -0x3b0(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x3bc(%rbp)
leaq -0x380(%rbp), %rdi
leaq -0x3bc(%rbp), %rsi
callq 0xa8c0
jmp 0x18812
jmp 0x18814
leaq -0x3b0(%rbp), %rdi
callq 0xa930
jmp 0x187d0
leaq -0x380(%rbp), %rdi
callq 0xf940
movl -0x2a0(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jne 0x18843
jmp 0x18862
leaq 0x6dd42(%rip), %rdi     # 0x8658c
leaq 0x6dbde(%rip), %rsi     # 0x8642f
movl $0x10c, %edx            # imm = 0x10C
leaq 0x6dcc6(%rip), %rcx     # 0x86523
callq 0x4260
leaq -0x380(%rbp), %rdi
movq %rdi, -0x5e8(%rbp)
callq 0xf940
movq -0x468(%rbp), %rdi
movq -0x5e8(%rbp), %rsi
movl %eax, -0x3c0(%rbp)
leaq -0x3c0(%rbp), %rdx
callq 0x3dce0
jmp 0x18897
movl $0x1, -0x3c4(%rbp)
leaq -0x380(%rbp), %rdi
callq 0xab00
jmp 0x18aec
leaq -0x2d0(%rbp), %rdi
callq 0xf940
movl %eax, -0x5ec(%rbp)
movl -0x2a0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x5ec(%rbp), %eax
cmpl %ecx, %eax
jne 0x18ae2
leaq -0x300(%rbp), %rdi
callq 0xf940
movl %eax, -0x5f0(%rbp)
movl -0x2a0(%rbp), %ecx
movl $0x1, %eax
shll %cl, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x5f0(%rbp), %eax
cmpl %ecx, %eax
jne 0x18ae2
leaq -0x3e0(%rbp), %rdi
callq 0xa7e0
leaq -0x2d0(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq -0x3e8(%rbp), %rdi
callq 0xa800
movq %rax, -0x3f0(%rbp)
movq -0x3e8(%rbp), %rdi
callq 0xa830
movq %rax, -0x3f8(%rbp)
leaq -0x3f0(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x18979
jmp 0x189cf
leaq -0x3f0(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x3fc(%rbp)
leaq -0x3e0(%rbp), %rdi
leaq -0x3fc(%rbp), %rsi
callq 0xa8c0
jmp 0x189a2
jmp 0x189a4
leaq -0x3f0(%rbp), %rdi
callq 0xa930
jmp 0x18960
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xab00
jmp 0x18b2e
leaq -0x300(%rbp), %rax
movq %rax, -0x408(%rbp)
movq -0x408(%rbp), %rdi
callq 0xa800
movq %rax, -0x410(%rbp)
movq -0x408(%rbp), %rdi
callq 0xa830
movq %rax, -0x418(%rbp)
leaq -0x410(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x18a1c
jmp 0x18a55
leaq -0x410(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x41c(%rbp)
leaq -0x3e0(%rbp), %rdi
leaq -0x41c(%rbp), %rsi
callq 0xa8c0
jmp 0x18a45
jmp 0x18a47
leaq -0x410(%rbp), %rdi
callq 0xa930
jmp 0x18a03
leaq -0x3e0(%rbp), %rdi
callq 0xf940
movl -0x2a0(%rbp), %ecx
movl $0x1, %edx
shll %cl, %edx
movl %edx, %ecx
cmpl %ecx, %eax
jne 0x18a76
jmp 0x18a95
leaq 0x6db0f(%rip), %rdi     # 0x8658c
leaq 0x6d9ab(%rip), %rsi     # 0x8642f
movl $0x117, %edx            # imm = 0x117
leaq 0x6da93(%rip), %rcx     # 0x86523
callq 0x4260
leaq -0x3e0(%rbp), %rdi
movq %rdi, -0x5f8(%rbp)
callq 0xf940
movq -0x468(%rbp), %rdi
movq -0x5f8(%rbp), %rsi
movl %eax, -0x420(%rbp)
leaq -0x420(%rbp), %rdx
callq 0x3dce0
jmp 0x18aca
movl $0x1, -0x3c4(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0xab00
jmp 0x18aec
movl $0x0, -0x3c4(%rbp)
leaq -0x300(%rbp), %rdi
callq 0xab00
leaq -0x2e8(%rbp), %rdi
callq 0xab00
leaq -0x2d0(%rbp), %rdi
callq 0xab00
leaq -0x2b8(%rbp), %rdi
callq 0xab00
movl -0x3c4(%rbp), %eax
testl %eax, %eax
jne 0x18bf9
jmp 0x18b2c
jmp 0x18b63
leaq -0x300(%rbp), %rdi
callq 0xab00
leaq -0x2e8(%rbp), %rdi
callq 0xab00
leaq -0x2d0(%rbp), %rdi
callq 0xab00
leaq -0x2b8(%rbp), %rdi
callq 0xab00
jmp 0x18c28
jmp 0x18b65
movl -0x29c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x29c(%rbp)
jmp 0x17f00
xorps %xmm0, %xmm0
movaps %xmm0, -0x440(%rbp)
movq $0x0, -0x430(%rbp)
leaq -0x440(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0xa7e0
movq -0x468(%rbp), %rdi
movq -0x600(%rbp), %rsi
movl $0x0, -0x444(%rbp)
leaq -0x444(%rbp), %rdx
callq 0x3d260
jmp 0x18bc7
leaq -0x440(%rbp), %rdi
callq 0xab00
movl $0x1, -0x3c4(%rbp)
jmp 0x18bf9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x440(%rbp), %rdi
callq 0xab00
jmp 0x18c28
leaq -0x298(%rbp), %rdi
callq 0xab00
leaq -0x130(%rbp), %rdi
callq 0x3dd20
leaq -0x90(%rbp), %rdi
callq 0x3dd80
leaq -0x70(%rbp), %rdi
callq 0x3dd80
jmp 0x18c57
leaq -0x298(%rbp), %rdi
callq 0xab00
leaq -0x130(%rbp), %rdi
callq 0x3dd20
leaq -0x90(%rbp), %rdi
callq 0x3dd80
leaq -0x70(%rbp), %rdi
callq 0x3dd80
jmp 0x18c67
movq -0x460(%rbp), %rax
addq $0x600, %rsp            # imm = 0x600
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x4610