// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x178, %rsp            # imm = 0x178
movl %edx, %r14d
leal (%r14,%r14), %r8d
movslq %r8d, %rax
movq %rsi, 0x8(%rsp)
movq 0x18(%rsi), %rcx
leaq (%rax,%rax,2), %r12
movq 0x8(%rcx,%r12,8), %rax
subq (%rcx,%r12,8), %rax
sarq $0x2, %rax
cmpq $0x2, %rax
jb 0xd65c
movl %r8d, %edx
orl $0x1, %edx
movl %edx, 0x130(%rsp)
movslq %edx, %rdx
leaq (%rdx,%rdx,2), %rbx
movq 0x8(%rcx,%rbx,8), %rdx
subq (%rcx,%rbx,8), %rdx
sarq $0x2, %rdx
cmpq $0x2, %rdx
jae 0xd66e
xorps %xmm0, %xmm0
movups %xmm0, 0xc(%rdi)
movups %xmm0, (%rdi)
movq %rdi, %rax
jmp 0xe41f
movl %r8d, 0x134(%rsp)
cmpq %rax, %rdx
cmovbq %rdx, %rax
movl $0x3, %r13d
leal -0x1(%r13), %ecx
movl $0x1, %edx
shll %cl, %edx
incq %r13
cmpl %eax, %edx
jle 0xd683
movq %rdi, 0xa0(%rsp)
leaq 0x160(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %r13, %rsi
callq 0x1ee10
leaq 0x148(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %r13, %rsi
callq 0x1ee10
decq %r13
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax,%r12,8), %r15
movq 0x8(%rax,%r12,8), %rcx
movq %rcx, 0x60(%rsp)
cmpq %rcx, %r15
movq %r13, 0x58(%rsp)
movq %rbx, 0x70(%rsp)
movq %r12, 0x18(%rsp)
je 0xd7a0
leaq 0x20(%rsp), %r13
movslq (%r15), %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rbp
movq (%rcx,%rbp,8), %rbx
movq 0x8(%rcx,%rbp,8), %r12
movq %r12, %rax
subq %rbx, %rax
sarq $0x2, %rax
cmpq $0x3, %rax
jb 0xd779
cmpl %eax, 0x58(%rsp)
jl 0xd779
cmpq %r12, %rbx
je 0xd779
movl (%rbx), %eax
movl %eax, 0x20(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax,%rbp,8), %rcx
subq (%rax,%rbp,8), %rcx
shlq $0x1e, %rcx
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
addq %rax, %rcx
sarq $0x20, %rcx
imulq $0x38, %rcx, %rdi
addq 0x160(%rsp), %rdi
movq %r13, %rsi
callq 0x21222
incl (%rax)
addq $0x4, %rbx
jmp 0xd72c
addq $0x4, %r15
cmpq 0x60(%rsp), %r15
jne 0xd6fe
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x58(%rsp), %r13
movq 0x70(%rsp), %rbx
movq 0x18(%rsp), %r12
movq (%rax,%rbx,8), %r15
movq 0x8(%rax,%rbx,8), %rcx
movq %rcx, 0x60(%rsp)
cmpq %rcx, %r15
je 0xd85e
leaq 0x20(%rsp), %r13
movslq (%r15), %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rbp
movq (%rcx,%rbp,8), %rbx
movq 0x8(%rcx,%rbp,8), %r12
movq %r12, %rax
subq %rbx, %rax
sarq $0x2, %rax
cmpq $0x3, %rax
jb 0xd837
cmpl %eax, 0x58(%rsp)
jl 0xd837
cmpq %r12, %rbx
je 0xd837
movl (%rbx), %eax
movl %eax, 0x20(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x8(%rax,%rbp,8), %rcx
subq (%rax,%rbp,8), %rcx
shlq $0x1e, %rcx
movabsq $-0x100000000, %rax     # imm = 0xFFFFFFFF00000000
addq %rax, %rcx
sarq $0x20, %rcx
imulq $0x38, %rcx, %rdi
addq 0x148(%rsp), %rdi
movq %r13, %rsi
callq 0x21222
incl (%rax)
addq $0x4, %rbx
jmp 0xd7ea
addq $0x4, %r15
cmpq 0x60(%rsp), %r15
jne 0xd7bc
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x58(%rsp), %r13
movq 0x70(%rsp), %rbx
movq 0x18(%rsp), %r12
xorps %xmm0, %xmm0
movaps %xmm0, 0x80(%rsp)
movq $0x0, 0x90(%rsp)
movq (%rax,%r12,8), %rcx
movq 0x8(%rax,%r12,8), %rdx
movq %rdx, 0x18(%rsp)
cmpq %rdx, %rcx
je 0xda1e
movq %rcx, 0x60(%rsp)
movl (%rcx), %edi
movslq %edi, %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rsi
movq (%rcx,%rsi,8), %rbp
movq 0x8(%rcx,%rsi,8), %r15
movq %r15, %r12
subq %rbp, %r12
movq %r12, %rax
sarq $0x2, %rax
cmpl %eax, %r13d
setl %cl
cmpq $0x3, %rax
setb %dl
orb %cl, %dl
jne 0xd9fc
movl %edi, 0x14(%rsp)
movq %rsi, 0x78(%rsp)
cmpq %r15, %rbp
je 0xd953
shlq $0x1e, %r12
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
addq %rcx, %r12
sarq $0x20, %r12
leal -0x3(%rax), %ecx
movl $0x1, %r13d
shll %cl, %r13d
movl (%rbp), %eax
movl %eax, 0x20(%rsp)
sarl %eax
cmpl %r14d, %eax
je 0xd94a
imulq $0x38, %r12, %rbx
movq 0x160(%rsp), %rdi
addq %rbx, %rdi
leaq 0x20(%rsp), %rsi
callq 0x21222
cmpl %r13d, (%rax)
jl 0xd9f7
addq 0x148(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rsi
callq 0x21222
cmpl %r13d, (%rax)
jl 0xd9f7
addq $0x4, %rbp
cmpq %r15, %rbp
jne 0xd8fc
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl 0x14(%rsp), %eax
movl %eax, 0x38(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x214d4
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
movq 0x58(%rsp), %r13
movq 0x78(%rsp), %rbx
je 0xd99f
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rbx, %rcx
movq (%rax,%rbx,8), %rbx
movq 0x8(%rax,%rcx,8), %r15
cmpq %r15, %rbx
je 0xd9fc
movl (%rbx), %eax
sarl %eax
cmpl %r14d, %eax
je 0xd9f1
movq 0x88(%rsp), %rdi
movl %eax, 0x20(%rsp)
movq -0x18(%rdi), %rsi
cmpq -0x10(%rdi), %rsi
je 0xd9e3
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, -0x18(%rdi)
jmp 0xd9f1
addq $-0x20, %rdi
leaq 0x20(%rsp), %rdx
callq 0x1ffb8
addq $0x4, %rbx
jmp 0xd9b3
movq 0x58(%rsp), %r13
movq 0x60(%rsp), %rcx
addq $0x4, %rcx
cmpq 0x18(%rsp), %rcx
jne 0xd88c
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x70(%rsp), %rbx
movq (%rax,%rbx,8), %rcx
movq 0x8(%rax,%rbx,8), %rax
movq %rax, 0x18(%rsp)
cmpq %rax, %rcx
je 0xdbb9
movq %rcx, 0x60(%rsp)
movl (%rcx), %edi
movslq %edi, %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rsi
movq (%rcx,%rsi,8), %rbp
movq 0x8(%rcx,%rsi,8), %r12
movq %r12, %r15
subq %rbp, %r15
movq %r15, %rax
sarq $0x2, %rax
cmpl %eax, %r13d
setl %cl
cmpq $0x3, %rax
setb %dl
orb %cl, %dl
jne 0xdba5
movl %edi, 0x14(%rsp)
movq %rsi, 0x78(%rsp)
cmpq %r12, %rbp
je 0xdafc
shlq $0x1e, %r15
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
addq %rcx, %r15
sarq $0x20, %r15
leal -0x3(%rax), %ecx
movl $0x1, %r13d
shll %cl, %r13d
movl (%rbp), %eax
movl %eax, 0x20(%rsp)
sarl %eax
cmpl %r14d, %eax
je 0xdaf3
imulq $0x38, %r15, %rbx
movq 0x160(%rsp), %rdi
addq %rbx, %rdi
leaq 0x20(%rsp), %rsi
callq 0x21222
cmpl %r13d, (%rax)
jl 0xdba0
addq 0x148(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rsi
callq 0x21222
cmpl %r13d, (%rax)
jl 0xdba0
addq $0x4, %rbp
cmpq %r12, %rbp
jne 0xdaa5
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl 0x14(%rsp), %eax
movl %eax, 0x38(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x214d4
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
movq 0x58(%rsp), %r13
movq 0x78(%rsp), %rbx
je 0xdb48
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq %rbx, %rcx
movq (%rax,%rbx,8), %rbx
movq 0x8(%rax,%rcx,8), %r15
cmpq %r15, %rbx
je 0xdba5
movl (%rbx), %eax
sarl %eax
cmpl %r14d, %eax
je 0xdb9a
movq 0x88(%rsp), %rdi
movl %eax, 0x20(%rsp)
movq -0x18(%rdi), %rsi
cmpq -0x10(%rdi), %rsi
je 0xdb8c
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, -0x18(%rdi)
jmp 0xdb9a
addq $-0x20, %rdi
leaq 0x20(%rsp), %rdx
callq 0x1ffb8
addq $0x4, %rbx
jmp 0xdb5c
movq 0x58(%rsp), %r13
movq 0x60(%rsp), %rcx
addq $0x4, %rcx
cmpq 0x18(%rsp), %rcx
jne 0xda35
movq 0x80(%rsp), %r15
movq 0x88(%rsp), %rbx
cmpq %rbx, %r15
je 0xe3b9
movq %rbx, %rax
subq %r15, %rax
sarq $0x5, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x216c1
movq %r15, %rdi
movq %rbx, %rsi
callq 0x21777
movq 0x80(%rsp), %r13
movq 0x88(%rsp), %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
cmpq %r13, %r15
je 0xe3ca
xorl %r12d, %r12d
xorl %ebx, %ebx
testl %ebx, %ebx
je 0xdc70
movq %r12, %rax
shlq $0x5, %rax
leal -0x1(%rbx), %ecx
shlq $0x5, %rcx
movq (%r13,%rax), %rdi
movq 0x8(%r13,%rax), %rax
movq %rax, %rdx
subq %rdi, %rdx
movq (%r13,%rcx), %rsi
movq 0x8(%r13,%rcx), %rcx
subq %rsi, %rcx
cmpq %rcx, %rdx
jne 0xdc70
cmpq %rdi, %rax
je 0xdc81
callq 0x32c0
testl %eax, %eax
je 0xdc81
movq 0x20(%rsp), %rax
cmpq %rax, 0x28(%rsp)
je 0xdc81
movq %rax, 0x28(%rsp)
shlq $0x5, %r12
leaq (%r12,%r13), %rdx
addq $0x18, %rdx
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0xdca8
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0xdcc2
leaq 0x20(%rsp), %rdi
callq 0x98f8
movq 0x80(%rsp), %r13
movq 0x88(%rsp), %r15
incl %ebx
movq %rbx, 0x140(%rsp)
movl %ebx, %eax
movq %r15, %rbx
subq %r13, %rbx
sarq $0x5, %rbx
cmpq %rax, %rbx
movq %r12, 0x138(%rsp)
movq %rax, 0xa8(%rsp)
jne 0xdcf9
movq 0x8(%r13,%r12), %rbp
subq (%r13,%r12), %rbp
jmp 0xdd2d
shlq $0x5, %rax
movq (%r13,%rax), %rdi
movq 0x8(%r13,%rax), %rax
movq %rax, %rdx
subq %rdi, %rdx
movq (%r13,%r12), %rsi
movq 0x8(%r13,%r12), %rbp
subq %rsi, %rbp
cmpq %rbp, %rdx
jne 0xdd2d
cmpq %rdi, %rax
je 0xdd4b
callq 0x32c0
testl %eax, %eax
je 0xdd4b
shrl $0x2, %ebp
movl %ebp, %ecx
movl $0x1, %ebp
shll %cl, %ebp
movq 0x28(%rsp), %rax
subq 0x20(%rsp), %rax
shrq $0x2, %rax
cmpl %eax, %ebp
jle 0xdd58
movq 0xa8(%rsp), %r12
jmp 0xe3a6
xorps %xmm0, %xmm0
movaps %xmm0, 0x110(%rsp)
xorl %eax, %eax
movq %rax, 0x120(%rsp)
movq %rax, 0x100(%rsp)
movaps %xmm0, 0xf0(%rsp)
movq %rax, 0xe0(%rsp)
movaps %xmm0, 0xd0(%rsp)
movq %rax, 0xc0(%rsp)
movaps %xmm0, 0xb0(%rsp)
movq 0x138(%rsp), %rcx
movq (%r13,%rcx), %rax
movq 0x8(%r13,%rcx), %rcx
movq %rcx, %r10
subq %rax, %rcx
movabsq $0x3fffffffc, %rdx      # imm = 0x3FFFFFFFC
andq %rdx, %rcx
movl $0x0, %ebx
movl $0x0, %r15d
cmpq $0x7c, %rcx
je 0xe0cb
movl %ebp, 0x12c(%rsp)
xorl %ebp, %ebp
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x40(%rsp)
movl %ecx, 0x4(%rsp)
movl %ecx, 0x6c(%rsp)
movl %ecx, 0x68(%rsp)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rcx
movq %rcx, 0x58(%rsp)
cmpq %rcx, %rsi
je 0xe0b4
movq 0x8(%rsp), %rcx
movq (%rcx), %r9
subq %rax, %r10
shrq $0x2, %r10
movq %r10, 0x60(%rsp)
andl $0x7fffffff, %r10d      # imm = 0x7FFFFFFF
movl $0xffffffff, 0x70(%rsp) # imm = 0xFFFFFFFF
movl $0x0, 0x18(%rsp)
movl $0xffffffff, 0x78(%rsp) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
movslq (%rsi), %r15
leaq (%r15,%r15,4), %rcx
movq (%r9,%rcx,8), %r12
movq 0x8(%r9,%rcx,8), %rcx
cmpq %rcx, %r12
je 0xded3
xorl %ebx, %ebx
xorl %edi, %edi
movl (%r12), %r13d
movl %r13d, %r14d
andl $0x1, %r14d
movb $0x1, %r11b
cmpl 0x134(%rsp), %r13d
je 0xdec2
cmpl 0x130(%rsp), %r13d
jne 0xde88
xorl %r11d, %r11d
jmp 0xdec2
cmpl $0x0, 0x60(%rsp)
jle 0xdf43
sarl %r13d
xorl %r11d, %r11d
cmpl (%rax,%r11,4), %r13d
jne 0xdeb2
testl %r14d, %r14d
sete %dl
btl %r11d, %ebp
setae %r8b
xorb %dl, %r8b
jne 0xdebf
incq %r11
cmpq %r11, %r10
jne 0xde99
jmp 0xdf43
movl %edi, %r11d
xorl %r14d, %ebx
addq $0x4, %r12
movl %r11d, %edi
cmpq %rcx, %r12
jne 0xde61
jmp 0xded8
xorl %r11d, %r11d
xorl %ebx, %ebx
testb $0x1, %r11b
jne 0xdef4
testl %ebx, %ebx
jne 0xdef4
movl %r15d, 0x40(%rsp)
movb $0x1, %cl
movl %ecx, 0x18(%rsp)
movl %r15d, 0x14(%rsp)
jmp 0xdf43
testb $0x1, %r11b
jne 0xdf11
cmpl $0x1, %ebx
jne 0xdf11
movl %r15d, 0x4(%rsp)
movb $0x1, %cl
movl %ecx, 0x18(%rsp)
movl %r15d, 0x78(%rsp)
jmp 0xdf43
testb $0x1, %r11b
je 0xdf2d
testl %ebx, %ebx
jne 0xdf2d
movl %r15d, 0x6c(%rsp)
movb $0x1, %cl
movl %ecx, 0x18(%rsp)
movl %r15d, 0x70(%rsp)
jmp 0xdf43
movb $0x1, %cl
movl %ecx, 0x18(%rsp)
testb $0x1, %r11b
je 0xdf43
cmpl $0x1, %ebx
jne 0xdf43
movl %r15d, 0x68(%rsp)
addq $0x4, %rsi
cmpq 0x58(%rsp), %rsi
jne 0xde48
movl 0x14(%rsp), %edx
testl %edx, %edx
movl 0x70(%rsp), %eax
movl 0x78(%rsp), %ecx
js 0xdfaa
movq 0x118(%rsp), %rsi
cmpq 0x120(%rsp), %rsi
je 0xdf84
movl %edx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x118(%rsp)
jmp 0xdf96
leaq 0x110(%rsp), %rdi
leaq 0x40(%rsp), %rdx
callq 0x98f8
cmpl $-0x1, 0x6c(%rsp)
jne 0xe450
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl 0x4(%rsp), %ecx
testl %ecx, %ecx
js 0xdff1
movq 0xf8(%rsp), %rsi
cmpq 0x100(%rsp), %rsi
je 0xdfd0
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xf8(%rsp)
jmp 0xdfe2
leaq 0xf0(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x98f8
cmpl $-0x1, 0x68(%rsp)
jne 0xe46f
movl 0x6c(%rsp), %eax
testl %eax, %eax
js 0xe034
movq 0xd8(%rsp), %rsi
cmpq 0xe0(%rsp), %rsi
je 0xe017
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xd8(%rsp)
jmp 0xe029
leaq 0xd0(%rsp), %rdi
leaq 0x6c(%rsp), %rdx
callq 0x98f8
cmpl $-0x1, 0x40(%rsp)
jne 0xe48e
movl 0x68(%rsp), %eax
testl %eax, %eax
js 0xe07b
movq 0xb8(%rsp), %rsi
cmpq 0xc0(%rsp), %rsi
je 0xe05e
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xb8(%rsp)
jmp 0xe070
leaq 0xb0(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x98f8
cmpl $-0x1, 0x4(%rsp)
jne 0xe431
testb $0x1, 0x18(%rsp)
je 0xe0b4
incl %ebp
movq 0x80(%rsp), %rcx
movq 0x138(%rsp), %rdx
movq (%rcx,%rdx), %rax
movq 0x8(%rcx,%rdx), %rcx
movq %rcx, %r10
subl %eax, %ecx
shrl $0x2, %ecx
movl $0x1, %esi
shll %cl, %esi
cmpl %esi, %ebp
jl 0xdde0
movq 0x110(%rsp), %rbx
movq 0x118(%rsp), %r15
movl 0x12c(%rsp), %ebp
movq %r15, %rcx
subq %rbx, %rcx
shrq $0x2, %rcx
movl %ebp, %eax
shrl $0x1f, %eax
addl %ebp, %eax
sarl %eax
cmpl %ecx, %eax
jne 0xe1d6
movq 0xd0(%rsp), %r12
movq 0xd8(%rsp), %r13
movq %r13, %rdx
subq %r12, %rdx
shrq $0x2, %rdx
cmpl %edx, %ecx
jne 0xe1d6
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
cmpq %r15, %rbx
je 0xe165
movl (%rbx), %eax
movl %eax, 0x4(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0xe13d
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x48(%rsp)
jmp 0xe14c
leaq 0x40(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x98f8
addq $0x4, %rbx
cmpq %r15, %rbx
jne 0xe11e
movq 0xd0(%rsp), %r12
movq 0xd8(%rsp), %r13
cmpq %r13, %r12
movq 0xa0(%rsp), %rbx
je 0xe1ab
movl (%r12), %eax
movl %eax, 0x4(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0xe193
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x48(%rsp)
jmp 0xe1a2
leaq 0x40(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x98f8
addq $0x4, %r12
cmpq %r13, %r12
jne 0xe172
movq 0x48(%rsp), %rax
subq 0x40(%rsp), %rax
shrq $0x2, %rax
cmpl %eax, %ebp
jne 0xe4ad
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
callq 0x1f3de
movl %ebp, 0x18(%rbx)
jmp 0xe2eb
movq 0xf0(%rsp), %r15
movq 0xf8(%rsp), %r13
movq %r13, %rcx
subq %r15, %rcx
shrq $0x2, %rcx
movb $0x1, %bl
cmpl %ecx, %eax
jne 0xe304
movl %ebp, %r14d
movq 0xb0(%rsp), %r12
movq 0xb8(%rsp), %rbp
movq %rbp, %rcx
subq %r12, %rcx
shrq $0x2, %rcx
cmpl %ecx, %eax
jne 0xe304
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
cmpq %r13, %r15
je 0xe27d
movl (%r15), %eax
movl %eax, 0x4(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0xe255
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x48(%rsp)
jmp 0xe264
leaq 0x40(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x98f8
addq $0x4, %r15
cmpq %r13, %r15
jne 0xe235
movq 0xb0(%rsp), %r12
movq 0xb8(%rsp), %rbp
cmpq %rbp, %r12
movq 0xa0(%rsp), %rbx
je 0xe2c3
movl (%r12), %eax
movl %eax, 0x4(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0xe2ab
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x48(%rsp)
jmp 0xe2ba
leaq 0x40(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x98f8
addq $0x4, %r12
cmpq %rbp, %r12
jne 0xe28a
movq 0x48(%rsp), %rax
subq 0x40(%rsp), %rax
shrq $0x2, %rax
cmpl %eax, %r14d
jne 0xe4cc
movq %rbx, %rdi
leaq 0x40(%rsp), %rsi
callq 0x1f3de
movl %r14d, 0x18(%rbx)
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xe302
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
xorl %ebx, %ebx
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0xe321
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
movq 0xa8(%rsp), %r12
je 0xe346
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
movq 0xa0(%rsp), %r14
je 0xe36b
movq 0x100(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0xe388
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
testb %bl, %bl
je 0xe3de
movq 0x80(%rsp), %r13
movq 0x88(%rsp), %r15
movq %r15, %rbx
subq %r13, %rbx
sarq $0x5, %rbx
cmpq %r12, %rbx
movq 0x140(%rsp), %rbx
ja 0xdc2e
jmp 0xe3ca
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
xorps %xmm0, %xmm0
movq 0xa0(%rsp), %r14
movups %xmm0, 0xc(%r14)
movups %xmm0, (%r14)
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xe3f5
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x80(%rsp), %rdi
callq 0x1eeb4
leaq 0x148(%rsp), %rdi
callq 0x1ef08
leaq 0x160(%rsp), %rdi
callq 0x1ef08
movq %r14, %rax
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2a26a(%rip), %rdi     # 0x386a2
leaq 0x2a110(%rip), %rsi     # 0x3854f
leaq 0x2a1fd(%rip), %rcx     # 0x38643
movl $0x100, %edx            # imm = 0x100
callq 0x31b0
leaq 0x2a1e2(%rip), %rdi     # 0x38639
leaq 0x2a0f1(%rip), %rsi     # 0x3854f
leaq 0x2a1de(%rip), %rcx     # 0x38643
movl $0xf4, %edx
callq 0x31b0
leaq 0x2a218(%rip), %rdi     # 0x3868e
leaq 0x2a0d2(%rip), %rsi     # 0x3854f
leaq 0x2a1bf(%rip), %rcx     # 0x38643
movl $0xf8, %edx
callq 0x31b0
leaq 0x2a203(%rip), %rdi     # 0x38698
leaq 0x2a0b3(%rip), %rsi     # 0x3854f
leaq 0x2a1a0(%rip), %rcx     # 0x38643
movl $0xfc, %edx
callq 0x31b0
leaq 0x2a1f8(%rip), %rdi     # 0x386ac
leaq 0x2a094(%rip), %rsi     # 0x3854f
leaq 0x2a181(%rip), %rcx     # 0x38643
movl $0x10c, %edx            # imm = 0x10C
callq 0x31b0
leaq 0x2a1d9(%rip), %rdi     # 0x386ac
leaq 0x2a075(%rip), %rsi     # 0x3854f
leaq 0x2a162(%rip), %rcx     # 0x38643
movl $0x117, %edx            # imm = 0x117
callq 0x31b0
jmp 0xe50e
jmp 0xe50e
movq %rax, %rbx
jmp 0xe5e4
jmp 0xe5c0
jmp 0xe504
jmp 0xe50e
jmp 0xe50e
jmp 0xe504
movq %rax, %rbx
jmp 0xe5a1
jmp 0xe50e
movq %rax, %rbx
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xe52d
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0xe52d
movq %rax, %rbx
movq 0xb0(%rsp), %rdi
testq %rdi, %rdi
je 0xe54a
movq 0xc0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0xe567
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0xf0(%rsp), %rdi
testq %rdi, %rdi
je 0xe584
movq 0x100(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x110(%rsp), %rdi
testq %rdi, %rdi
je 0xe5a1
movq 0x120(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xe5c3
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0xe5c3
jmp 0xe5c0
jmp 0xe5c0
jmp 0xe5c0
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x1eeb4
jmp 0xe5d7
jmp 0xe5d4
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
callq 0x1ef08
leaq 0x160(%rsp), %rdi
callq 0x1ef08
movq %rbx, %rdi
callq 0x34a0
nop