// File: /workspace/github_cpp_makefile_star2_O1/Laakeri[P]maxpre/src/cardinalityconstraint.cpp
// Function: maxPreprocessor::CardinalityConstraint::getClauses(int)
vector<vector<int> > CardinalityConstraint::getClauses(int freeVar) {
	// handle all special/easy cases separately
	int n = inputLiterals.size();
	assert(n > 0);
	if (type == CONSTRAINT_NEQUAL) {
		if (K < 0 || K > n) {
			if (outputLiterals.size() == 0) {
				return {};
			}
			else if (outputLiterals.size() == 1) {
				if (iff) return {{outputLiterals[0]}};
				else return {};
			}
			else {
				assert(0);
			}
		}
		if (K == 0) {
			if (outputLiterals.size() == 0) {
				return {inputLiterals};
			}
			else if (outputLiterals.size() == 1) {
				auto retC = inputLiterals;
				retC.push_back(-outputLiterals[0]);
				if (iff) {
					vector<vector<int> > clauses = {retC};
					for (int lit : inputLiterals) {
						clauses.push_back({-lit, outputLiterals[0]});
					}
					return clauses;
				}
				else {
					return {retC};
				}
			}
			else {
				assert(0);
			}
		}
		if (K == n) {
			if (outputLiterals.size() == 0) {
				auto retC = inputLiterals;
				for (int& lit : retC) {
					lit = -lit;
				}
				return {retC};
			}
			else if (outputLiterals.size() == 1) {
				auto retC = inputLiterals;
				for (int& lit : retC) {
					lit = -lit;
				}
				retC.push_back(-outputLiterals[0]);
				if (iff) {
					vector<vector<int> > clauses = {retC};
					for (int lit : inputLiterals) {
						clauses.push_back({lit, outputLiterals[0]});
					}
					return clauses;
				}
				else {
					return {retC};
				}
			}
			else {
				assert(0);
			}
		}
	}
	else if (type == CONSTRAINT_EQUAL) {
		if (K < 0 || K > n) {
			if (outputLiterals.size() == 0) {
				return {{freeVar}, {-freeVar}};
			}
			else if (outputLiterals.size() == 1) {
				return {{-outputLiterals[0]}};
			}
			else {
				assert(0);
			}
		}
		if (K == 0) {
			if (outputLiterals.size() == 0) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({-lit});
				}
				return clauses;
			}
			else if (outputLiterals.size() == 1) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({-lit, -outputLiterals[0]});
				}
				if (iff) {
					vector<int> retC = inputLiterals;
					retC.push_back(outputLiterals[0]);
					clauses.push_back(retC);
				}
				return clauses;
			}
			else {
				assert(0);
			}
		}
		if (K == n) {
			if (outputLiterals.size() == 0) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({lit});
				}
				return clauses;
			}
			else if (outputLiterals.size() == 1) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({lit, -outputLiterals[0]});
				}
				if (iff) {
					vector<int> retC = inputLiterals;
					for (int& lit : retC) {
						lit = -lit;
					}
					retC.push_back(outputLiterals[0]);
					clauses.push_back(retC);
				}
				return clauses;
			}
			else {
				assert(0);
			}
		}
	}
	else if (type == CONSTRAINT_LESS_EQ) {
		if (K < 0) {
			if (outputLiterals.size() == 0) {
				return {{freeVar}, {-freeVar}};
			}
			else if (outputLiterals.size() == 1) {
				return {{-outputLiterals[0]}};
			}
			else {
				assert(0);
			}
		}
		if (K >= n) {
			if (outputLiterals.size() == 0) {
				return {};
			}
			else if (outputLiterals.size() == 1) {
				if (iff) return {{outputLiterals[0]}};
				else return {};
			}
			else {
				assert(0);
			}
		}
		if (K == 0) {
			if (outputLiterals.size() == 0) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({-lit});
				}
				return clauses;
			}
			else if (outputLiterals.size() == 1) {
				vector<vector<int> > clauses;
				for (int lit : inputLiterals) {
					clauses.push_back({-lit, -outputLiterals[0]});
				}
				if (iff) {
					vector<int> retC = inputLiterals;
					retC.push_back(outputLiterals[0]);
					clauses.push_back(retC);
				}
				return clauses;
			}
			else {
				assert(0);
			}
		}
		if (K == n-1) {
			if (outputLiterals.size() == 0) {
				auto retC = inputLiterals;
				for (int& lit: retC) {
					lit = -lit;
				}
				return {retC};
			}
			else if (outputLiterals.size() == 1) {
				auto retC = inputLiterals;
				for (int& lit: retC) {
					lit = -lit;
				}
				retC.push_back(-outputLiterals[0]);
				if (iff) {
					vector<vector<int> > clauses = {retC};
					for (int lit : inputLiterals) {
						clauses.push_back({lit, outputLiterals[0]});
					}
					return clauses;
				}
				else {
					return {retC};
				}
			}
			else {
				assert(0);
			}
		}
	}
	else if (type == CONSTRAINT_ALL_LESS || type == CONSTRAINT_ALL_GREATER || type == CONSTRAINT_ALL_BOTH) {
		if (n == 1) {
			assert(outputLiterals.size() == 1);
			vector<vector<int> > clauses;
			if (type == CONSTRAINT_ALL_LESS || iff) {
				clauses.push_back({-inputLiterals[0], outputLiterals[0]});
			}
			if (type == CONSTRAINT_ALL_GREATER || iff) {
				clauses.push_back({inputLiterals[0], -outputLiterals[0]});
			}
			return clauses;
		}
	}
	else assert(0);
	assert((int)inputLiterals.size() > 1);
	// now n > 1
	vector<vector<int> > clauses;
	if (type == CONSTRAINT_LESS_EQ) {
		assert(0 < K && K+1 < (int)inputLiterals.size());
		if (coding == CODING_NETWORK) {
			pair<Formula, int> network = getBestLessNetwork(freeVar, inputLiterals);
			clauses = network.F.clauses;
			if (outputLiterals.size() == 0) {
				clauses.push_back({network.S});
			}
			else if (outputLiterals.size() == 1) {
				clauses.push_back({network.S, -outputLiterals[0]});
				if (iff) {
					clauses.push_back({-network.S, outputLiterals[0]});
				}
			}
			else {
				assert(0);
			}
		}
		else {
			assert(0);
		}
	}
	else if (type == CONSTRAINT_EQUAL) {
		assert(0 < K && K < (int)inputLiterals.size());
		if (coding == CODING_NETWORK) {
			pair<Formula, int> network = getEqualNetwork(freeVar, inputLiterals);
			clauses = network.F.clauses;
			if (outputLiterals.size() == 0) {
				clauses.push_back({network.S});
			}
			else if (outputLiterals.size() == 1) {
				clauses.push_back({network.S, -outputLiterals[0]});
				if (iff) {
					clauses.push_back({-network.S, outputLiterals[0]});
				}
			}
			else {
				assert(0);
			}
		}
		else {
			assert(0);
		}
	}
	else if (type == CONSTRAINT_NEQUAL) {
		assert(0 < K && K < (int)inputLiterals.size());
		if (coding == CODING_NETWORK) {
			pair<Formula, int> network = getNequalNetwork(freeVar, inputLiterals);
			clauses = network.F.clauses;
			if (outputLiterals.size() == 0) {
				clauses.push_back({network.S});
			}
			else if (outputLiterals.size() == 1) {
				clauses.push_back({network.S, -outputLiterals[0]});
				if (iff) {
					clauses.push_back({-network.S, outputLiterals[0]});
				}
			}
			else {
				assert(0);
			}
		}
	}
	else if (type == CONSTRAINT_ALL_LESS || type == CONSTRAINT_ALL_GREATER || type == CONSTRAINT_ALL_BOTH) {
		assert(0 < K && K == (int)outputLiterals.size());
		int k = 2;
		while (k < K) k *= 2;
		Formula F(freeVar);
		vector<int> input = inputLiterals;
		while ((int)input.size()%k != 0) {
			F.clauses.push_back({-F.freeVar});
			input.push_back({F.freeVar++});
		}
		bool d1 = (type == CONSTRAINT_ALL_LESS) || iff || (type == CONSTRAINT_ALL_BOTH);
		bool d2 = (type == CONSTRAINT_ALL_GREATER) || iff || (type == CONSTRAINT_ALL_BOTH);
		vector<int> output = Card(input, 0, (int)input.size()-1, k, F, d1, d2);
		clauses = F.clauses;
		for (int i = 0; i < K; i++) {
			if (d1) clauses.push_back({-output[i], outputLiterals[i]});
			if (d2) clauses.push_back({output[i], -outputLiterals[i]});
		}
	}
	else {
		assert(0);
	}
	for (auto& c : clauses) {
		for (int lit : addLiterals) {
			c.push_back(lit);
		}
	}
	return clauses;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rdi, (%rsp)
