// File: /workspace/github_cpp_makefile_star2_O2/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), %r13
movq 0x10(%rsi), %r14
movq %r14, %rax
subq %r13, %rax
shrq $0x2, %rax
testl %eax, %eax
jle 0x2cf5c
movl %edx, %ebp
movl (%rsi), %edx
leal -0x1(%rdx), %ecx
cmpl $0x5, %ecx
ja 0x2cfb9
leaq 0x8(%rsi), %r15
leaq 0x53f6(%rip), %r8       # 0x310ac
movslq (%r8,%rcx,4), %rdi
addq %r8, %rdi
movq %rsi, 0x8(%rsp)
jmpq *%rdi
cmpl $0x1, %eax
jne 0x2bfec
movq 0x8(%rsp), %rbx
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
subq %rax, %rcx
cmpq $0x4, %rcx
jne 0x2cf9a
xorps %xmm0, %xmm0
movq (%rsp), %rcx
movups %xmm0, (%rcx)
andq $0x0, 0x10(%rcx)
cmpl $0x4, %edx
je 0x2bd01
cmpb $0x1, 0x58(%rbx)
jne 0x2bd3f
xorl %ecx, %ecx
subl (%r13), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x30(%rsp), %rdi
callq 0x7512
movl (%rbx), %edx
cmpl $0x5, %edx
je 0x2bd4a
cmpb $0x1, 0x58(%rbx)
jne 0x2bd8c
movq 0x8(%rbx), %rax
movl (%rax), %eax
leaq 0x10(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%rbx), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x30(%rsp), %rdi
callq 0x7512
movq (%rsp), %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl 0x38(%rsi), %edx
testl %edx, %edx
js 0x2c22b
cmpl %eax, %edx
jae 0x2c50a
testl %edx, %edx
je 0x2c846
leal -0x1(%rax), %esi
cmpl %esi, %edx
jne 0x2bfe3
movq 0x8(%rsp), %r14
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2cd8d
testq %rax, %rax
jne 0x2d1c8
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19284
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x2cdb1
negl (%rax)
addq $0x4, %rax
jmp 0x2be03
movl 0x38(%rsi), %edx
cmpl %eax, %edx
jbe 0x2bef9
movq 0x20(%rsi), %rax
movq 0x28(%rsi), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c550
testq %rcx, %rcx
jne 0x2d092
leaq 0x10(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x48(%rsp), %rdi
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
pushq $0x1
popq %rdx
leaq 0x78(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x2f(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
pushq $0x18
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x7512
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x2be91
jmp 0x2bd8c
movl 0x38(%rsi), %edx
cmpl %eax, %edx
jbe 0x2bf8b
movq 0x20(%rsi), %rax
movq 0x28(%rsi), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c58b
testq %rcx, %rcx
je 0x2c832
leaq 0x4de4(%rip), %rdi      # 0x30cc5
leaq 0x52a8(%rip), %rsi      # 0x31190
leaq 0x55bf(%rip), %rcx      # 0x314ae
movl $0xff, %edx
callq 0x31c0
testl %edx, %edx
je 0x2c5ce
cmpl %eax, %edx
jne 0x2bfe3
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rax
subq 0x20(%rcx), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2cb2b
testq %rax, %rax
jne 0x2d16b
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %rbp
pushq $0x1
popq %r15
leaq 0x60(%rsp), %r12
cmpq %r14, %r13
je 0x2bd8c
movl (%r13), %eax
movl %eax, 0x10(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2bf4f
testl %edx, %edx
je 0x2c652
cmpl %eax, %edx
jne 0x2bfe3
movq 0x8(%rsp), %r14
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2cba2
testq %rax, %rax
jne 0x2d18a
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19284
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x2cbc6
negl (%rax)
addq $0x4, %rax
jmp 0x2bfd2
cmpl $0x1, %eax
je 0x2cfd8
xorps %xmm0, %xmm0
movq (%rsp), %rdx
andq $0x0, 0x10(%rdx)
movups %xmm0, (%rdx)
leaq 0x50c2(%rip), %rdx      # 0x310c4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x8(%rsp), %rdx
movl 0x38(%rdx), %eax
testl %eax, %eax
jle 0x2cf7b
movq 0x28(%rdx), %rcx
subq 0x20(%rdx), %rcx
shrq $0x2, %rcx
cmpl %ecx, %eax
jne 0x2cf7b
pushq $0x2
popq %rcx
movl %ecx, %r12d
leal (%r12,%r12), %ecx
cmpl %eax, %r12d
jl 0x2c032
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
andq $0x0, 0x40(%rsp)
movl %ebp, 0x48(%rsp)
leaq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
leal -0x1(%r12), %ebp
leaq 0x60(%rsp), %r13
pushq $0x1
popq %rbx
leaq 0x78(%rsp), %r15
leaq 0x10(%rsp), %r14
movq 0x18(%rsp), %r8
subq 0x10(%rsp), %r8
shrq $0x2, %r8
testl %r8d, %ebp
je 0x2c0db
xorl %eax, %eax
subl 0x48(%rsp), %eax
movl %eax, 0x80(%rsp)
movq %r13, %rdi
leaq 0x80(%rsp), %rsi
movq %rbx, %rdx
movq %r15, %rcx
callq 0x18af6
leaq 0x30(%rsp), %rdi
movq %r13, %rsi
callq 0x1cb40
movq %r13, %rdi
callq 0x7512
movl 0x48(%rsp), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x48(%rsp)
movl %eax, 0x60(%rsp)
movq %r14, %rdi
movq %r13, %rsi
callq 0x19ed4
jmp 0x2c074
movq 0x8(%rsp), %rsi
movl (%rsi), %ecx
movb 0x58(%rsi), %al
movb $0x1, %bl
cmpl $0x4, %ecx
je 0x2c0fc
cmpl $0x6, %ecx
sete %bl
orb %al, %bl
movb $0x1, %r14b
cmpl $0x5, %ecx
je 0x2c106
cmpl $0x6, %ecx
sete %r14b
orb %al, %r14b
decl %r8d
subq $0x8, %rsp
movzbl %r14b, %eax
andl $0x1, %eax
movzbl %bl, %r10d
andl $0x1, %r10d
leaq 0x68(%rsp), %rdi
leaq 0x18(%rsp), %rdx
xorl %ecx, %ecx
movl %r12d, %r9d
pushq %rax
pushq %r10
leaq 0x48(%rsp), %rax
pushq %rax
callq 0x2b20e
addq $0x20, %rsp
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x29ce0
xorl %r12d, %r12d
leaq 0x80(%rsp), %r15
pushq $0x2
popq %r13
leaq 0x2f(%rsp), %rbp
movq 0x8(%rsp), %rax
movslq 0x38(%rax), %rax
cmpq %rax, %r12
jge 0x2c212
testb $0x1, %bl
je 0x2c1bd
movq 0x60(%rsp), %rax
xorl %ecx, %ecx
subl (%rax,%r12,4), %ecx
movl %ecx, 0x78(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax,%r12,4), %eax
movl %eax, 0x7c(%rsp)
movq %r15, %rdi
leaq 0x78(%rsp), %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x1cb40
movq %r15, %rdi
callq 0x7512
testb $0x1, %r14b
je 0x2c20a
movq 0x60(%rsp), %rax
movl (%rax,%r12,4), %eax
movl %eax, 0x78(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
xorl %ecx, %ecx
subl (%rax,%r12,4), %ecx
movl %ecx, 0x7c(%rsp)
movq %r15, %rdi
leaq 0x78(%rsp), %rsi
movq %r13, %rdx
movq %rbp, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x1cb40
movq %r15, %rdi
callq 0x7512
incq %r12
jmp 0x2c15f
leaq 0x60(%rsp), %rdi
callq 0x7512
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2cad7
movq 0x20(%rsi), %rax
movq 0x28(%rsi), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c69e
testq %rcx, %rcx
jne 0x2d0b1
leaq 0x10(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x48(%rsp), %rdi
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
pushq $0x1
popq %rdx
leaq 0x78(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x2
popq %rdx
leaq 0x2f(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
pushq $0x18
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x7512
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x2c29d
jmp 0x2bd8c
movq 0x8(%rsp), %rcx
movl 0x38(%rcx), %ecx
testl %ecx, %ecx
jle 0x2cff7
incl %ecx
cmpl %eax, %ecx
jae 0x2cff7
movq 0x8(%rsp), %rax
cmpl $0x1, 0x4(%rax)
jne 0x2d054
leaq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
leaq 0x30(%rsp), %rdi
leaq 0xd0(%rsp), %rcx
movq 0x8(%rsp), %rsi
movl %ebp, %edx
callq 0x2bb74
leaq 0xd0(%rsp), %rdi
callq 0x7512
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x29ce0
movq 0x8(%rsp), %rbx
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c6d9
testq %rcx, %rcx
jne 0x2d0d0
movl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
jmp 0x2c757
movq 0x8(%rsp), %rcx
movl 0x38(%rcx), %ecx
testl %ecx, %ecx
jle 0x2d016
cmpl %eax, %ecx
jae 0x2d016
movq 0x8(%rsp), %rax
cmpl $0x1, 0x4(%rax)
jne 0x2d073
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
leaq 0x30(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
movq 0x8(%rsp), %rsi
movl %ebp, %edx
callq 0x2b690
leaq 0xb8(%rsp), %rdi
callq 0x7512
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x29ce0
movq 0x8(%rsp), %rbx
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c766
testq %rcx, %rcx
jne 0x2d0ef
movl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
jmp 0x2c7e4
movq 0x8(%rsp), %rcx
movl 0x38(%rcx), %ecx
testl %ecx, %ecx
jle 0x2d035
cmpl %eax, %ecx
jae 0x2d035
movq 0x8(%rsp), %rax
cmpl $0x1, 0x4(%rax)
jne 0x2cae1
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
leaq 0x30(%rsp), %rdi
leaq 0xa0(%rsp), %rcx
movq 0x8(%rsp), %rsi
movl %ebp, %edx
callq 0x2b8fe
leaq 0xa0(%rsp), %rdi
callq 0x7512
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x29ce0
movq 0x8(%rsp), %rbx
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2ca4f
testq %rcx, %rcx
jne 0x2d14c
movl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
jmp 0x2cacd
movq 0x8(%rsp), %rdx
movq 0x20(%rdx), %rax
movq 0x28(%rdx), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x2c7f3
testq %rcx, %rcx
je 0x2c832
leaq 0x478d(%rip), %rdi      # 0x30cc5
leaq 0x4c51(%rip), %rsi      # 0x31190
leaq 0x4f68(%rip), %rcx      # 0x314ae
movl $0x18b, %edx            # imm = 0x18B
callq 0x31c0
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2bd82
cmpb $0x1, 0x58(%rsi)
jne 0x2c832
movl (%rax), %eax
leaq 0x10(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2bd82
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rax
subq 0x20(%rcx), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2c8ca
testq %rax, %rax
jne 0x2d10e
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %rbp
pushq $0x1
popq %r15
leaq 0x60(%rsp), %r12
cmpq %r14, %r13
je 0x2bd8c
xorl %eax, %eax
subl (%r13), %eax
movl %eax, 0x10(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2c614
movq 0x8(%rsp), %r14
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2c943
testq %rax, %rax
jne 0x2d12d
leaq 0x30(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x10(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2bd82
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2bd82
movl 0x50(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
cmpb $0x1, 0x58(%rbx)
jne 0x2c761
xorl %eax, %eax
subl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%rbx), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2cad7
movl 0x50(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
cmpb $0x1, 0x58(%rbx)
jne 0x2c7ee
xorl %eax, %eax
subl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%rbx), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2cad7
cmpb $0x1, 0x58(%rdx)
jne 0x2c832
movl (%rax), %eax
leaq 0x10(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x30(%rsp), %rdi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
callq 0x18af6
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x80(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2bd82
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
jmp 0x2bd90
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rax
subq 0x20(%rcx), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x2cce6
testq %rax, %rax
jne 0x2d1a9
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %rbp
pushq $0x1
popq %r15
leaq 0x60(%rsp), %r12
cmpq %r14, %r13
je 0x2bd8c
xorl %eax, %eax
subl (%r13), %eax
movl %eax, 0x10(%rsp)
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2c88c
movq %r15, 0x98(%rsp)
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %r15
pushq $0x2
popq %r12
leaq 0x60(%rsp), %rbp
cmpq %r14, %r13
je 0x2ca0d
xorl %eax, %eax
subl (%r13), %eax
movl %eax, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x14(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbp, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2c8f4
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19284
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
movq %rbx, %rdi
callq 0x19ed4
cmpb $0x1, 0x58(%r14)
jne 0x2ce9f
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x7512
movq 0x8(%r14), %r13
movq 0x10(%r14), %rbp
leaq 0x60(%rsp), %r14
pushq $0x2
popq %r15
leaq 0x80(%rsp), %r12
cmpq %rbp, %r13
je 0x2cece
xorl %eax, %eax
subl (%r13), %eax
movl %eax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2c9c0
movq 0x8(%rsp), %rbx
cmpb $0x0, 0x58(%rbx)
movq 0x98(%rsp), %rsi
je 0x2bd8c
leaq 0x30(%rsp), %rdi
callq 0x19284
movq 0x20(%rbx), %rsi
leaq 0x30(%rsp), %rdi
callq 0x68a4
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x18f96
jmp 0x2bd82
movl 0x50(%rsp), %ecx
leaq 0x60(%rsp), %rsi
movl %ecx, (%rsi)
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
cmpb $0x1, 0x58(%rbx)
jne 0x2cad7
xorl %eax, %eax
subl 0x50(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
movq 0x20(%rbx), %rax
movl (%rax), %eax
movl %eax, 0x4(%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x18af6
leaq 0x10(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1cb40
leaq 0x10(%rsp), %rdi
callq 0x7512
leaq 0x30(%rsp), %rdi
callq 0x6aa2
movq (%rsp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r15
leaq 0x30(%rsp), %r14
movq 0x8(%rsp), %rbp
cmpq %r15, %rbx
je 0x2bd8c
movq 0x40(%rbp), %r12
movq 0x48(%rbp), %r13
cmpq %r13, %r12
je 0x2cb25
movl (%r12), %eax
movl %eax, 0x30(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x68a4
addq $0x4, %r12
jmp 0x2cb07
addq $0x18, %rbx
jmp 0x2caf6
movq %r15, 0x98(%rsp)
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %r15
pushq $0x2
popq %r12
leaq 0x60(%rsp), %rbp
cmpq %r14, %r13
je 0x2ccaa
movl (%r13), %eax
movl %eax, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x14(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbp, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2cb55
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19284
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x2cbf0
negl (%rax)
addq $0x4, %rax
jmp 0x2cbb9
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
jmp 0x2cdd6
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x30(%rsp), %rdi
callq 0x19ed4
cmpb $0x1, 0x58(%r14)
jne 0x2ced3
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x7512
movq 0x8(%r14), %r13
movq 0x10(%r14), %rbp
leaq 0x60(%rsp), %r14
pushq $0x2
popq %r15
leaq 0x80(%rsp), %r12
cmpq %rbp, %r13
je 0x2cf02
movl (%r13), %eax
movl %eax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2cc5f
movq 0x8(%rsp), %rbx
cmpb $0x0, 0x58(%rbx)
movq 0x98(%rsp), %rsi
je 0x2bd8c
leaq 0x30(%rsp), %rdi
callq 0x19284
movq 0x30(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq %rcx, %rax
je 0x2cf07
negl (%rax)
addq $0x4, %rax
jmp 0x2ccd5
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x30(%rsp), %rbx
pushq $0x2
popq %r12
leaq 0x60(%rsp), %rbp
cmpq %r14, %r13
je 0x2cd50
xorl %eax, %eax
subl (%r13), %eax
movl %eax, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
movl %ecx, 0x14(%rsp)
movq %rbx, %rdi
leaq 0x10(%rsp), %rsi
movq %r12, %rdx
movq %rbp, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2cd03
movq 0x8(%rsp), %rbx
cmpb $0x0, 0x58(%rbx)
je 0x2bd8c
leaq 0x30(%rsp), %rdi
movq %r15, %rsi
callq 0x19284
movq 0x20(%rbx), %rsi
leaq 0x30(%rsp), %rdi
callq 0x68a4
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x18f96
jmp 0x2bd82
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19284
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x2cde5
negl (%rax)
addq $0x4, %rax
jmp 0x2cda4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2bd82
movq 0x20(%r14), %rax
xorl %ecx, %ecx
subl (%rax), %ecx
leaq 0x10(%rsp), %rsi
movl %ecx, (%rsi)
leaq 0x30(%rsp), %rdi
callq 0x19ed4
cmpb $0x1, 0x58(%r14)
jne 0x2cf28
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x7512
movq 0x8(%r14), %r13
movq 0x10(%r14), %rbp
leaq 0x60(%rsp), %r14
pushq $0x2
popq %r15
leaq 0x80(%rsp), %r12
cmpq %rbp, %r13
je 0x2cf57
movl (%r13), %eax
movl %eax, 0x60(%rsp)
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %r12, %rcx
callq 0x18af6
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1cb40
movq %rbx, %rdi
callq 0x7512
addq $0x4, %r13
jmp 0x2ce54
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2bd82
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2bd82
movq 0x20(%rbx), %rsi
leaq 0x30(%rsp), %rdi
callq 0x68a4
leaq 0x30(%rsp), %rsi
movq (%rsp), %rdi
callq 0x18f96
jmp 0x2bd82
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19284
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x60(%rsp), %rcx
movq (%rsp), %rdi
callq 0x2d4d0
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2bd82
leaq 0x4545(%rip), %rdi      # 0x314a8
leaq 0x4226(%rip), %rsi      # 0x31190
leaq 0x453d(%rip), %rcx      # 0x314ae
movl $0xf4, %edx
callq 0x31c0
leaq 0x4601(%rip), %rdi      # 0x31583
leaq 0x4207(%rip), %rsi      # 0x31190
leaq 0x451e(%rip), %rcx      # 0x314ae
movl $0x215, %edx            # imm = 0x215
callq 0x31c0
leaq 0x4559(%rip), %rdi      # 0x314fa
leaq 0x41e8(%rip), %rsi      # 0x31190
leaq 0x44ff(%rip), %rcx      # 0x314ae
movl $0x1c6, %edx            # imm = 0x1C6
callq 0x31c0
leaq 0x3d05(%rip), %rdi      # 0x30cc5
leaq 0x41c9(%rip), %rsi      # 0x31190
leaq 0x44e0(%rip), %rcx      # 0x314ae
movl $0x1d1, %edx            # imm = 0x1D1
callq 0x31c0
leaq 0x4536(%rip), %rdi      # 0x31515
leaq 0x41aa(%rip), %rsi      # 0x31190
leaq 0x44c1(%rip), %rcx      # 0x314ae
movl $0x1d2, %edx            # imm = 0x1D2
callq 0x31c0
leaq 0x4535(%rip), %rdi      # 0x31533
leaq 0x418b(%rip), %rsi      # 0x31190
leaq 0x44a2(%rip), %rcx      # 0x314ae
movl $0x1d6, %edx            # imm = 0x1D6
callq 0x31c0
leaq 0x453f(%rip), %rdi      # 0x3155c
leaq 0x416c(%rip), %rsi      # 0x31190
leaq 0x4483(%rip), %rcx      # 0x314ae
movl $0x1ec, %edx            # imm = 0x1EC
callq 0x31c0
leaq 0x4520(%rip), %rdi      # 0x3155c
leaq 0x414d(%rip), %rsi      # 0x31190
leaq 0x4464(%rip), %rcx      # 0x314ae
movl $0x202, %edx            # imm = 0x202
callq 0x31c0
leaq 0x3c6a(%rip), %rdi      # 0x30cc5
leaq 0x412e(%rip), %rsi      # 0x31190
leaq 0x4445(%rip), %rcx      # 0x314ae
movl $0x1e8, %edx            # imm = 0x1E8
callq 0x31c0
leaq 0x3c4b(%rip), %rdi      # 0x30cc5
leaq 0x410f(%rip), %rsi      # 0x31190
leaq 0x4426(%rip), %rcx      # 0x314ae
movl $0x1fe, %edx            # imm = 0x1FE
callq 0x31c0
leaq 0x3c2c(%rip), %rdi      # 0x30cc5
leaq 0x40f0(%rip), %rsi      # 0x31190
leaq 0x4407(%rip), %rcx      # 0x314ae
movl $0x13f, %edx            # imm = 0x13F
callq 0x31c0
leaq 0x3c0d(%rip), %rdi      # 0x30cc5
leaq 0x40d1(%rip), %rsi      # 0x31190
leaq 0x43e8(%rip), %rcx      # 0x314ae
movl $0x17f, %edx            # imm = 0x17F
callq 0x31c0
leaq 0x3bee(%rip), %rdi      # 0x30cc5
leaq 0x40b2(%rip), %rsi      # 0x31190
leaq 0x43c9(%rip), %rcx      # 0x314ae
movl $0x1e4, %edx            # imm = 0x1E4
callq 0x31c0
leaq 0x3bcf(%rip), %rdi      # 0x30cc5
leaq 0x4093(%rip), %rsi      # 0x31190
leaq 0x43aa(%rip), %rcx      # 0x314ae
movl $0x1fa, %edx            # imm = 0x1FA
callq 0x31c0
leaq 0x3bb0(%rip), %rdi      # 0x30cc5
leaq 0x4074(%rip), %rsi      # 0x31190
leaq 0x438b(%rip), %rcx      # 0x314ae
movl $0x157, %edx            # imm = 0x157
callq 0x31c0
leaq 0x3b91(%rip), %rdi      # 0x30cc5
leaq 0x4055(%rip), %rsi      # 0x31190
leaq 0x436c(%rip), %rcx      # 0x314ae
movl $0x115, %edx            # imm = 0x115
callq 0x31c0
leaq 0x3b72(%rip), %rdi      # 0x30cc5
leaq 0x4036(%rip), %rsi      # 0x31190
leaq 0x434d(%rip), %rcx      # 0x314ae
movl $0x210, %edx            # imm = 0x210
callq 0x31c0
leaq 0x3b53(%rip), %rdi      # 0x30cc5
leaq 0x4017(%rip), %rsi      # 0x31190
leaq 0x432e(%rip), %rcx      # 0x314ae
movl $0x172, %edx            # imm = 0x172
callq 0x31c0
leaq 0x3b34(%rip), %rdi      # 0x30cc5
leaq 0x3ff8(%rip), %rsi      # 0x31190
leaq 0x430f(%rip), %rcx      # 0x314ae
movl $0x132, %edx            # imm = 0x132
callq 0x31c0
leaq 0x3b15(%rip), %rdi      # 0x30cc5
leaq 0x3fd9(%rip), %rsi      # 0x31190
leaq 0x42f0(%rip), %rcx      # 0x314ae
movl $0x1a3, %edx            # imm = 0x1A3
callq 0x31c0
leaq 0x3af6(%rip), %rdi      # 0x30cc5
leaq 0x3fba(%rip), %rsi      # 0x31190
leaq 0x42d1(%rip), %rcx      # 0x314ae
movl $0x1c0, %edx            # imm = 0x1C0
callq 0x31c0
jmp 0x2d24f
jmp 0x2d344
jmp 0x2d24f
jmp 0x2d344
jmp 0x2d47f
jmp 0x2d47f
jmp 0x2d24f
jmp 0x2d344
jmp 0x2d24f
jmp 0x2d344
jmp 0x2d2b1
jmp 0x2d3a8
jmp 0x2d47f
jmp 0x2d21e
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2d3f6
jmp 0x2d296
jmp 0x2d296
jmp 0x2d344
jmp 0x2d24f
jmp 0x2d344
jmp 0x2d41c
jmp 0x2d41c
jmp 0x2d344
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2d3f6
jmp 0x2d344
jmp 0x2d344
jmp 0x2d34e
jmp 0x2d2b1
jmp 0x2d2b9
jmp 0x2d3a8
jmp 0x2d358
jmp 0x2d2b1
jmp 0x2d2b1
jmp 0x2d3a8
jmp 0x2d3a8
jmp 0x2d41c
jmp 0x2d344
movq %rax, %r14
jmp 0x2d3f6
jmp 0x2d34e
jmp 0x2d344
jmp 0x2d34e
jmp 0x2d2b1
jmp 0x2d2b9
movq %rax, %r14
jmp 0x2d469
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2d35b
jmp 0x2d3a8
jmp 0x2d358
jmp 0x2d3a8
jmp 0x2d358
jmp 0x2d3a8
movq %rax, %r14
leaq 0xa0(%rsp), %rdi
jmp 0x2d424
jmp 0x2d47f
movq %rax, %r14
pushq $0x18
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x7512
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x2d2fc
jmp 0x2d48b
jmp 0x2d344
jmp 0x2d344
jmp 0x2d34e
jmp 0x2d34e
movq %rax, %r14
pushq $0x18
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x30, %rdi
callq 0x7512
addq $-0x18, %rbx
cmpq $-0x18, %rbx
jne 0x2d326
jmp 0x2d48b
jmp 0x2d344
movq %rax, %r14
jmp 0x2d3f6
jmp 0x2d34e
movq %rax, %r14
jmp 0x2d48b
jmp 0x2d3a8
movq %rax, %r14
jmp 0x2d473
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
jmp 0x2d424
movq %rax, %r14
leaq 0xd0(%rsp), %rdi
jmp 0x2d424
jmp 0x2d47f
jmp 0x2d47f
movq %rax, %r14
jmp 0x2d39c
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
jmp 0x2d3d0
jmp 0x2d450
jmp 0x2d466
movq %rax, %r14
jmp 0x2d473
jmp 0x2d41c
jmp 0x2d47f
jmp 0x2d41c
jmp 0x2d47f
movq %rax, %r14
jmp 0x2d3d0
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
movq (%rsp), %rdi
callq 0x6aa2
jmp 0x2d3f6
movq %rax, %r14
jmp 0x2d3ed
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
movq (%rsp), %rdi
callq 0x6aa2
leaq 0x30(%rsp), %rdi
callq 0x7512
jmp 0x2d48b
jmp 0x2d47f
jmp 0x2d47f
jmp 0x2d41c
jmp 0x2d41c
jmp 0x2d47f
jmp 0x2d47f
jmp 0x2d41c
jmp 0x2d41c
jmp 0x2d47f
movq %rax, %r14
jmp 0x2d438
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x7512
jmp 0x2d482
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x7512
jmp 0x2d482
jmp 0x2d43e
jmp 0x2d450
movq %rax, %r14
leaq 0x80(%rsp), %rdi
callq 0x7512
jmp 0x2d453
movq %rax, %r14
jmp 0x2d45a
jmp 0x2d466
movq %rax, %r14
leaq 0x60(%rsp), %rdi
callq 0x7512
jmp 0x2d469
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7512
leaq 0x30(%rsp), %rdi
callq 0x6aa2
jmp 0x2d482
movq %rax, %r14
movq (%rsp), %rdi
callq 0x6aa2
movq %r14, %rdi
callq 0x3490
nop