// File: /workspace/github_cpp_makefile_star2_O3/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 0x35c91
movl %edx, %ebp
movq %rsi, %r14
movl (%rsi), %edx
leal -0x1(%rdx), %ecx
cmpl $0x5, %ecx
ja 0x35cee
leaq 0x8(%r14), %r15
leaq 0x5a45(%rip), %rsi      # 0x3a148
movslq (%rsi,%rcx,4), %rdi
addq %rsi, %rdi
movq %r14, 0x78(%rsp)
jmpq *%rdi
cmpl $0x1, %eax
jne 0x34a75
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
cmpq $0x4, %rcx
jne 0x35ccf
xorps %xmm0, %xmm0
movq (%rsp), %rcx
movups %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
cmpl $0x4, %edx
je 0x3474d
cmpb $0x1, 0x58(%r14)
jne 0x3479b
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 0x1e9a8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x34798
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movl (%r14), %edx
cmpl $0x5, %edx
je 0x347af
movq 0x78(%rsp), %rax
cmpb $0x1, 0x58(%rax)
jne 0x35684
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 0x1e9a8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x35684
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x35684
movl 0x38(%r14), %edx
testl %edx, %edx
js 0x34d55
cmpl %eax, %edx
jae 0x3504e
testl %edx, %edx
je 0x353e8
leal -0x1(%rax), %esi
cmpl %esi, %edx
jne 0x34a6c
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3589a
testq %rax, %rax
jne 0x35efd
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f3de
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x358be
negl (%rax)
addq $0x4, %rax
jmp 0x3486b
movl 0x38(%r14), %edx
cmpl %eax, %edx
jbe 0x34974
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x3508f
testq %rcx, %rcx
jne 0x35dc7
leaq 0x8(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x38(%rsp), %rdi
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x98(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x5f(%rsp), %rcx
movl $0x2, %edx
movq (%rsp), %rdi
callq 0x3635a
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x3491c
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x34905
jmp 0x35684
movl 0x38(%r14), %edx
cmpl %eax, %edx
jbe 0x34a19
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x350ce
testq %rcx, %rcx
je 0x353d1
leaq 0x5405(%rip), %rdi      # 0x39d61
leaq 0x58c9(%rip), %rsi      # 0x3a22c
leaq 0x5be0(%rip), %rcx      # 0x3a54a
movl $0xff, %edx
callq 0x31b0
testl %edx, %edx
je 0x35116
cmpl %eax, %edx
jne 0x34a6c
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3569a
testq %rax, %rax
jne 0x35ea0
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x35684
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x34a0b
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x349cd
jmp 0x35684
testl %edx, %edx
je 0x351ad
cmpl %eax, %edx
jne 0x34a6c
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x35768
testq %rax, %rax
jne 0x35ebf
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f3de
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rcx, %rax
je 0x357b3
negl (%rax)
addq $0x4, %rax
jmp 0x34a5b
cmpl $0x1, %eax
je 0x35d0d
xorps %xmm0, %xmm0
movq (%rsp), %rdx
movups %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
leaq 0x56d2(%rip), %rdx      # 0x3a160
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl 0x38(%r14), %eax
testl %eax, %eax
jle 0x35cb0
movq 0x28(%r14), %rcx
subq 0x20(%r14), %rcx
shrq $0x2, %rcx
cmpl %ecx, %eax
jne 0x35cb0
movl $0x2, %ecx
movl %ecx, %r12d
leal (%r12,%r12), %ecx
cmpl %eax, %r12d
jl 0x34abc
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl %ebp, 0x38(%rsp)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
leal -0x1(%r12), %r14d
movq 0x10(%rsp), %r8
subq 0x8(%rsp), %r8
shrq $0x2, %r8
testl %r8d, %r14d
je 0x34bb2
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 0x1e9a8
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2259a
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x34b62
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), %r8
cmpq 0x18(%rsp), %r8
je 0x34b8b
movl %eax, (%r8)
addq $0x4, %r8
movq %r8, 0x10(%rsp)
jmp 0x34ba0
leaq 0x8(%rsp), %rdi
movq %r8, %rsi
movq %r15, %rdx
callq 0x1ffb8
movq 0x10(%rsp), %r8
subq 0x8(%rsp), %r8
shrq $0x2, %r8
testl %r8d, %r14d
jne 0x34b20
movq 0x78(%rsp), %r14
movl (%r14), %ecx
movb 0x58(%r14), %al
movb $0x1, %bl
cmpl $0x4, %ecx
je 0x34bd5
cmpl $0x6, %ecx
sete %bl
orb %al, %bl
movb $0x1, %bpl
cmpl $0x5, %ecx
je 0x34bdf
cmpl $0x6, %ecx
sete %bpl
orb %al, %bpl
decl %r8d
subq $0x8, %rsp
movzbl %bpl, %eax
andl $0x1, %eax
movzbl %bl, %r10d
andl $0x1, %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 0x339b2
addq $0x20, %rsp
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x32286
cmpl $0x0, 0x38(%r14)
jle 0x34d22
xorl %r12d, %r12d
leaq 0x80(%rsp), %r15
leaq 0x5f(%rsp), %r13
testb $0x1, %bl
je 0x34caa
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 0x1e9a8
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x2259a
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x34caa
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
testb $0x1, %bpl
je 0x34d12
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 0x1e9a8
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x2259a
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x34d12
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
incq %r12
movslq 0x38(%r14), %rax
cmpq %rax, %r12
jl 0x34c43
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x34d39
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x34d50
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3561b
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x351f6
testq %rcx, %rcx
jne 0x35de6
leaq 0x8(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x38(%rsp), %rdi
negl %ebp
leaq 0x60(%rsp), %rsi
movl %ebp, (%rsi)
leaq 0x98(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x5f(%rsp), %rcx
movl $0x2, %edx
movq (%rsp), %rdi
callq 0x3635a
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x34de9
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x34dd2
jmp 0x35684
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x35d2c
incl %ecx
cmpl %eax, %ecx
jae 0x35d2c
cmpl $0x1, 0x4(%r14)
jne 0x35d89
leaq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
leaq 0x20(%rsp), %rdi
leaq 0xd0(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x34556
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x34e59
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x32286
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x35235
testq %rcx, %rcx
jne 0x35e05
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
jmp 0x352c5
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x35d4b
cmpl %eax, %ecx
jae 0x35d4b
cmpl $0x1, 0x4(%r14)
jne 0x35da8
leaq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
leaq 0x20(%rsp), %rdi
leaq 0xb8(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x33f30
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x34f21
movq 0xc8(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x32286
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x352e1
testq %rcx, %rcx
jne 0x35e24
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
jmp 0x35371
movl 0x38(%r14), %ecx
testl %ecx, %ecx
jle 0x35d6a
cmpl %eax, %ecx
jae 0x35d6a
cmpl $0x1, 0x4(%r14)
jne 0x35625
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
leaq 0x20(%rsp), %rdi
leaq 0xa0(%rsp), %rcx
movq %r14, %rsi
movl %ebp, %edx
callq 0x34240
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x34fe9
movq 0xb0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x32286
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x35574
testq %rcx, %rcx
jne 0x35e81
movl 0x40(%rsp), %eax
leaq 0x60(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
jmp 0x35604
movq 0x20(%r14), %rax
movq 0x28(%r14), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq $0x1, %rcx
je 0x3538d
testq %rcx, %rcx
je 0x353d1
leaq 0x4cea(%rip), %rdi      # 0x39d61
leaq 0x51ae(%rip), %rsi      # 0x3a22c
leaq 0x54c5(%rip), %rcx      # 0x3a54a
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 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x347ee
cmpb $0x1, 0x58(%r14)
jne 0x353d1
movl (%rax), %eax
leaq 0x8(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x347ee
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3547f
testq %rax, %rax
jne 0x35e43
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x35684
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3519f
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x3515f
jmp 0x35684
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x3553a
testq %rax, %rax
jne 0x35e62
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x347ee
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 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x347ee
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35283
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x352dc
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x352dc
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3561b
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3532f
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x35388
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35388
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3561b
cmpb $0x1, 0x58(%r14)
jne 0x353d1
movl (%rax), %eax
leaq 0x8(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x20(%rsp), %rdi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
callq 0x1e9a8
leaq 0x20(%rsp), %rsi
leaq 0x80(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x347ee
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
jmp 0x35688
movq 0x28(%r14), %rax
subq 0x20(%r14), %rax
sarq $0x2, %rax
cmpq $0x1, %rax
je 0x357df
testq %rax, %rax
jne 0x35ede
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x35684
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x35471
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x35431
jmp 0x35684
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x354f7
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x354ee
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x354a0
cmpb $0x0, 0x58(%r14)
je 0x35684
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x35c3a
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35c44
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f3de
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x35911
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35920
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x355c2
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
cmpb $0x1, 0x58(%r14)
jne 0x3561b
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 0x1e9a8
leaq 0x8(%rsp), %rsi
movq (%rsp), %rdi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3561b
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rdi
callq 0x8f5e
movq (%rsp), %rax
movq (%rax), %rbx
movq 0x8(%rax), %r14
cmpq %r14, %rbx
je 0x35684
leaq 0x20(%rsp), %r15
movq 0x78(%rsp), %rax
movq 0x40(%rax), %r12
movq 0x48(%rax), %r13
cmpq %r13, %r12
je 0x3567b
movl (%r12), %eax
movl %eax, 0x20(%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0x3566a
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rbx)
jmp 0x35675
movq %rbx, %rdi
movq %r15, %rdx
callq 0x98f8
addq $0x4, %r12
jmp 0x35647
addq $0x18, %rbx
cmpq %r14, %rbx
jne 0x3563a
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 0x35710
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x35707
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x356bb
cmpb $0x0, 0x58(%r14)
je 0x35684
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rsi
cmpq %rsi, %rax
movq 0x78(%rsp), %rcx
je 0x35747
negl (%rax)
addq $0x4, %rax
cmpq %rsi, %rax
jne 0x3573c
movq 0x20(%rcx), %rdx
cmpq 0x30(%rsp), %rsi
je 0x35c57
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35c61
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f3de
movq (%rbx), %rax
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x3578c
negl (%rax)
addq $0x4, %rax
jmp 0x3577f
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
cmpq 0x30(%rsp), %rsi
je 0x35a17
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35a26
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x35c1a
xorps %xmm0, %xmm0
movq (%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
cmpq %r13, %r12
je 0x35857
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3584e
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r12
cmpq %r13, %r12
jne 0x35800
cmpb $0x0, 0x58(%r14)
je 0x35684
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x1f3de
movq 0x78(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x28(%rsp), %rsi
cmpq 0x30(%rsp), %rsi
je 0x35c74
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35c7e
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1f3de
movq (%rbx), %rax
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x358ea
negl (%rax)
addq $0x4, %rax
jmp 0x358b1
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x35c1a
movq 0x20(%r14), %rcx
xorl %eax, %eax
subl (%rcx), %eax
movl %eax, 0x8(%rsp)
cmpq 0x30(%rsp), %rsi
je 0x35b1b
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x28(%rsp)
jmp 0x35b2a
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1ffb8
cmpb $0x1, 0x58(%r14)
jne 0x359eb
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35969
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x347ee
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x359dd
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x3598f
jmp 0x347ee
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x35c1a
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1ffb8
cmpb $0x1, 0x58(%r14)
jne 0x35aef
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35a6f
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x347ee
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35ae1
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x35a95
jmp 0x347ee
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
jmp 0x35c1a
leaq 0x20(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x1ffb8
cmpb $0x1, 0x58(%r14)
jne 0x35bf3
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35b73
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq %r14, %rax
movq 0x8(%r14), %r14
movq 0x10(%rax), %r13
cmpq %r13, %r14
je 0x347ee
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 0x1e9a8
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x2259a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x35be5
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $0x4, %r14
cmpq %r13, %r14
jne 0x35b99
jmp 0x347ee
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1f3de
leaq 0x8(%rsp), %rsi
leaq 0x60(%rsp), %rcx
movl $0x1, %edx
movq (%rsp), %rdi
callq 0x3635a
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x347ee
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x347ee
leaq 0x20(%rsp), %rdi
callq 0x98f8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1f07e
jmp 0x347ee
leaq 0x20(%rsp), %rdi
callq 0x98f8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1f07e
jmp 0x347ee
leaq 0x20(%rsp), %rdi
callq 0x98f8
leaq 0x20(%rsp), %rsi
movq (%rsp), %rdi
callq 0x1f07e
jmp 0x347ee
leaq 0x48ac(%rip), %rdi      # 0x3a544
leaq 0x458d(%rip), %rsi      # 0x3a22c
leaq 0x48a4(%rip), %rcx      # 0x3a54a
movl $0xf4, %edx
callq 0x31b0
leaq 0x4968(%rip), %rdi      # 0x3a61f
leaq 0x456e(%rip), %rsi      # 0x3a22c
leaq 0x4885(%rip), %rcx      # 0x3a54a
movl $0x215, %edx            # imm = 0x215
callq 0x31b0
leaq 0x48c0(%rip), %rdi      # 0x3a596
leaq 0x454f(%rip), %rsi      # 0x3a22c
leaq 0x4866(%rip), %rcx      # 0x3a54a
movl $0x1c6, %edx            # imm = 0x1C6
callq 0x31b0
leaq 0x406c(%rip), %rdi      # 0x39d61
leaq 0x4530(%rip), %rsi      # 0x3a22c
leaq 0x4847(%rip), %rcx      # 0x3a54a
movl $0x1d1, %edx            # imm = 0x1D1
callq 0x31b0
leaq 0x489d(%rip), %rdi      # 0x3a5b1
leaq 0x4511(%rip), %rsi      # 0x3a22c
leaq 0x4828(%rip), %rcx      # 0x3a54a
movl $0x1d2, %edx            # imm = 0x1D2
callq 0x31b0
leaq 0x489c(%rip), %rdi      # 0x3a5cf
leaq 0x44f2(%rip), %rsi      # 0x3a22c
leaq 0x4809(%rip), %rcx      # 0x3a54a
movl $0x1d6, %edx            # imm = 0x1D6
callq 0x31b0
leaq 0x48a6(%rip), %rdi      # 0x3a5f8
leaq 0x44d3(%rip), %rsi      # 0x3a22c
leaq 0x47ea(%rip), %rcx      # 0x3a54a
movl $0x1ec, %edx            # imm = 0x1EC
callq 0x31b0
leaq 0x4887(%rip), %rdi      # 0x3a5f8
leaq 0x44b4(%rip), %rsi      # 0x3a22c
leaq 0x47cb(%rip), %rcx      # 0x3a54a
movl $0x202, %edx            # imm = 0x202
callq 0x31b0
leaq 0x3fd1(%rip), %rdi      # 0x39d61
leaq 0x4495(%rip), %rsi      # 0x3a22c
leaq 0x47ac(%rip), %rcx      # 0x3a54a
movl $0x1e8, %edx            # imm = 0x1E8
callq 0x31b0
leaq 0x3fb2(%rip), %rdi      # 0x39d61
leaq 0x4476(%rip), %rsi      # 0x3a22c
leaq 0x478d(%rip), %rcx      # 0x3a54a
movl $0x1fe, %edx            # imm = 0x1FE
callq 0x31b0
leaq 0x3f93(%rip), %rdi      # 0x39d61
leaq 0x4457(%rip), %rsi      # 0x3a22c
leaq 0x476e(%rip), %rcx      # 0x3a54a
movl $0x13f, %edx            # imm = 0x13F
callq 0x31b0
leaq 0x3f74(%rip), %rdi      # 0x39d61
leaq 0x4438(%rip), %rsi      # 0x3a22c
leaq 0x474f(%rip), %rcx      # 0x3a54a
movl $0x17f, %edx            # imm = 0x17F
callq 0x31b0
leaq 0x3f55(%rip), %rdi      # 0x39d61
leaq 0x4419(%rip), %rsi      # 0x3a22c
leaq 0x4730(%rip), %rcx      # 0x3a54a
movl $0x1e4, %edx            # imm = 0x1E4
callq 0x31b0
leaq 0x3f36(%rip), %rdi      # 0x39d61
leaq 0x43fa(%rip), %rsi      # 0x3a22c
leaq 0x4711(%rip), %rcx      # 0x3a54a
movl $0x1fa, %edx            # imm = 0x1FA
callq 0x31b0
leaq 0x3f17(%rip), %rdi      # 0x39d61
leaq 0x43db(%rip), %rsi      # 0x3a22c
leaq 0x46f2(%rip), %rcx      # 0x3a54a
movl $0x157, %edx            # imm = 0x157
callq 0x31b0
leaq 0x3ef8(%rip), %rdi      # 0x39d61
leaq 0x43bc(%rip), %rsi      # 0x3a22c
leaq 0x46d3(%rip), %rcx      # 0x3a54a
movl $0x115, %edx            # imm = 0x115
callq 0x31b0
leaq 0x3ed9(%rip), %rdi      # 0x39d61
leaq 0x439d(%rip), %rsi      # 0x3a22c
leaq 0x46b4(%rip), %rcx      # 0x3a54a
movl $0x210, %edx            # imm = 0x210
callq 0x31b0
leaq 0x3eba(%rip), %rdi      # 0x39d61
leaq 0x437e(%rip), %rsi      # 0x3a22c
leaq 0x4695(%rip), %rcx      # 0x3a54a
movl $0x172, %edx            # imm = 0x172
callq 0x31b0
leaq 0x3e9b(%rip), %rdi      # 0x39d61
leaq 0x435f(%rip), %rsi      # 0x3a22c
leaq 0x4676(%rip), %rcx      # 0x3a54a
movl $0x132, %edx            # imm = 0x132
callq 0x31b0
leaq 0x3e7c(%rip), %rdi      # 0x39d61
leaq 0x4340(%rip), %rsi      # 0x3a22c
leaq 0x4657(%rip), %rcx      # 0x3a54a
movl $0x1a3, %edx            # imm = 0x1A3
callq 0x31b0
leaq 0x3e5d(%rip), %rdi      # 0x39d61
leaq 0x4321(%rip), %rsi      # 0x3a22c
leaq 0x4638(%rip), %rcx      # 0x3a54a
movl $0x1c0, %edx            # imm = 0x1C0
callq 0x31b0
jmp 0x360d4
jmp 0x35f81
jmp 0x35f81
jmp 0x360d4
jmp 0x360d4
jmp 0x362b1
jmp 0x360d4
jmp 0x360d4
jmp 0x362b1
jmp 0x35f81
jmp 0x35f81
jmp 0x360d4
jmp 0x360d4
jmp 0x35fc3
jmp 0x36048
jmp 0x3620b
jmp 0x362b1
jmp 0x35f81
jmp 0x35f81
jmp 0x360d4
jmp 0x360d4
jmp 0x35f81
jmp 0x360d4
jmp 0x36250
jmp 0x36292
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x361ae
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x361ae
jmp 0x360d4
jmp 0x360d4
jmp 0x360de
jmp 0x35fee
jmp 0x36011
jmp 0x360e6
jmp 0x360ee
jmp 0x35fc3
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
jne 0x35fff
jmp 0x3604b
jmp 0x36048
jmp 0x36048
jmp 0x360d4
jmp 0x360de
jmp 0x360d4
jmp 0x360de
jmp 0x35fee
jmp 0x36011
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x360e9
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3633a
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x360f1
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x360f1
jmp 0x360e6
jmp 0x360ee
jmp 0x360e6
jmp 0x360ee
movq %rax, %r14
jmp 0x3633a
movq %rax, %r14
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x36349
movq 0xb0(%rsp), %rsi
jmp 0x36130
jmp 0x36346
movq %rax, %r14
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x36095
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x3607e
jmp 0x36352
jmp 0x360d4
jmp 0x360d4
jmp 0x360de
jmp 0x360de
movq %rax, %r14
movl $0x30, %ebx
movq 0x8(%rsp,%rbx), %rdi
testq %rdi, %rdi
je 0x360c7
movq 0x18(%rsp,%rbx), %rsi
subq %rdi, %rsi
callq 0x32b0
addq $-0x18, %rbx
jne 0x360b0
jmp 0x36352
jmp 0x360d4
movq %rax, %r14
jmp 0x361ae
jmp 0x360de
movq %rax, %r14
jmp 0x36352
movq %rax, %r14
jmp 0x3633a
movq %rax, %r14
jmp 0x3633a
movq %rax, %r14
movq 0xb8(%rsp), %rdi
testq %rdi, %rdi
je 0x36349
movq 0xc8(%rsp), %rsi
jmp 0x36130
movq %rax, %r14
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x36349
movq 0xe0(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x36346
jmp 0x36346
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x36161
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x361a5
jmp 0x36181
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3617f
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x361a5
movq %rax, %r14
jmp 0x361a5
movq %rax, %r14
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x361a5
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x361a5
movq %rax, %r14
movq (%rsp), %rdi
callq 0x8f5e
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36352
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36352
jmp 0x36309
jmp 0x36304
movq %rax, %r14
jmp 0x3633a
jmp 0x361e7
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36201
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36225
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36249
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3626a
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3628b
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
jmp 0x362b1
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x362ac
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x36349
movq %rax, %r14
jmp 0x36349
movq %rax, %r14
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x362d8
movq 0x30(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x362d8
movq %rax, %r14
jmp 0x36349
jmp 0x36304
jmp 0x36309
jmp 0x36309
jmp 0x362e2
movq %rax, %r14
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x3630c
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
jmp 0x3630c
movq %rax, %r14
jmp 0x36323
movq %rax, %r14
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x36323
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3633a
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x32b0
leaq 0x20(%rsp), %rdi
callq 0x8f5e
jmp 0x36349
movq %rax, %r14
movq (%rsp), %rdi
callq 0x8f5e
movq %r14, %rdi
callq 0x34a0