movq 0x8(%rsi), %r12
movq 0x10(%rsi), %r13
movq %r13, %rax
subq %r12, %rax
shrq $0x2, %rax
testl %eax, %eax
jle 0x36c45
movl %edx, %ebp
movq %rsi, %r14
movl (%rsi), %edx
leal -0x1(%rdx), %ecx
cmpl $0x5, %ecx
ja 0x36ca2
leaq 0x8(%r14), %r15
leaq 0x5981(%rip), %rsi      # 0x3b034
movslq (%rsi,%rcx,4), %rdi
addq %rsi, %rdi
movq %r14, 0x78(%rsp)
jmpq *%rdi
cmpl $0x1, %eax
jne 0x35a29
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
cmpq $0x4, %rcx
jne 0x36c83
xorps %xmm0, %xmm0
movq (%rsp), %rcx
movups %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
cmpl $0x4, %edx
je 0x356fd
cmpb $0x1, 0x58(%r14)
jne 0x35748
xorl %ecx, %ecx
subl (%r12), %ecx
leaq 0x8(%rsp), %rsi
movl %ecx, (%rsi)
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x35748
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpl $0x5, (%r14)
je 0x3575d
movq 0x78(%rsp), %rax
cmpb $0x1, 0x58(%rax)
jne 0x36638
movq 0x78(%rsp), %rcx
movq 0x8(%rcx), %rax
movl (%rax), %eax
leaq 0x8(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%rcx), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36638
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36638
movl 0x38(%r14), %edx
testl %edx, %edx
js 0x35d03
cmpl %eax, %edx
jge 0x36002
testl %edx, %edx
je 0x3639c
leal -0x1(%rax), %esi
cmpl %esi, %edx
jne 0x35a20
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3684e
testq %rax, %rax
jne 0x36ed0
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1ffa6
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x36899
negl (%rax)
addq $0x4, %rax
jmp 0x35819
movl 0x38(%r14), %edx
cmpl %eax, %edx
jbe 0x35928
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x36043
testq %rcx, %rcx
jne 0x36d9a
leaq 0x8(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x20(%rsp), %r12
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq %r12, %rdi
callq 0x1f586
leaq 0x38(%rsp), %r15
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x98(%rsp), %rcx
movl $0x1, %edx
movq %r15, %rdi
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x5f(%rsp), %rcx
movl $0x2, %edx
movq (%rsp), %rdi
callq 0x37388
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x358d0
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x358b9
jmp 0x36638
movl 0x38(%r14), %edx
cmpl %eax, %edx
jbe 0x359cd
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x36082
testq %rcx, %rcx
je 0x36385
leaq 0x533d(%rip), %rdi      # 0x3ac4d
leaq 0x5801(%rip), %rsi      # 0x3b118
leaq 0x5b18(%rip), %rcx      # 0x3b436
movl $0xff, %edx
callq 0x31b0
testl %edx, %edx
je 0x360ca
cmpl %eax, %edx
jne 0x35a20
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3664e
testq %rax, %rax
jne 0x36e73
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x36638
leaq 0x20(%rsp), %rbx
leaq 0x8(%rsp), %r14
leaq 0x60(%rsp), %r15
movl (%r12), %eax
movl %eax, 0x8(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x359bf
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x35981
jmp 0x36638
testl %edx, %edx
je 0x36161
cmpl %eax, %edx
jne 0x35a20
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3671c
testq %rax, %rax
jne 0x36e92
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1ffa6
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x36767
negl (%rax)
addq $0x4, %rax
jmp 0x35a0f
cmpl $0x1, %eax
je 0x36cc1
xorps %xmm0, %xmm0
movq (%rsp), %rdx
movups %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
cmpl $0x5, %ecx
ja 0x36d7b
leaq 0x5601(%rip), %rdx      # 0x3b04c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl 0x38(%r14), %eax
testl %eax, %eax
jle 0x36c64
movq 0x28(%r14), %rcx
subq 0x20(%r14), %rcx
shrq $0x2, %rcx
cmpl %ecx, %eax
jne 0x36c64
movl $0x2, %ecx
movl %ecx, %r12d
leal (%r12,%r12), %ecx
cmpl %eax, %r12d
jl 0x35a79
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl %ebp, 0x38(%rsp)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
leal -0x1(%r12), %r14d
movq 0x10(%rsp), %r8
subq 0x8(%rsp), %r8
shrq $0x2, %r8
testl %r8d, %r14d
je 0x35b6b
leaq 0x60(%rsp), %r15
leaq 0x80(%rsp), %r13
leaq 0x98(%rsp), %rbp
leaq 0x20(%rsp), %rbx
xorl %eax, %eax
subl 0x38(%rsp), %eax
movl %eax, 0x80(%rsp)
movl $0x1, %edx
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rcx
callq 0x1f586
movq %rbx, %rdi
movq %r15, %rsi
callq 0x23202
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x35b1f
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movl 0x38(%rsp), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x38(%rsp)
movl %eax, 0x60(%rsp)
movq 0x10(%rsp), %rsi
cmpq 0x18(%rsp), %rsi
je 0x35b47
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x10(%rsp)
jmp 0x35b54
leaq 0x8(%rsp), %rdi
movq %r15, %rdx
callq 0x20b8a
movq 0x10(%rsp), %r8
subq 0x8(%rsp), %r8
shrq $0x2, %r8
testl %r8d, %r14d
jne 0x35add
movq 0x78(%rsp), %r14
movl (%r14), %eax
movb $0x1, %bl
movb $0x1, %bpl
cmpl $0x4, %eax
je 0x35b88
cmpl $0x6, %eax
sete %bpl
orb 0x58(%r14), %bpl
cmpl $0x5, %eax
je 0x35b97
cmpl $0x6, %eax
sete %bl
orb 0x58(%r14), %bl
decl %r8d
subq $0x8, %rsp
movzbl %bl, %eax
movzbl %bpl, %r10d
leaq 0x28(%rsp), %r11
leaq 0x68(%rsp), %rdi
leaq 0x10(%rsp), %rdx
movq %r14, %rsi
xorl %ecx, %ecx
movl %r12d, %r9d
pushq %rax
pushq %r10
pushq %r11
callq 0x3495c
addq $0x20, %rsp
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x33212
cmpl $0x0, 0x38(%r14)
jle 0x35cd0
xorl %r12d, %r12d
leaq 0x80(%rsp), %r15
leaq 0x5f(%rsp), %r13
testb %bpl, %bpl
je 0x35c5a
movq 0x60(%rsp), %rax
xorl %ecx, %ecx
subl (%rax,%r12,4), %ecx
movl %ecx, 0x98(%rsp)
movq 0x20(%r14), %rax
movl (%rax,%r12,4), %eax
movl %eax, 0x9c(%rsp)
movl $0x2, %edx
movq %r15, %rdi
leaq 0x98(%rsp), %rsi
movq %r13, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x23202
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x35c5a
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
testb %bl, %bl
je 0x35cc0
movq 0x60(%rsp), %rax
movl (%rax,%r12,4), %eax
movl %eax, 0x98(%rsp)
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax,%r12,4), %ecx
movl %ecx, 0x9c(%rsp)
movl $0x2, %edx
movq %r15, %rdi
leaq 0x98(%rsp), %rsi
movq %r13, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x23202
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x35cc0
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
incq %r12
movslq 0x38(%r14), %rax
cmpq %rax, %r12
jl 0x35bf3
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x35ce7
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35cfe
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x365cf
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x361aa
testq %rcx, %rcx
jne 0x36db9
leaq 0x8(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x20(%rsp), %r12
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq %r12, %rdi
callq 0x1f586
leaq 0x38(%rsp), %r15
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x98(%rsp), %rcx
movl $0x1, %edx
movq %r15, %rdi
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x5f(%rsp), %rcx
movl $0x2, %edx
movq (%rsp), %rdi
callq 0x37388
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x35d9d
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x35d86
jmp 0x36638
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x36ce0
incl %ecx
cmpl %eax, %ecx
jge 0x36ce0
cmpl $0x1, 0x4(%r14)
jne 0x36d3d
leaq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
leaq 0x20(%rsp), %rdi
leaq 0xd0(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x35506
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x35e0d
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x33212
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x361e9
testq %rcx, %rcx
jne 0x36dd8
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
jmp 0x36279
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x36cff
cmpl %eax, %ecx
jge 0x36cff
cmpl $0x1, 0x4(%r14)
jne 0x36d5c
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x34edc
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x35ed5
movq 0xc8(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x33212
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x36295
testq %rcx, %rcx
jne 0x36df7
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
jmp 0x36325
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x36d1e
cmpl %eax, %ecx
jge 0x36d1e
cmpl $0x1, 0x4(%r14)
jne 0x365d9
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x351ec
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x35f9d
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x33212
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x36528
testq %rcx, %rcx
jne 0x36e54
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
jmp 0x365b8
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x36341
testq %rcx, %rcx
je 0x36385
leaq 0x4c22(%rip), %rdi      # 0x3ac4d
leaq 0x50e6(%rip), %rsi      # 0x3b118
leaq 0x53fd(%rip), %rcx      # 0x3b436
movl $0x18b, %edx            # imm = 0x18B
callq 0x31b0
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x8(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x3579c
cmpb $0x1, 0x58(%r14)
jne 0x36385
movl (%rax), %eax
leaq 0x8(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x3579c
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x36433
testq %rax, %rax
jne 0x36e16
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x36638
leaq 0x20(%rsp), %rbx
leaq 0x8(%rsp), %r14
leaq 0x60(%rsp), %r15
xorl %eax, %eax
subl (%r12), %eax
movl %eax, 0x8(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36153
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x36113
jmp 0x36638
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x364ee
testq %rax, %rax
jne 0x36e35
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x3579c
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x8(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x3579c
movl 0x40(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36237
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x36290
xorl %eax, %eax
subl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%r14), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36290
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x365cf
movl 0x40(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x362e3
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x3633c
xorl %eax, %eax
subl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%r14), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3633c
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x365cf
cmpb $0x1, 0x58(%r14)
jne 0x36385
movl (%rax), %eax
leaq 0x8(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1f586
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x3579c
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
jmp 0x3663c
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x36793
testq %rax, %rax
jne 0x36eb1
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x36638
leaq 0x20(%rsp), %rbx
leaq 0x8(%rsp), %r14
leaq 0x60(%rsp), %r15
xorl %eax, %eax
subl (%r12), %eax
movl %eax, 0x8(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36425
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x363e5
jmp 0x36638
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x364ab
leaq 0x20(%rsp), %rbx
leaq 0x60(%rsp), %rbp
xorl %eax, %eax
subl (%r12), %eax
movl %eax, 0x8(%rsp)
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0xc(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x8(%rsp), %rsi
movq %rbp, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x364a2
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x36454
cmpb $0x0, 0x58(%r14)
je 0x36638
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x36bee
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x36bf8
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1ffa6
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x368c5
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x368d4
movl 0x40(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36576
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x365cf
xorl %eax, %eax
subl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%r14), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x1f586
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x365cf
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rdi
callq 0x8f6e
movq (%rsp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r14
cmpq %r14, %rbx
je 0x36638
leaq 0x20(%rsp), %r15
movq 0x78(%rsp), %rax
movq 0x40(%rax), %r12
movq 0x48(%rax), %r13
cmpq %r13, %r12
je 0x3662f
movl (%r12), %eax
movl %eax, 0x20(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3661e
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rbx)
jmp 0x36629
movq %rbx, %rdi
movq %r15, %rdx
callq 0x98e8
addq $0x4, %r12
jmp 0x365fb
addq $0x18, %rbx
cmpq %r14, %rbx
jne 0x365ee
movq (%rsp), %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x366c4
leaq 0x20(%rsp), %rbx
leaq 0x60(%rsp), %rbp
movl (%r12), %eax
movl %eax, 0x8(%rsp)
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0xc(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x8(%rsp), %rsi
movq %rbp, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x366bb
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x3666f
cmpb $0x0, 0x58(%r14)
je 0x36638
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rsi
cmpq %rsi, %rax
movq 0x78(%rsp), %rcx
je 0x366fb
negl (%rax)
addq $0x4, %rax
cmpq %rsi, %rax
jne 0x366f0
movq 0x20(%rcx), %rdx
cmpq 0x30(%rsp), %rsi
je 0x36c0b
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x36c15
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1ffa6
movq (%rbx), %rax
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x36740
negl (%rax)
addq $0x4, %rax
jmp 0x36733
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
cmpq 0x30(%rsp), %rsi
je 0x369cb
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x369da
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x36bce
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x3680b
leaq 0x20(%rsp), %rbx
leaq 0x60(%rsp), %rbp
xorl %eax, %eax
subl (%r12), %eax
movl %eax, 0x8(%rsp)
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0xc(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
leaq 0x8(%rsp), %rsi
movq %rbp, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36802
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x367b4
cmpb $0x0, 0x58(%r14)
je 0x36638
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1ffa6
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x36c28
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x36c32
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1ffa6
movq (%rbx), %rax
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x36872
negl (%rax)
addq $0x4, %rax
jmp 0x36865
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
cmpq 0x30(%rsp), %rsi
je 0x36acf
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x36ade
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x36bce
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20b8a
cmpb $0x1, 0x58(%r14)
jne 0x3699f
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3691d
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x3579c
leaq 0x8(%rsp), %rbx
leaq 0x60(%rsp), %r15
leaq 0x80(%rsp), %r12
xorl %eax, %eax
subl (%r14), %eax
movl %eax, 0x60(%rsp)
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36991
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x36943
jmp 0x3579c
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x36bce
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20b8a
cmpb $0x1, 0x58(%r14)
jne 0x36aa3
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36a23
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x3579c
leaq 0x8(%rsp), %rbx
leaq 0x60(%rsp), %r15
leaq 0x80(%rsp), %r12
movl (%r14), %eax
movl %eax, 0x60(%rsp)
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36a95
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x36a49
jmp 0x3579c
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
jmp 0x36bce
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x20b8a
cmpb $0x1, 0x58(%r14)
jne 0x36ba7
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36b27
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x3579c
leaq 0x8(%rsp), %rbx
leaq 0x60(%rsp), %r15
leaq 0x80(%rsp), %r12
movl (%r14), %eax
movl %eax, 0x60(%rsp)
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rcx
callq 0x1f586
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x23202
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36b99
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x36b4d
jmp 0x3579c
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1ffa6
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x37388
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3579c
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3579c
leaq 0x20(%rsp), %rdi
callq 0x98e8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1fc42
jmp 0x3579c
leaq 0x20(%rsp), %rdi
callq 0x98e8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1fc42
jmp 0x3579c
leaq 0x20(%rsp), %rdi
callq 0x98e8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1fc42
jmp 0x3579c
leaq 0x47e4(%rip), %rdi      # 0x3b430
leaq 0x44c5(%rip), %rsi      # 0x3b118
leaq 0x47dc(%rip), %rcx      # 0x3b436
movl $0xf4, %edx
callq 0x31b0
leaq 0x48a0(%rip), %rdi      # 0x3b50b
leaq 0x44a6(%rip), %rsi      # 0x3b118
leaq 0x47bd(%rip), %rcx      # 0x3b436
movl $0x215, %edx            # imm = 0x215
callq 0x31b0
leaq 0x47f8(%rip), %rdi      # 0x3b482
leaq 0x4487(%rip), %rsi      # 0x3b118
leaq 0x479e(%rip), %rcx      # 0x3b436
movl $0x1c6, %edx            # imm = 0x1C6
callq 0x31b0
leaq 0x3fa4(%rip), %rdi      # 0x3ac4d
leaq 0x4468(%rip), %rsi      # 0x3b118
leaq 0x477f(%rip), %rcx      # 0x3b436
movl $0x1d1, %edx            # imm = 0x1D1
callq 0x31b0
leaq 0x47d5(%rip), %rdi      # 0x3b49d
leaq 0x4449(%rip), %rsi      # 0x3b118
leaq 0x4760(%rip), %rcx      # 0x3b436
movl $0x1d2, %edx            # imm = 0x1D2
callq 0x31b0
leaq 0x47d4(%rip), %rdi      # 0x3b4bb
leaq 0x442a(%rip), %rsi      # 0x3b118
leaq 0x4741(%rip), %rcx      # 0x3b436
movl $0x1d6, %edx            # imm = 0x1D6
callq 0x31b0
leaq 0x47de(%rip), %rdi      # 0x3b4e4
leaq 0x440b(%rip), %rsi      # 0x3b118
leaq 0x4722(%rip), %rcx      # 0x3b436
movl $0x1ec, %edx            # imm = 0x1EC
callq 0x31b0
leaq 0x47bf(%rip), %rdi      # 0x3b4e4
leaq 0x43ec(%rip), %rsi      # 0x3b118
leaq 0x4703(%rip), %rcx      # 0x3b436
movl $0x202, %edx            # imm = 0x202
callq 0x31b0
leaq 0x3f09(%rip), %rdi      # 0x3ac4d
leaq 0x43cd(%rip), %rsi      # 0x3b118
leaq 0x46e4(%rip), %rcx      # 0x3b436
movl $0x1e8, %edx            # imm = 0x1E8
callq 0x31b0
leaq 0x3eea(%rip), %rdi      # 0x3ac4d
leaq 0x43ae(%rip), %rsi      # 0x3b118
leaq 0x46c5(%rip), %rcx      # 0x3b436
movl $0x1fe, %edx            # imm = 0x1FE
callq 0x31b0
leaq 0x3ecb(%rip), %rdi      # 0x3ac4d
leaq 0x438f(%rip), %rsi      # 0x3b118
leaq 0x46a6(%rip), %rcx      # 0x3b436
movl $0x228, %edx            # imm = 0x228
callq 0x31b0
leaq 0x3eac(%rip), %rdi      # 0x3ac4d
leaq 0x4370(%rip), %rsi      # 0x3b118
leaq 0x4687(%rip), %rcx      # 0x3b436
movl $0x13f, %edx            # imm = 0x13F
callq 0x31b0
leaq 0x3e8d(%rip), %rdi      # 0x3ac4d
leaq 0x4351(%rip), %rsi      # 0x3b118
leaq 0x4668(%rip), %rcx      # 0x3b436
movl $0x17f, %edx            # imm = 0x17F
callq 0x31b0
leaq 0x3e6e(%rip), %rdi      # 0x3ac4d
leaq 0x4332(%rip), %rsi      # 0x3b118
leaq 0x4649(%rip), %rcx      # 0x3b436
movl $0x1e4, %edx            # imm = 0x1E4
callq 0x31b0
leaq 0x3e4f(%rip), %rdi      # 0x3ac4d
leaq 0x4313(%rip), %rsi      # 0x3b118
leaq 0x462a(%rip), %rcx      # 0x3b436
movl $0x1fa, %edx            # imm = 0x1FA
callq 0x31b0
leaq 0x3e30(%rip), %rdi      # 0x3ac4d
leaq 0x42f4(%rip), %rsi      # 0x3b118
leaq 0x460b(%rip), %rcx      # 0x3b436
movl $0x157, %edx            # imm = 0x157
callq 0x31b0
leaq 0x3e11(%rip), %rdi      # 0x3ac4d
leaq 0x42d5(%rip), %rsi      # 0x3b118
leaq 0x45ec(%rip), %rcx      # 0x3b436
movl $0x115, %edx            # imm = 0x115
callq 0x31b0
leaq 0x3df2(%rip), %rdi      # 0x3ac4d
leaq 0x42b6(%rip), %rsi      # 0x3b118
leaq 0x45cd(%rip), %rcx      # 0x3b436
movl $0x210, %edx            # imm = 0x210
callq 0x31b0
leaq 0x3dd3(%rip), %rdi      # 0x3ac4d
leaq 0x4297(%rip), %rsi      # 0x3b118
leaq 0x45ae(%rip), %rcx      # 0x3b436
movl $0x172, %edx            # imm = 0x172
callq 0x31b0
leaq 0x3db4(%rip), %rdi      # 0x3ac4d
leaq 0x4278(%rip), %rsi      # 0x3b118
leaq 0x458f(%rip), %rcx      # 0x3b436
movl $0x132, %edx            # imm = 0x132
callq 0x31b0
leaq 0x3d95(%rip), %rdi      # 0x3ac4d
leaq 0x4259(%rip), %rsi      # 0x3b118
leaq 0x4570(%rip), %rcx      # 0x3b436
movl $0x1a3, %edx            # imm = 0x1A3
callq 0x31b0
leaq 0x3d76(%rip), %rdi      # 0x3ac4d
leaq 0x423a(%rip), %rsi      # 0x3b118
leaq 0x4551(%rip), %rcx      # 0x3b436
movl $0x1c0, %edx            # imm = 0x1C0
callq 0x31b0
jmp 0x370be
jmp 0x36f54
jmp 0x36f54
jmp 0x370be
jmp 0x370be
jmp 0x372de
jmp 0x370be
jmp 0x370be
jmp 0x372de
jmp 0x36f54
jmp 0x36f54
jmp 0x370be
jmp 0x370be
jmp 0x36f96
jmp 0x3701b
jmp 0x37238
jmp 0x372de
jmp 0x36f54
jmp 0x36f54
jmp 0x370be
jmp 0x370be
jmp 0x36f54
jmp 0x370be
jmp 0x3727d
jmp 0x372bf
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x371db
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x371db
jmp 0x370be
jmp 0x370be
jmp 0x370cd
jmp 0x36fc1
jmp 0x36fe4
jmp 0x37113
jmp 0x3711b
jmp 0x36f96
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
jne 0x36fd2
jmp 0x3701e
jmp 0x3701b
jmp 0x3701b
jmp 0x370be
jmp 0x370cd
jmp 0x370be
jmp 0x370cd
jmp 0x36fc1
jmp 0x36fe4
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x37116
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37367
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3711e
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3711e
jmp 0x37113
jmp 0x3711b
jmp 0x37113
jmp 0x3711b
movq %rax, %r14
jmp 0x37367
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x37376
movq 0xb0(%rsp), %rsi
jmp 0x3715d
jmp 0x37373
movq %rax, %r14
leaq 0x50(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x382c
movb $0x1, %al
jmp 0x37072
jmp 0x370be
movq %rax, %r14
xorl %eax, %eax
jmp 0x37072
jmp 0x370cd
movq %rax, %r14
xorl %eax, %eax
movq %r12, %r15
cmpq %r15, %r12
sete %cl
orb %al, %cl
jne 0x3737f
leaq 0x20(%rsp), %rbx
movq -0x18(%r15), %rdi
testq %rdi, %rdi
je 0x3709a
movq -0x8(%r15), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %r15
cmpq %rbx, %r15
jne 0x37085
jmp 0x3737f
movq %rax, %r14
leaq 0x50(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x385c
movb $0x1, %al
jmp 0x370dd
movq %rax, %r14
jmp 0x371db
movq %rax, %r14
xorl %eax, %eax
jmp 0x370dd
movq %rax, %r14
jmp 0x3737f
movq %rax, %r14
xorl %eax, %eax
movq %r12, %r15
cmpq %r15, %r12
sete %cl
orb %al, %cl
jne 0x3737f
leaq 0x20(%rsp), %rbx
movq -0x18(%r15), %rdi
testq %rdi, %rdi
je 0x37105
movq -0x8(%r15), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %r15
cmpq %rbx, %r15
jne 0x370f0
jmp 0x3737f
movq %rax, %r14
jmp 0x37367
movq %rax, %r14
jmp 0x37367
movq %rax, %r14
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x37376
movq 0xc8(%rsp), %rsi
jmp 0x3715d
movq %rax, %r14
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x37376
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x37373
jmp 0x37373
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3718e
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x371d2
jmp 0x371ae
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x371ac
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x371d2
movq %rax, %r14
jmp 0x371d2
movq %rax, %r14
jmp 0x371d2
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x371d2
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq (%rsp), %rdi
callq 0x8f6e
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3737f
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3737f
jmp 0x37336
jmp 0x37331
movq %rax, %r14
jmp 0x37367
jmp 0x37214
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3722e
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37252
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37276
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37297
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x372b8
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
jmp 0x372de
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x372d9
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37376
movq %rax, %r14
jmp 0x37376
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x37305
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37305
movq %rax, %r14
jmp 0x37376
jmp 0x37331
jmp 0x37336
jmp 0x37336
jmp 0x3730f
movq %rax, %r14
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x37339
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x37339
movq %rax, %r14
jmp 0x37350
movq %rax, %r14
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x37350
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x37367
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rdi
callq 0x8f6e
jmp 0x37376
movq %rax, %r14
movq (%rsp), %rdi
callq 0x8f6e
movq %r14, %rdi
callq 0x34a0
nop